Skip to content

Commit 4ff1f34

Browse files
committed
feat: add solutions to lc problem: No.0896
No.0896.Monotonic Array
1 parent 1e9d109 commit 4ff1f34

File tree

7 files changed

+240
-61
lines changed

7 files changed

+240
-61
lines changed

solution/0800-0899/0896.Monotonic Array/README.md

+86-18
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,8 @@
5353

5454
遍历数组:
5555

56-
- 出现递减,将 `increase` 置为 `false`
57-
- 出现递增,将 `decrease` 置为 `false`
56+
- 出现递减,将 `incr` 置为 `false`
57+
- 出现递增,将 `decr` 置为 `false`
5858
- 既非递增也非递减,提前返回 `false`
5959
- 遍历结束,若出现递增或递减,返回 `true`
6060

@@ -66,16 +66,16 @@
6666

6767
```python
6868
class Solution:
69-
def isMonotonic(self, A: List[int]) -> bool:
70-
increase = decrease = True
71-
for i in range(1, len(A)):
72-
if not increase and not decrease:
69+
def isMonotonic(self, nums: List[int]) -> bool:
70+
incr = decr = True
71+
for i, v in enumerate(nums[1:]):
72+
if not incr and not decr:
7373
return False
74-
if A[i] < A[i - 1]:
75-
increase = False
76-
elif A[i] > A[i - 1]:
77-
decrease = False
78-
return increase or decrease
74+
if v < nums[i]:
75+
incr = False
76+
elif v > nums[i]:
77+
decr = False
78+
return incr or decr
7979
```
8080

8181
### **Java**
@@ -84,18 +84,86 @@ class Solution:
8484

8585
```java
8686
class Solution {
87-
public boolean isMonotonic(int[] A) {
88-
boolean increase = true, decrease = true;
89-
for (int i = 1, n = A.length; i < n; ++i) {
90-
if (!increase && !decrease) return false;
91-
if (A[i] < A[i - 1]) decrease = false;
92-
else if (A[i] > A[i - 1]) increase = false;
87+
public boolean isMonotonic(int[] nums) {
88+
boolean incr = true, decr = true;
89+
for (int i = 1; i < nums.length; ++i) {
90+
if (!incr && !decr) {
91+
return false;
92+
}
93+
if (nums[i] < nums[i - 1]) {
94+
incr = false;
95+
} else if (nums[i] > nums[i - 1]) {
96+
decr = false;
97+
}
9398
}
94-
return increase || decrease;
99+
return incr || decr;
95100
}
96101
}
97102
```
98103

104+
### **C++**
105+
106+
```cpp
107+
class Solution {
108+
public:
109+
bool isMonotonic(vector<int>& nums) {
110+
bool incr = true;
111+
bool decr = true;
112+
for (int i = 1; i < nums.size(); ++i)
113+
{
114+
if (!incr && !decr) return false;
115+
if (nums[i] < nums[i - 1]) incr = false;
116+
if (nums[i] > nums[i - 1]) decr = false;
117+
}
118+
return incr || decr;
119+
}
120+
};
121+
```
122+
123+
### **Go**
124+
125+
```go
126+
func isMonotonic(nums []int) bool {
127+
incr, decr := true, true
128+
for i, v := range nums[1:] {
129+
if !incr && !decr {
130+
return false
131+
}
132+
if v < nums[i] {
133+
incr = false
134+
} else if v > nums[i] {
135+
decr = false
136+
}
137+
}
138+
return incr || decr
139+
}
140+
```
141+
142+
### **JavaScript**
143+
144+
```js
145+
/**
146+
* @param {number[]} nums
147+
* @return {boolean}
148+
*/
149+
var isMonotonic = function (nums) {
150+
let incr = true;
151+
let decr = true;
152+
for (let i = 1; i < nums.length; ++i) {
153+
if (!incr && !decr) {
154+
return false;
155+
}
156+
if (nums[i] < nums[i - 1]) {
157+
incr = false;
158+
}
159+
if (nums[i] > nums[i - 1]) {
160+
decr = false;
161+
}
162+
}
163+
return incr || decr;
164+
};
165+
```
166+
99167
### **...**
100168

101169
```

solution/0800-0899/0896.Monotonic Array/README_EN.md

+84-16
Original file line numberDiff line numberDiff line change
@@ -48,34 +48,102 @@
4848

4949
```python
5050
class Solution:
51-
def isMonotonic(self, A: List[int]) -> bool:
52-
increase = decrease = True
53-
for i in range(1, len(A)):
54-
if not increase and not decrease:
51+
def isMonotonic(self, nums: List[int]) -> bool:
52+
incr = decr = True
53+
for i, v in enumerate(nums[1:]):
54+
if not incr and not decr:
5555
return False
56-
if A[i] < A[i - 1]:
57-
increase = False
58-
elif A[i] > A[i - 1]:
59-
decrease = False
60-
return increase or decrease
56+
if v < nums[i]:
57+
incr = False
58+
elif v > nums[i]:
59+
decr = False
60+
return incr or decr
6161
```
6262

6363
### **Java**
6464

6565
```java
6666
class Solution {
67-
public boolean isMonotonic(int[] A) {
68-
boolean increase = true, decrease = true;
69-
for (int i = 1, n = A.length; i < n; ++i) {
70-
if (!increase && !decrease) return false;
71-
if (A[i] < A[i - 1]) decrease = false;
72-
else if (A[i] > A[i - 1]) increase = false;
67+
public boolean isMonotonic(int[] nums) {
68+
boolean incr = true, decr = true;
69+
for (int i = 1; i < nums.length; ++i) {
70+
if (!incr && !decr) {
71+
return false;
72+
}
73+
if (nums[i] < nums[i - 1]) {
74+
incr = false;
75+
} else if (nums[i] > nums[i - 1]) {
76+
decr = false;
77+
}
7378
}
74-
return increase || decrease;
79+
return incr || decr;
7580
}
7681
}
7782
```
7883

84+
### **C++**
85+
86+
```cpp
87+
class Solution {
88+
public:
89+
bool isMonotonic(vector<int>& nums) {
90+
bool incr = true;
91+
bool decr = true;
92+
for (int i = 1; i < nums.size(); ++i)
93+
{
94+
if (!incr && !decr) return false;
95+
if (nums[i] < nums[i - 1]) incr = false;
96+
if (nums[i] > nums[i - 1]) decr = false;
97+
}
98+
return incr || decr;
99+
}
100+
};
101+
```
102+
103+
### **Go**
104+
105+
```go
106+
func isMonotonic(nums []int) bool {
107+
incr, decr := true, true
108+
for i, v := range nums[1:] {
109+
if !incr && !decr {
110+
return false
111+
}
112+
if v < nums[i] {
113+
incr = false
114+
} else if v > nums[i] {
115+
decr = false
116+
}
117+
}
118+
return incr || decr
119+
}
120+
```
121+
122+
### **JavaScript**
123+
124+
```js
125+
/**
126+
* @param {number[]} nums
127+
* @return {boolean}
128+
*/
129+
var isMonotonic = function (nums) {
130+
let incr = true;
131+
let decr = true;
132+
for (let i = 1; i < nums.length; ++i) {
133+
if (!incr && !decr) {
134+
return false;
135+
}
136+
if (nums[i] < nums[i - 1]) {
137+
incr = false;
138+
}
139+
if (nums[i] > nums[i - 1]) {
140+
decr = false;
141+
}
142+
}
143+
return incr || decr;
144+
};
145+
```
146+
79147
### **...**
80148

81149
```
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
class Solution {
2+
public:
3+
bool isMonotonic(vector<int>& nums) {
4+
bool incr = true;
5+
bool decr = true;
6+
for (int i = 1; i < nums.size(); ++i)
7+
{
8+
if (!incr && !decr) return false;
9+
if (nums[i] < nums[i - 1]) incr = false;
10+
if (nums[i] > nums[i - 1]) decr = false;
11+
}
12+
return incr || decr;
13+
}
14+
};
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
func isMonotonic(nums []int) bool {
2+
incr, decr := true, true
3+
for i, v := range nums[1:] {
4+
if !incr && !decr {
5+
return false
6+
}
7+
if v < nums[i] {
8+
incr = false
9+
} else if v > nums[i] {
10+
decr = false
11+
}
12+
}
13+
return incr || decr
14+
}
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,16 @@
1-
class Solution {
2-
public boolean isMonotonic(int[] A) {
3-
boolean increase = true, decrease = true;
4-
for (int i = 1, n = A.length; i < n; ++i) {
5-
if (!increase && !decrease) return false;
6-
if (A[i] < A[i - 1]) decrease = false;
7-
else if (A[i] > A[i - 1]) increase = false;
8-
}
9-
return increase || decrease;
10-
}
1+
class Solution {
2+
public boolean isMonotonic(int[] nums) {
3+
boolean incr = true, decr = true;
4+
for (int i = 1; i < nums.length; ++i) {
5+
if (!incr && !decr) {
6+
return false;
7+
}
8+
if (nums[i] < nums[i - 1]) {
9+
incr = false;
10+
} else if (nums[i] > nums[i - 1]) {
11+
decr = false;
12+
}
13+
}
14+
return incr || decr;
15+
}
1116
}
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,20 @@
1-
var isMonotonic = function (A) {
2-
var check =
3-
A[0] <= A[A.length - 1] ? (a1, a2) => a1 <= a2 : (a1, a2) => a1 >= a2;
4-
for (var i = 0; i < A.length - 1; i++) {
5-
if (!check(A[i], A[i + 1])) {
1+
/**
2+
* @param {number[]} nums
3+
* @return {boolean}
4+
*/
5+
var isMonotonic = function (nums) {
6+
let incr = true;
7+
let decr = true;
8+
for (let i = 1; i < nums.length; ++i) {
9+
if (!incr && !decr) {
610
return false;
711
}
12+
if (nums[i] < nums[i - 1]) {
13+
incr = false;
14+
}
15+
if (nums[i] > nums[i - 1]) {
16+
decr = false;
17+
}
818
}
9-
return true;
19+
return incr || decr;
1020
};
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
class Solution:
2-
def isMonotonic(self, A: List[int]) -> bool:
3-
increase = decrease = True
4-
for i in range(1, len(A)):
5-
if not increase and not decrease:
6-
return False
7-
if A[i] < A[i - 1]:
8-
increase = False
9-
elif A[i] > A[i - 1]:
10-
decrease = False
11-
return increase or decrease
1+
class Solution:
2+
def isMonotonic(self, nums: List[int]) -> bool:
3+
incr = decr = True
4+
for i, v in enumerate(nums[1:]):
5+
if not incr and not decr:
6+
return False
7+
if v < nums[i]:
8+
incr = False
9+
elif v > nums[i]:
10+
decr = False
11+
return incr or decr

0 commit comments

Comments
 (0)