zoukankan      html  css  js  c++  java
  • Leetcode 665. Non-decreasing Array(Easy)

    Given an array with n integers, your task is to check if it could become non-decreasing by modifying at most 1 element.

    We define an array is non-decreasing if array[i] <= array[i + 1] holds for every i (1 <= i < n).

    Example 1:

    Input: [4,2,3]
    Output: True
    Explanation: You could modify the first 4 to 1 to get a non-decreasing array.
    

    Example 2:

    Input: [4,2,1]
    Output: False
    Explanation: You can't get a non-decreasing array by modify at most one element.
    

    Note: The n belongs to [1, 10,000].

    /*
    一开始想的有点简单,直接只是判断有多少个不符合的位置,并没有修复并检查修复后是否满足条件  所以 出现  3, 4, 2, 3的case就不行了
    其实主要分两种情况:
    2, 4, 2, 3
    3, 4, 2, 3
    
    判断当前的值是否比前一个值小,如果小的话, 再判断是否比 前前一个值 要小, 如果小,改变当前的值 使得其跟前一个值一样大,如果大,改变前一个值,使得它跟当前的值一样大。
    
    */
    
    class Solution {
    public:
        bool checkPossibility(vector<int>& nums) {
            int len = nums.size();
            int count = 0;
           // if (len == 0)   return false;
            for (int i = 1; i < len; i++){
                if (nums[i] < nums[i - 1]){
                    count ++;
                    if (count > 1){
                        return false;
                    }
                    if (nums[i] < nums[i - 2] && (i - 2) >= 0){
                        nums[i] = nums[i - 1];
                    }
                    else{
                        nums[i - 1] = nums[i];
                    }
                }
                
            }
            return true;
        }
    };
  • 相关阅读:
    《我是一只IT小小鸟》
    实现对字符串的反转输出与句子的反转输出
    7.13学习记录
    CentOS 7 不能连接网路的解决方法
    Xshell连接linux服务器不成功的乌龙问题
    Python基础(二)数据类型
    Python基础(一)
    UML精粹3
    UML精粹2
    UML精粹1
  • 原文地址:https://www.cnblogs.com/simplepaul/p/7755571.html
Copyright © 2011-2022 走看看