码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2018-05-14 23:05:23      阅读:206      评论:0      收藏:0      [点我收藏+]

标签:style   调整   modifying   boolean   could   etc   task   参考   算法   

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

标签:style   调整   modifying   boolean   could   etc   task   参考   算法   

原文地址:https://www.cnblogs.com/DongPingAn/p/9038449.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!