zoukankan      html  css  js  c++  java
  • LeetCode 665. Non-decreasing Array

    原题链接在这里:https://leetcode.com/problems/non-decreasing-array/description/

    题目:

    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].

    题解:

    从左往右读数组时,保证前面的已经保持non-decreasing. 所有尽量更改右边的数字.

    当nums[i-1] > nums[i]时, 说明遇到decreasing情况, mark标记. 如果之前标记过则表明不能只改一个,所以return false.

    如果之前没有标记过,则看怎么更改nums[i]. 如果nums[i-2] 也大于nums[i] 的话, 那么自然应该把nums[i]增大到nums[i-1].

    否则的话就是 nums[i-2]没有nums[i]大, 则应该缩小nums[i-1]到nums[i]. 

    Time Complexity: O(nums.length). Space: O(1).

    AC Java:

     1 class Solution {
     2     public boolean checkPossibility(int[] nums) {
     3         if(nums == null || nums.length == 0){
     4             return true;
     5         }
     6         
     7         boolean found = false;
     8         for(int i = 1; i<nums.length; i++){
     9             if(nums[i] < nums[i-1]){
    10                 if(found){
    11                     return false;
    12                 }
    13                 
    14                 if(i-2>=0 && nums[i]<nums[i-2]){
    15                     nums[i] = nums[i-1];
    16                 }
    17                 
    18                 found = true;
    19             }
    20         }
    21         
    22         return true;
    23     }
    24 }
  • 相关阅读:
    公平锁,非公平锁,乐观锁,悲观锁
    需求分析
    需求的获取渠道
    php将中文字符串分割为数组
    面试题
    ecshop中错误
    应用上线前必须进行的10个QA测试
    资料1
    tp数据库配置
    Web开发思路
  • 原文地址:https://www.cnblogs.com/Dylan-Java-NYC/p/7560870.html
Copyright © 2011-2022 走看看