1.iOS数组去重有那些方案
运用新数组,
运用新字典,
运用集合的唯一性,
运用valueForKeyPath:@"@distinctUnionOfObjects.self"
2.数组题:如何在有序数组中找出和等于给定值的两个元素?
if (array.count <= 1) { return; }
NSInteger tempAddCount = 0;
NSInteger tempDeleltCount = 0;
for (int i = 0; i <= array.count; i++) {
NSInteger tNamber = [array[tempAddCount] integerValue] + [array[array.count-1-tempDeleltCount] integerValue];
if (tNamber == totalNmuber) {
NSLog(@"%ld, %ld, ç¬¬ä¸€ä¸ªå…ƒç´ %@ - åŽé¢çš„å…ƒç´ %@", (long)tempAddCount, (long)tempDeleltCount, array[tempAddCount] ,array[array.count-tempDeleltCount-1]);
break;
}else if (tNamber < totalNmuber) {
tempAddCount ++;
}else {
tempDeleltCount ++;
}
if (i == array.count - 1) {
NSLog(@"啥都没匹配着");
break;
}
}
3.用递归写一个算法,计算从1到100的和。
- (NSInteger)getSumResult:(NSInteger)number {
if (number <=0 ) {
return number;
}
return [number + self getSumResult:number - 1];
}
4.计算给定一串字符串(包含中英文,标点符号)所占用的字节数
5.NSObject的内存布局?
6.一个天平,4个砝码,能秤出多少种重量。
分析: 4个砝码中选1个有4种;4个砝码中选2个,有6种;4个砝码中选3个,有4种;4个砝码都选出只有一种;根据加法原理,四种情况的方法加起来,即可得解.
解答: 解:4+6+4+1=15(种);
7.1000个瓶子,里面有1瓶毒药,只有10只老鼠,老鼠吃了之后一星期会死亡,怎么测试。
8.烧一根不均匀的绳要用一个小时,如何用它来判断半个小时?烧一根不均匀的绳,从头烧到尾总共需要1个小时。现在有若干条材质相同的绳子,问如何用烧绳的方法来计时一个小时十五分钟呢?
解析:一根绳子一头烧,一根绳子从两头烧。 两头烧的绳子烧完的时候(30分),一头烧的绳子也烧了30分钟,还剩30分钟。此时将一头烧的绳子的另一端也点着,烧完需要花(15分钟)。现在已经计时45分钟了,再从两头点燃第三根绳子,烧完(30分钟)。计时时间就是45分钟+30分钟,正好是1个小时15分钟。
9.找出数组中重复的数字?
10.开源库原理篇
11.事件响应链
12.离屏渲染
13.把一个链表比某个值大的放在左边,比它小的放在右边?
14.二叉树先序遍历(递归和非递归)