zoukankan      html  css  js  c++  java
  • 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, 10,000].

    自己琢磨的 :(简直无法忍受)

    class Solution {
         public boolean checkPossibility(int[] nums) {
           if(nums.length<=1){
    			return true;
    		}
    		
    		List<Integer> list = new ArrayList<>();
            for(int i = 0;i<nums.length-1;i++){
               if(nums[i]>nums[i+1]){
            	   list.add(i+1);
               }
            }
            if(list.size()>1){
            	return false;
            }
            if(list.size()== 0 || list.get(0)==1 || list.get(0)==nums.length-1){
            	return true;
            }
            int left =0;
            for(int i = 0;i<list.get(0);i++){
            	if(nums[i]>nums[list.get(0)]){
            		left++;
            	}
            }
            int right = 0;
            for (int i = list.get(0); i < nums.length; i++) {
            	if(nums[i]<nums[list.get(0)-1]){
            		right++;
            	}
    		}
            
            if(left >1 && right>1){
        		return false;
            }
            return true;
        }
    }
    

    大佬的答案:

    class Solution {
        public boolean checkPossibility(int[] nums) {
           int count = 0;
            for(int i = 0;i<nums.length -1 ;i++){
                if(nums[i]>nums[i+1]){
                    count++;
                    if(i>0 && nums[i+1]<nums[i-1]){
                        nums[i+1] = nums[i];
                    }
                }
            }
            return count<=1;
        }
    }
    
  • 相关阅读:
    截图与图片合成的几种方法
    GPUImage 自定义滤镜
    How do I solve the error: An error was encountered while running (Domain = LaunchServicesError, Code = 0) ?
    tableview 重用nib cell
    开发DZ插件教程
    QBImagePickerController 用法
    ALAsset和ALAssetRepresentation
    if exists和if not exists关键字用法
    Java socket 超时
    Android 图片的压缩
  • 原文地址:https://www.cnblogs.com/luozhiyun/p/8337252.html
Copyright © 2011-2022 走看看