p153 非减数组(leetcode 665)
一:解题思路
Time:O(n),Space:O(1)
二:完整代码示例 (C++版和Java版)
C++:
class Solution { public: bool checkPossibility(vector<int>& nums) { if (nums.size() == 0) return false; if (nums.size() == 1) return true; bool modified = nums[0] > nums[1]; for (int i = 1; i < nums.size() - 1; i++) { if (nums[i] > nums[i + 1]) { if (modified) return false; if (nums[i + 1] >= nums[i - 1]) nums[i] = nums[i-1]; else nums[i + 1] = nums[i]; modified = true; } } return true; } };
Java:
class Solution { public boolean checkPossibility(int[] nums) { if(nums==null || nums.length==0) return false; if(nums.length==1) return true; boolean modified=nums[0]>nums[1]; for(int i=1;i<nums.length-1;i++) { if(nums[i]>nums[i+1]) { if(modified) return false; if(nums[i+1]>=nums[i-1]) nums[i]=nums[i-1]; else nums[i+1]=nums[i]; modified=true; } } return true; } }
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号