-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathS665.java
32 lines (30 loc) · 1.08 KB
/
S665.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
/**
* LC#665:Non-decreasing Array
* Link:https://leetcode-cn.com/problems/non-decreasing-array/
* 备注:非递减数列的: 对于数组中任意的 i (0 <= i <= n-2),总满足 nums[i] <= nums[i + 1]
* 思路:这道题比较难理解,就是保证数组整体是一个非递减数列即可,循环 + 逻辑判断解决
*/
public class S665 {
public static boolean checkPossibility(int[] nums) {
int n = nums.length, cnt = 0;
for(int i = 0; i < n -1; i++) {
int x = nums[i], y = nums[i + 1];
// 非递减数不进入逻辑判断
if (x > y) {
cnt++;
// 如果非递减数出现 2次,返回 false
if (cnt > 1) return false;
if (i > 0 && y < nums[i - 1]) {
nums[i + 1] = x;
}
}
}
return true;
}
public static void main(String[] args) {
int[] nums = {4, 2, 3};
// int[] nums = {4, 2, 1};
boolean res = checkPossibility(nums);
System.out.println("res :" + res);
}
}