• 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

  • 相关阅读:
    初来乍到
    windows小技巧:远程桌面连接rdp文件
    CSS小试牛刀
    Windows phone 7之样式与模板
    Pulldowntorefresh a WP7 ListBox or ScrollViewer(向上向下的手势)
    Windows Phone 7 文件下载进度和速度显示
    WPF Binding
    wp7学习笔记(转)
    WP7 网络请求之WebClient
    Windows Phone Tilt effect on HubTile and other Controls
  • 原文地址:https://www.cnblogs.com/xxxsans/p/14383877.html
Copyright © 2020-2023  润新知