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;
            }
        }
    };
  • 相关阅读:
    Django基础命令
    ubuntu中python项目独立的虚拟环境
    Springboot项目的小问题
    redis
    ubuntu系统根目录下各个目录用途说明
    SpringBoot 在IDEA中实现热部署
    SpringBoot访问不到webapp下的内容
    httpServeltRequest和Model传值的区别
    map的输出
    主流框架排名
  • 原文地址:https://www.cnblogs.com/zmj97/p/7554636.html
Copyright © 2011-2022 走看看