LeetCode # Array # Easy # 665. Non-decreasing Array

Posted dongpingan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode # Array # Easy # 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).

题意:给定一个数组,只调整一个元素的条件下,该数组能否变成一个递增的数组,

思路:(参考)用贪心算法,当发现nums[i-1]>nums[i]时,我们希望通过改变一个值,使局部递增。

当没有nums[i-2],或者nums[i-2] <= nums[i]时,将nums[i-1]=nums[i],这样使得局部有序;

当nums[i-2]>nums[i]时,将nums[i-1]=nums[i],因为nums[i-1]>=nums[i-2],所以做修改后,局部有序;

修改完一次后,如果还有降序的元素,则该数组不符合条件。

 1 class Solution {
 2     public boolean checkPossibility(int[] nums) {
 3         int cnt = 0,len = nums.length; ;                                     
 4         for(int i = 1; i < len && cnt<=1 ; i++){
 5             if(nums[i-1] > nums[i]){
 6                 cnt++;
 7                 if(i-2<0 || nums[i-2] <= nums[i])nums[i-1] = nums[i];     
 8                 else nums[i] = nums[i-1];                                
 9             }
10         }
11         return cnt<=1; 
12     }
13 }

 

以上是关于LeetCode # Array # Easy # 665. Non-decreasing Array的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode--219268283414448 Array(Easy)

LeetCode--Array--Two sum (Easy)

LeetCode # Array # Easy # 665. Non-decreasing Array

java [14。最长的共同前缀] #Array #Leetcode #Easy

java [9。回文数] #Array #Mod #Leetcode #Easy

leetcode_easy1486. XOR Operation in an Array