Как мне найти самый большой подсписок в этом контексте?
Учитывая набор данных из n пикселей RGB значений
например. n = 3
пиксель [1]: 255, 255, 255 пиксель [2]: 0, 20, 0 пиксель [3]: 5, 13, 63
Найдите самый большой подсписок (количество пикселей), который удовлетворяет этому условию: A × (R - rmin) + B × (G - gmin) + C × (B - bmin) ≤ D, где A, B, C и D - это константы, взятые из пользовательского ввода. rmin, gmin, bmin - минимальные значения RGB пикселей в подсписке соответственно.
например. Используя приведенный выше пример данных, размер подсписка = 2, содержит пиксель [2] и пиксель [3], rmin = 0, gmin = 13, bmin = 0
То, что я сделал, - это установил массив для приема данных пикселей и поместил его в дважды вложенный цикл for, первый для подсчета различных возможных начальных пикселей, а второй - для добавления дополнительного пикселя и проверки, если это дополнительный пиксель удовлетворяет условию. Если он не удовлетворяет, цикл завершится, и количество пикселей будет сохранено в массиве, соответствующем начальному пикселю.
Однако это, очевидно, неправильно, поскольку алгоритм не учитывает все различные комбинации. Метод предполагает, что пиксели увеличиваются в числовом порядке, который в этом случае не может быть отсортирован в числовом порядке, поскольку у каждого пикселя есть 3 соответствующих значения. Я также не могу отсортировать их A × (R - rmin) + B × (G - gmin) + C × (B - bmin), так как минимальные значения варьируются в зависимости от каждого подмножества.
Спасибо за помощь:)