Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 25bc0e3

Browse files
solution 665 by go and java
1 parent 7f1b28f commit 25bc0e3

File tree

2 files changed

+65
-0
lines changed

2 files changed

+65
-0
lines changed

‎go/655-solution.go‎

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package main
2+
3+
import "fmt"
4+
5+
/**
6+
* LC#665:Non-decreasing Array
7+
* Link:https://leetcode-cn.com/problems/non-decreasing-array/
8+
* 备注:非递减数列的: 对于数组中任意的 i (0 <= i <= n-2),总满足 nums[i] <= nums[i + 1]
9+
* 思路:这道题比较难理解,就是保证数组整体是一个非递减数列即可,循环 + 逻辑判断解决
10+
*/
11+
func checkPossibility(nums []int) bool {
12+
n, cnt := len(nums), 0
13+
for i := 0; i < n-1; i++ {
14+
// 非递减数不进入逻辑判断
15+
if x, y := nums[i], nums[i+1]; x > y {
16+
// 如果非递减数出现 2次,返回 false
17+
if cnt++; cnt > 1 {
18+
return false
19+
}
20+
if i > 0 && y < nums[i-1] {
21+
nums[i+1] = x
22+
}
23+
}
24+
}
25+
return true
26+
}
27+
28+
func main() {
29+
// nums := []int{4, 2, 3}
30+
nums := []int{4, 2, 1}
31+
res := checkPossibility(nums)
32+
fmt.Println("res:", res)
33+
}

‎src/main/java/Solution665.java‎

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

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /