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

    package LeetCode_665
    
    /**
     * 665. Non-decreasing Array
     * https://leetcode.com/problems/non-decreasing-array/
     * Given an array nums 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 nums[i] <= nums[i + 1] holds for every i (0-based) such that (0 <= i <= n - 2).
    
    Example 1:
    Input: nums = [4,2,3]
    Output: true
    Explanation: You could modify the first 4 to 1 to get a non-decreasing array.
    
    Example 2:
    Input: nums = [4,2,1]
    Output: false
    Explanation: You can't get a non-decreasing array by modify at most one element.
    
    Constraints:
    1. 1 <= n <= 10 ^ 4
    2. - 10 ^ 5 <= nums[i] <= 10 ^ 5
     * */
    class Solution {
        /*
        * solution: check current number with previous two number, Time:O(n), Space:O(1)
        * */
        fun checkPossibility(nums: IntArray): Boolean {
            var count = 0
            var previous = nums[0]
            for (i in 1 until nums.size) {
                //current less than prev, we need update
                if (nums[i] < previous) {
                    if (count++ >= 1) {
                        return false
                    }
                }
                //if current less then previous two number, keep compare last previous, else update previous
                if (i != 1 && nums[i] < previous && nums[i] < nums[i - 2]) {
                    continue
                }
                previous = nums[i]
            }
            return true
        }
    }
  • 相关阅读:
    8 盒子模型
    7 display属性
    如何提高运维价值体系
    Python学习之OS模块初识
    7、MongoDB学习之游标
    Python 学习之文件对象的属性和方法简介
    Python集合set()操作详解
    Python中的字典介绍
    Python序列之元组
    Python序列之列表
  • 原文地址:https://www.cnblogs.com/johnnyzhao/p/14249345.html
Copyright © 2011-2022 走看看