zoukankan      html  css  js  c++  java
  • [leetcode] 665. Non-decreasing Array

    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, 10000].


    不满足条件的array必然满足以下条件之一

    存在至少两个[a,b]对(其中a > b);

    存在类似于[3,4,2,3]的子序列;


    我的代码如下:

    class Solution {
    public:
        bool checkPossibility(vector<int>& nums) {
            if (nums.size() <= 2) return true;
            if (nums[0] <= nums[1]) {
                int error = 0;
                for (int i = 1; i < nums.size() - 1; i++) {
                    if (nums[i] > nums[i+1]) {
                        error++;
                        if (i <= nums.size() - 3 && nums[i-1] > nums[i+1] && nums[i] > nums[i+2]) return false;
                        if (error > 1) return false;
                    }
                }
                return true;
            } else {
                for (int i = 1; i < nums.size() - 1; i++) {
                    if (nums[i] > nums[i+1]) return false;
                }
                return true;
            }
        }
    };
  • 相关阅读:
    数字证书原理(转)
    python update from 2.6 to 2.7
    python uwsgi 部署以及优化
    uWSGI配置(转 )
    Python程序的性能分析指南(转)
    mysql 暴力破解 root账号密码
    VMware虚拟机实用经验总结十一条
    小技巧之指定refer
    cookie和session
    web相关
  • 原文地址:https://www.cnblogs.com/zmj97/p/7554636.html
Copyright © 2011-2022 走看看