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 }
  • 相关阅读:
    SharePoint Permission Extension
    SharePoint暂时禁用事件触发
    视图xsl定制之嵌入服务器控件
    自定义View字段表头
    自定义母版页之列表过滤菜单位置issue fix
    ListDefinition Tips
    ThinkPHP6安装
    sqlalchemy 执行原生sql语句(转)
    python操作mysql(ORM)(转)
    Python Selenium 测试
  • 原文地址:https://www.cnblogs.com/Dylan-Java-NYC/p/7560870.html
Copyright © 2011-2022 走看看