Напишите функцию (на Python, Java или псевдокоде) Average(nums), которая печатает среднее значение чисел в списке nums и возвращает кортеж: p>
- Первый элемент кортежа — это индекс числа, наиболее удаленного от среднего значения.
- Второй элемент кортежа — это число, наиболее удаленное от среднего значения от среднего.
Я знаю, как написать функцию с двумя циклами, и использование одного или двух циклов недопустимо. оба раза O(n), поэтому технически код не становится более эффективным за один цикл. Но мне просто интересно, можно ли это сделать. Уловка для вечеринки, если хотите.
Некоторые из моих мыслей:
Итак, вычислить среднее значение при переборе списка так же просто, как total += nums , затем avg = итог/(i+1). И я думаю, вы могли бы вычислить, какое число находится дальше всего от вашего текущего среднего значения, но к тому времени, как вы дойдете до конца списка, экстремальное число может сделать ваш код неверным, я думаю?
Подробнее здесь: https://stackoverflow.com/questions/792 ... e-index-of