【Python】【难度:简单】Leetcode 665. 非递减数列【完】

    技术2025-11-17  19

    给你一个长度为 n 的整数数组,请你判断在 最多 改变 1 个元素的情况下,该数组能否变成一个非递减数列。

    我们是这样定义一个非递减数列的: 对于数组中所有的 i (0 <= i <= n-2),总满足 nums[i] <= nums[i + 1]。

     

    示例 1:

    输入: nums = [4,2,3] 输出: true 解释: 你可以通过把第一个4变成1来使得它成为一个非递减数列。 示例 2:

    输入: nums = [4,2,1] 输出: false 解释: 你不能在只改变一个元素的情况下将其变为非递减数列。  

    说明:

    1 <= n <= 10 ^ 4 - 10 ^ 5 <= nums[i] <= 10 ^ 5

    来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/non-decreasing-array 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

    class Solution(object): def checkPossibility(self, nums): """ :type nums: List[int] :rtype: bool """ d=0 g=0 for i in range(1,len(nums)): if i-1>=0 and i<len(nums)-1 and nums[i-1]>nums[i+1]: d+=1 if nums[i]<nums[i-1]: g+=1 if d>=2 or g>=2: return False return True

    执行结果:

    通过

    显示详情

    执行用时:36 ms, 在所有 Python 提交中击败了58.08%的用户

    内存消耗:13.2 MB, 在所有 Python 提交中击败了50.00%的用户

    Processed: 0.031, SQL: 9