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
        }
    }
  • 相关阅读:
    TCP/IP协议学习-1.概述
    Gitlab与Sonarqube整合-代码提交自动检测
    Kubernetes-4.Pods
    Kubernetes-3.安装
    Kubernetes-2.组件
    Kubernetes-1.概述
    第200题 数列极限积分
    English
    亮总语录
    RadioButton Control
  • 原文地址:https://www.cnblogs.com/johnnyzhao/p/14249345.html
Copyright © 2011-2022 走看看