2018美团上级笔试,第一部分为单选,第二部分为问答题,第三部分为编程题。选择不仅有技术题,还有行政题,还是挺有难度的,我遇到的问答题挺简单的,就是Block
里面执行全局静态变量,全局变量和局部变量,会出现的问题,那些能够在Block
里面修改,那些不行,应该怎么写才能没有错误。
下面说一下编程题第一题,第二题没有时间做
任意输入一个数组和一个正整数,数组中连续的n个相加,得出和为m,且m能够被这个正整数除尽,求这个n的最大值,没有返回0,代码如下:
- (int)maxLengthWith:(NSArray *)arr decimal:(int)number
{
if ([arr count] == 0) {
return 0;
}
long long tmp = 0;
int length = 0;
int maxLength = 0;
for (int i = 0; i < [arr count]; i++) {
tmp = 0;
length = 0;
for (int j = i; j < [arr count] ; j++) {
tmp = tmp + [arr[j] intValue];
if (tmp%number == 0) {
length = j - i + 1;
maxLength = maxLength > length ? maxLength : length;
}
}
}
return maxLength;
}
如果哪里有错或者有更好的方法,欢迎指出来,大家一起学习!