Привет! Я хотел бы поделиться с тобой своим опытом работы с последовательностями чисел в языке программирования C . В частности, мы рассмотрим задачу о нахождении минимума в каждом положении ″окна″ в последовательности.
Итак, давайте уточним условия задачи. У нас есть последовательность целых чисел длины N, а также ″окно″ длины K, которое движется по этой последовательности с шагом 1. Наша задача ー для каждого положения ″окна″ найти минимум в нем.
Для начала, нам нужно получить входные данные. В первой строке содержатся два числа⁚ N и K. N ー это длина последовательности, а K ⎯ длина ″окна″. Во второй строке находятся сами числа последовательности.
Для решения этой задачи в языке C можно использовать две вложенные цикла. Внешний цикл будет перебирать положения ″окна″, а внутренний цикл будет находить минимум в каждом положении ″окна″. Обрати внимание, что внешний цикл будет выполняться от 0 до N ー K٫ так как после этого положения ″окна″ выходит за пределы последовательности.
Для начала, объявим переменные N, K и вектор nums, в котором будем хранить числа последовательности. Прочитаем входные данные с помощью функции cin и заполним вектор nums.
cpp
#include
#include
using namespace std;
int main {
int N, K;
cin >> N >> K;
vector
for (int i 0; i < N; i ) {
cin >> nums[i];
}
}
Теперь, чтобы решить задачу, добавим вложенные циклы. Внешний цикл будет итерироваться от 0 до N ー K 1, так как мы хотим остановиться на каждом положении ″окна″. Внутренний цикл будет искать минимум внутри текущего ″окна″ длины K.cpp
#include
#include
using namespace std;
int main {
int N, K;
cin >> N >> K;
vector
for (int i 0; i < N; i ) {
cin >> nums[i];
}
for (int i 0; i < N ー K; i ) { int minVal nums[i]; for (int j i 1; j < i K; j ) { if (nums[j] < minVal) { minVal nums[j]; } } cout << minVal << ″\n″; } return 0; } Внутри второго цикла мы сравниваем текущий элемент с минимальным значением и, если текущий элемент меньше, обновляем минимальное значение. В конце каждого положения ″окна″ выводим найденный минимум с помощью функции cout. Таким образом, мы решили задачу о нахождении минимума в каждом положении ″окна″ в последовательности. Этот практический опыт помог мне лучше понять работу циклов и работу с последовательностями чисел в языке программирования C . В следующий раз, когда я столкнусь с подобными задачами, я буду использовать этот опыт. Кто знает, может быть, он окажется полезным и для тебя!