1

30
2026.11.02
2026.11.02
发布于 安徽
class Solution:
def minOperations(self, nums: list[int]) -> int:
n = len(nums)
cnt = p = 0
for i in range(1, n):
if nums[i - 1] > nums[i]:
cnt += 1
if cnt > 1:
break
p = i

if cnt == 0: # 已是递增
return 0
if cnt == 1 and nums[0] > nums[-1]: # 两个递增段
ans = min(p, n - p + 2)
else:
ans = inf

cnt = p = 0
for i in range(1, n):
if nums[i - 1] < nums[i]:
cnt += 1
if cnt > 1:
break
p = i

if cnt == 0: # 已是递减
return 1
if cnt == 1 and nums[0] < nums[-1]: # 两个递减段
ans = min(ans, p + 1, n - p + 1)

return -1 if ans == inf else ans


评论 (0)