• 665. 非递减数列


    给你一个长度为 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

    过了都不知道为什么能过系列~

    class Solution:
        def checkPossibility(self, nums: List[int]) -> bool:
            cnt=0
            if len(nums)<=1:return True
            for i in range(len(nums)):
                if i==0:
                    if nums[i]>nums[i+1]:
                        cnt+=1
                        nums[i]=nums[i+1]
                elif i==len(nums)-1:
                    if nums[i]<nums[i-1]:
                        cnt+=1
                        nums[i]=nums[i-1]
                else:
                    if nums[i]<nums[i-1] and nums[i]<nums[i+1]:
                        cnt+=1
                        nums[i]=nums[i-1]
                    elif nums[i]>nums[i-1] and nums[i]>nums[i+1] and nums[i-1]<=nums[i+1]:
                        cnt+=1
                        nums[i]=nums[i-1]
                    
            if nums==sorted(nums) and cnt<=1:
                return True
            else:
                return False

    optimization====>

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

  • 相关阅读:
    c3p0使用
    连接池介绍
    内存角度探寻C++面向对象 之 继承、多态
    java多线程总结
    SQL关联查询总结
    java内存管理总结
    自制操作系统 (六) 分割编译与中断处理
    C++内联函数
    C++函数指针
    springmvc下实现登录验证码功能
  • 原文地址:https://www.cnblogs.com/xxxsans/p/14383877.html
Copyright © 2020-2023  润新知