Вопрос:Вычисление значения K без сообщений
Найдите значение K в myInterViewArray
без каких-либо сообщений/звонков
Я получил эту подсказку:
чисел в массиве будет никогда не превышать 1-9.
NSArray *myInterViewArray = @[@2,@1,@3,@9,@9,@8,@7];
Пример:
Если вы отправляете 3, то массив будет возвращать 3 большие значения в myInterViewArray * 3
. Таким образом, в приведенном ниже примере, K = 9 + 9 + 8
-
Я задал этот вопрос некоторое время назад в интервью и был полностью тупик. Первое решение, которое я мог думать выглядело примерно так:
Интервью Тест массив:
[self findingK:myInterViewArray abc:3];
-(int)findingK:(NSArray *)myArray abc:(int)k{ // With Reverse Object Enumerator
myArray = [[[myArray sortedArrayUsingSelector:@selector(compare:)] reverseObjectEnumerator] allObjects];
int tempA = 0;
for (int i = 0; i < k; i++) {
tempA += [[myArray objectAtIndex:i] intValue];
}
k = tempA;
return k;
}
Но, видимо, это было большой нет-нет. Они хотели, чтобы я нашел значение K без использования каких-либо сообщений. Это означает, что я не смог использовать sortedArrayUsingSelector
и даже reverseObjectEnumerator
.
Теперь важно!
Я думал об этом довольно долго, и я до сих пор не могу придумать подход без сообщений. У кого-нибудь есть идеи?
Является ли это только мне или вы узлы действительно укажите, что должна делать программа? Что он должен найти? K? Что? – luk2302
Извините за путаницу .. Надеюсь, что мой править очищает вещи до @ luk2302 –
«без каких-либо сообщений»? Вы возвращаете добавление k самых больших значений, не так ли? Потому что ваше объяснение все еще не так ясно. – Larme