Given an array nums with n integers, your task is to check if it could become non-decreasing by modifying at most one 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).
n개의 정수로 구성된 nums 배열이 주어지면, 최대 하나의 요소를 수정하여 감소하지 않는 배열이 될 수 있는지 확인하는 것이 작업입니다.
nums[i] <= nums[i + 1]이 (0 <= i <= n - 2)와 같이 모든 i(0 기반)에 대해 유지되는 경우 배열이 감소하지 않는다고 정의합니다.
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 cannot get a non-decreasing array by modifying at most one element.
Constraints:
- n == nums.length
- 1 <= n <= 10^4
- -105 <= nums[i] <= 10^5
코드
class Solution {
fun checkPossibility(nums: IntArray): Boolean {
var flag = false
for (i in 0 until nums.lastIndex) {
if (nums[i] <= nums[i + 1]) continue
if (flag) return false
if (i == 0 || nums[i - 1] > nums[i + 1]) {
nums[i] = nums[i + 1]
} else {
nums[i - 1] = nums[i]
}
flag = true
}
return true
}
}
'LeetCode > Array & Hashing' 카테고리의 다른 글
[LeetCode][Kotlin] 41. First Missing Positive (0) | 2024.10.18 |
---|---|
[LeetCode][Kotlin] 304. Range Sum Query 2D - Immutable (0) | 2024.10.18 |
[LeetCode][Kotlin] 838. Push Dominoes (0) | 2024.10.18 |