2111. Minimum Operations to Make the Array K Increasing (Hard) - TengnanYao/daily_leetcode GitHub Wiki
class Solution:
def kIncreasing(self, arr: List[int], k: int) -> int:
arrs = []
for _ in range(k):
arrs.append([])
n = len(arr)
for i in range(n):
arrs[i % k].append(arr[i])
result = 0
for s in arrs:
nums = []
for num in s:
if not nums or num >= nums[-1]:
nums.append(num)
else:
i = bisect_right(nums, num)
nums[i] = num
result += len(s) - len(nums)
return result