TUZ_3-09 Первый объект, предшествующий k меньшим объектам
3.9. Первый объект, предшествующий k меньшим объектам
В этой задаче дается список объектов, и вы должны найти и вернуть объект,
которому предшествует как минимум k меньших объектов.
Если такого элемента нет, то функция должна вернуть значение None.
Например, рассмотрим items = [2, 1, 9, 14] и k = 2. Какому числу предшествуют как минимум k меньших чисел?
- Так как числу 9 предшествуют числа 1 и 2, то 9 является ответом.
Если items = [4, 2, 1, 9, 14] и k = 2, то ответ снова равен 9,
- поскольку по условию задачи искомому числу должно предшествовать не меньше k меньших чисел.
В качестве другого примера рассмотрим массив строк: items = [«cobol», «ruby», «c++», «python», «c++», «php»] и k = 2.
Какой строке предшествуют хотя бы k меньших строк?
- Для начала нужно определить длины строк, а затем выполнить те же операции, что и в предыдущем примере.
Ответом на вопрос во этом примере будет строка «python», так как она больше чем строки «c++», «cobol»,
хотя и больше «ruby».
В табл. 3.9 показаны ожидаемые результаты для некоторых входных данных.
Таблица 3.9. Некоторые ожидаемые результаты для задачи поиска первого объекта, предшествующего k меньшим объектам |
Items, k |
Ожидаемый результат |
[4,2, 1, 9, 14], 3 |
9 |
[2, 3, 4, 871], 4 |
None |
[700, 3, 900, 400, 1100], 2 |
900 |
['cobol','ruby','c++','python','c','php'], 2 |
'python' |
['cobol','ruby','c++','python','c','php'], 3 |
'php' |