2 года назад
Contribution to the Sum в олимпиадном программировании
Всем привет, у клавиатуры Кодер Арсений. Проходя одно из соревнований, мне попалась задача, которую я решил одним способом. После этого в разборе задач я увидел как раз технику "Contribution to the Sum" (перевод - "Вклад в сумму"), о которой я и хотел бы рассказать в данной статье. Перед прочтением желательно иметь хотя бы базовое представление о теории вероятностей. Теория Математическое ожидание Мат. ожидание E(x)- среднее значение случайной величины. Считается как сумма произведений возможных значений на вероятность этих значений. Приведу пример: у нас есть монеты 10 копеек, 50 копеек, 1 рубль, 2 рубля, 5 рублей и 10 рублей...
1 год назад
Java 420. Как найти непрерывный подмассив, сумма которого равна заданному числу?
Для нахождения непрерывного подмассива в массиве, сумма которого равна заданному числу, можно использовать алгоритм двух указателей (two-pointer algorithm) или алгоритм "скользящего окна" (sliding window algorithm). Рассмотрим оба подхода. int[] arr = {2, 3, 6, 7, 9, 11}; int sum = 16; int left = 0; // левый указатель int right = 0; // правый указатель int currentSum = 0; while (right < arr.length) { currentSum += arr[right]; while (currentSum > sum && left <= right) { currentSum -= arr[left]; left++; } if (currentSum == sum) { System...