Skip to content

Commit 3d26098

Browse files
authored
feat: update solutions to lc problem: No.0896 (doocs#801)
No.0896.Monotonic Array
1 parent 3cb7d22 commit 3d26098

File tree

8 files changed

+121
-121
lines changed

8 files changed

+121
-121
lines changed

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

Lines changed: 43 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -53,10 +53,10 @@
5353

5454
遍历数组:
5555

56-
- 出现递减,将 `incr` 置为 `false`
57-
- 出现递增,将 `decr` 置为 `false`
58-
- 既非递增也非递减,提前返回 `false`
59-
- 遍历结束,若出现递增或递减,返回 `true`
56+
- 出现递增,将 `isIncr` 置为 `true`
57+
- 出现递减,将 `isDecr` 置为 `true`
58+
- 既是递增也是递减,提前返回 `false`
59+
- 正常遍历结束,返回 `true`
6060

6161
<!-- tabs:start -->
6262

@@ -67,15 +67,15 @@
6767
```python
6868
class Solution:
6969
def isMonotonic(self, nums: List[int]) -> bool:
70-
incr = decr = True
70+
isIncr = isDecr = False
7171
for i, v in enumerate(nums[1:]):
72-
if not incr and not decr:
73-
return False
7472
if v < nums[i]:
75-
incr = False
73+
isIncr = True
7674
elif v > nums[i]:
77-
decr = False
78-
return incr or decr
75+
isDecr = True
76+
if isIncr and isDecr:
77+
return False
78+
return True
7979
```
8080

8181
### **Java**
@@ -85,18 +85,18 @@ class Solution:
8585
```java
8686
class Solution {
8787
public boolean isMonotonic(int[] nums) {
88-
boolean incr = true, decr = true;
88+
boolean isIncr = false, isDecr = false;
8989
for (int i = 1; i < nums.length; ++i) {
90-
if (!incr && !decr) {
91-
return false;
92-
}
9390
if (nums[i] < nums[i - 1]) {
94-
incr = false;
91+
isIncr = true;
9592
} else if (nums[i] > nums[i - 1]) {
96-
decr = false;
93+
isDecr = true;
94+
}
95+
if (isIncr && isDecr) {
96+
return false;
9797
}
9898
}
99-
return incr || decr;
99+
return true;
100100
}
101101
}
102102
```
@@ -107,15 +107,15 @@ class Solution {
107107
class Solution {
108108
public:
109109
bool isMonotonic(vector<int>& nums) {
110-
bool incr = true;
111-
bool decr = true;
110+
bool isIncr = false;
111+
bool isDecr = false;
112112
for (int i = 1; i < nums.size(); ++i)
113113
{
114-
if (!incr && !decr) return false;
115-
if (nums[i] < nums[i - 1]) incr = false;
116-
if (nums[i] > nums[i - 1]) decr = false;
114+
if (nums[i] < nums[i - 1]) isIncr = true;
115+
if (nums[i] > nums[i - 1]) isDecr = true;
116+
if (isIncr && isDecr) return false;
117117
}
118-
return incr || decr;
118+
return true;
119119
}
120120
};
121121
```
@@ -124,18 +124,18 @@ public:
124124
125125
```go
126126
func isMonotonic(nums []int) bool {
127-
incr, decr := true, true
127+
isIncr, isDecr := false, false
128128
for i, v := range nums[1:] {
129-
if !incr && !decr {
130-
return false
131-
}
132129
if v < nums[i] {
133-
incr = false
130+
isIncr = true
134131
} else if v > nums[i] {
135-
decr = false
132+
isDecr = true
133+
}
134+
if isIncr && isDecr {
135+
return false
136136
}
137137
}
138-
return incr || decr
138+
return true
139139
}
140140
```
141141

@@ -147,20 +147,20 @@ func isMonotonic(nums []int) bool {
147147
* @return {boolean}
148148
*/
149149
var isMonotonic = function (nums) {
150-
let incr = true;
151-
let decr = true;
150+
let isIncr = false;
151+
let isDecr = false;
152152
for (let i = 1; i < nums.length; ++i) {
153-
if (!incr && !decr) {
154-
return false;
155-
}
156153
if (nums[i] < nums[i - 1]) {
157-
incr = false;
154+
isIncr = true;
158155
}
159156
if (nums[i] > nums[i - 1]) {
160-
decr = false;
157+
isDecr = true;
158+
}
159+
if (isIncr && isDecr) {
160+
return false;
161161
}
162162
}
163-
return incr || decr;
163+
return true;
164164
};
165165
```
166166

@@ -193,17 +193,17 @@ function isMonotonic(nums: number[]): boolean {
193193
impl Solution {
194194
pub fn is_monotonic(nums: Vec<i32>) -> bool {
195195
let n = nums.len();
196-
let mut isOrder = false;
197-
let mut isDecs = false;
196+
let mut is_order = false;
197+
let mut is_decs = false;
198198
for i in 1..n {
199199
let pre = nums[i - 1];
200200
let cur = nums[i];
201201
if pre < cur {
202-
isOrder = true;
202+
is_order = true;
203203
} else if pre > cur {
204-
isDecs = true;
204+
is_decs = true;
205205
}
206-
if isOrder && isDecs {
206+
if is_order && is_decs {
207207
return false;
208208
}
209209
}

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

Lines changed: 39 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -49,34 +49,34 @@
4949
```python
5050
class Solution:
5151
def isMonotonic(self, nums: List[int]) -> bool:
52-
incr = decr = True
52+
isIncr = isDecr = False
5353
for i, v in enumerate(nums[1:]):
54-
if not incr and not decr:
55-
return False
5654
if v < nums[i]:
57-
incr = False
55+
isIncr = True
5856
elif v > nums[i]:
59-
decr = False
60-
return incr or decr
57+
isDecr = True
58+
if isIncr and isDecr:
59+
return False
60+
return True
6161
```
6262

6363
### **Java**
6464

6565
```java
6666
class Solution {
6767
public boolean isMonotonic(int[] nums) {
68-
boolean incr = true, decr = true;
68+
boolean isIncr = false, isDecr = false;
6969
for (int i = 1; i < nums.length; ++i) {
70-
if (!incr && !decr) {
71-
return false;
72-
}
7370
if (nums[i] < nums[i - 1]) {
74-
incr = false;
71+
isIncr = true;
7572
} else if (nums[i] > nums[i - 1]) {
76-
decr = false;
73+
isDecr = true;
74+
}
75+
if (isIncr && isDecr) {
76+
return false;
7777
}
7878
}
79-
return incr || decr;
79+
return true;
8080
}
8181
}
8282
```
@@ -87,15 +87,15 @@ class Solution {
8787
class Solution {
8888
public:
8989
bool isMonotonic(vector<int>& nums) {
90-
bool incr = true;
91-
bool decr = true;
90+
bool isIncr = false;
91+
bool isDecr = false;
9292
for (int i = 1; i < nums.size(); ++i)
9393
{
94-
if (!incr && !decr) return false;
95-
if (nums[i] < nums[i - 1]) incr = false;
96-
if (nums[i] > nums[i - 1]) decr = false;
94+
if (nums[i] < nums[i - 1]) isIncr = true;
95+
if (nums[i] > nums[i - 1]) isDecr = true;
96+
if (isIncr && isDecr) return false;
9797
}
98-
return incr || decr;
98+
return true;
9999
}
100100
};
101101
```
@@ -104,18 +104,18 @@ public:
104104
105105
```go
106106
func isMonotonic(nums []int) bool {
107-
incr, decr := true, true
107+
isIncr, isDecr := false, false
108108
for i, v := range nums[1:] {
109-
if !incr && !decr {
110-
return false
111-
}
112109
if v < nums[i] {
113-
incr = false
110+
isIncr = true
114111
} else if v > nums[i] {
115-
decr = false
112+
isDecr = true
113+
}
114+
if isIncr && isDecr {
115+
return false
116116
}
117117
}
118-
return incr || decr
118+
return true
119119
}
120120
```
121121

@@ -127,20 +127,20 @@ func isMonotonic(nums []int) bool {
127127
* @return {boolean}
128128
*/
129129
var isMonotonic = function (nums) {
130-
let incr = true;
131-
let decr = true;
130+
let isIncr = false;
131+
let isDecr = false;
132132
for (let i = 1; i < nums.length; ++i) {
133-
if (!incr && !decr) {
134-
return false;
135-
}
136133
if (nums[i] < nums[i - 1]) {
137-
incr = false;
134+
isIncr = true;
138135
}
139136
if (nums[i] > nums[i - 1]) {
140-
decr = false;
137+
isDecr = true;
138+
}
139+
if (isIncr && isDecr) {
140+
return false;
141141
}
142142
}
143-
return incr || decr;
143+
return true;
144144
};
145145
```
146146

@@ -173,17 +173,17 @@ function isMonotonic(nums: number[]): boolean {
173173
impl Solution {
174174
pub fn is_monotonic(nums: Vec<i32>) -> bool {
175175
let n = nums.len();
176-
let mut isOrder = false;
177-
let mut isDecs = false;
176+
let mut is_order = false;
177+
let mut is_decs = false;
178178
for i in 1..n {
179179
let pre = nums[i - 1];
180180
let cur = nums[i];
181181
if pre < cur {
182-
isOrder = true;
182+
is_order = true;
183183
} else if pre > cur {
184-
isDecs = true;
184+
is_decs = true;
185185
}
186-
if isOrder && isDecs {
186+
if is_order && is_decs {
187187
return false;
188188
}
189189
}
Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
class Solution {
22
public:
33
bool isMonotonic(vector<int>& nums) {
4-
bool incr = true;
5-
bool decr = true;
4+
bool isIncr = false;
5+
bool isDecr = false;
66
for (int i = 1; i < nums.size(); ++i)
77
{
8-
if (!incr && !decr) return false;
9-
if (nums[i] < nums[i - 1]) incr = false;
10-
if (nums[i] > nums[i - 1]) decr = false;
8+
if (nums[i] < nums[i - 1]) isIncr = true;
9+
if (nums[i] > nums[i - 1]) isDecr = true;
10+
if (isIncr && isDecr) return false;
1111
}
12-
return incr || decr;
12+
return true;
1313
}
1414
};
Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
func isMonotonic(nums []int) bool {
2-
incr, decr := true, true
2+
isIncr, isDecr := false, false
33
for i, v := range nums[1:] {
4-
if !incr && !decr {
5-
return false
6-
}
74
if v < nums[i] {
8-
incr = false
5+
isIncr = true
96
} else if v > nums[i] {
10-
decr = false
7+
isDecr = true
8+
}
9+
if isIncr && isDecr {
10+
return false
1111
}
1212
}
13-
return incr || decr
13+
return true
1414
}
Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
11
class Solution {
22
public boolean isMonotonic(int[] nums) {
3-
boolean incr = true, decr = true;
3+
boolean isIncr = false, isDecr = false;
44
for (int i = 1; i < nums.length; ++i) {
5-
if (!incr && !decr) {
6-
return false;
7-
}
85
if (nums[i] < nums[i - 1]) {
9-
incr = false;
6+
isIncr = true;
107
} else if (nums[i] > nums[i - 1]) {
11-
decr = false;
8+
isDecr = true;
9+
}
10+
if (isIncr && isDecr) {
11+
return false;
1212
}
1313
}
14-
return incr || decr;
14+
return true;
1515
}
1616
}

0 commit comments

Comments
 (0)