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

665. Non-decreasing Array

时间:2017-10-11 12:47:52      阅读:131      评论:0      收藏:0      [点我收藏+]

标签:mos   pos   fine   pre   com   lan   col   long   nbsp   

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 这种情况

C++(52ms):

 1 class Solution {
 2 public:
 3     bool checkPossibility(vector<int>& nums) {
 4         int len = nums.size();
 5         int cnt = 0 ;
 6         int prev = nums[0] ;
 7         for (int i = 1 ; i < len && cnt <= 1 ; i++){
 8             if (nums[i] < prev)
 9                 cnt++ ;
10             if (nums[i] < prev && i-2>=0 && nums[i-2] > nums[i])
11                 continue ;
12             prev = nums[i] ;
13         }
14         return cnt<=1 ;
15     }
16 };

 

665. Non-decreasing Array

标签:mos   pos   fine   pre   com   lan   col   long   nbsp   

原文地址:http://www.cnblogs.com/-Buff-/p/7649692.html

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