Skip to content

Commit 0be1d1e

Browse files
committed
feat: add solutions to lc problem: No.1550
No.1550 Three Consecutive Odds
1 parent 586bcc6 commit 0be1d1e

File tree

9 files changed

+559
-327
lines changed

9 files changed

+559
-327
lines changed

solution/1500-1599/1550.Three Consecutive Odds/README.md

+95
Original file line numberDiff line numberDiff line change
@@ -37,22 +37,117 @@
3737

3838
<!-- 这里可写通用的实现逻辑 -->
3939

40+
**方法一:遍历数组**
41+
42+
直接遍历数组,统计连续奇数的个数,如果个数达到 3,则返回 `true`,否则遍历结束,返回 `false`
43+
44+
时间复杂度 $O(n)$,空间复杂度 $O(1)$,其中 $n$ 为数组 `arr` 的长度。
45+
4046
<!-- tabs:start -->
4147

4248
### **Python3**
4349

4450
<!-- 这里可写当前语言的特殊实现逻辑 -->
4551

4652
```python
53+
class Solution:
54+
def threeConsecutiveOdds(self, arr: List[int]) -> bool:
55+
cnt = 0
56+
for v in arr:
57+
if v & 1:
58+
cnt += 1
59+
else:
60+
cnt = 0
61+
if cnt == 3:
62+
return True
63+
return False
64+
```
4765

66+
```python
67+
class Solution:
68+
def threeConsecutiveOdds(self, arr: List[int]) -> bool:
69+
for i in range(len(arr) - 2):
70+
if arr[i] % 2 + arr[i + 1] % 2 + arr[i + 2] % 2 == 3:
71+
return True
72+
return False
4873
```
4974

5075
### **Java**
5176

5277
<!-- 这里可写当前语言的特殊实现逻辑 -->
5378

5479
```java
80+
class Solution {
81+
public boolean threeConsecutiveOdds(int[] arr) {
82+
int cnt = 0;
83+
for (int v : arr) {
84+
if (v % 2 == 1) {
85+
++cnt;
86+
} else {
87+
cnt = 0;
88+
}
89+
if (cnt == 3) {
90+
return true;
91+
}
92+
}
93+
return false;
94+
}
95+
}
96+
```
97+
98+
### **C++**
99+
100+
```cpp
101+
class Solution {
102+
public:
103+
bool threeConsecutiveOdds(vector<int>& arr) {
104+
int cnt = 0;
105+
for (int v : arr) {
106+
if (v & 1) ++cnt;
107+
else cnt = 0;
108+
if (cnt == 3) return true;
109+
}
110+
return false;
111+
}
112+
};
113+
```
114+
115+
### **Go**
116+
117+
```go
118+
func threeConsecutiveOdds(arr []int) bool {
119+
cnt := 0
120+
for _, v := range arr {
121+
if v%2 == 1 {
122+
cnt++
123+
} else {
124+
cnt = 0
125+
}
126+
if cnt == 3 {
127+
return true
128+
}
129+
}
130+
return false
131+
}
132+
```
55133

134+
### **TypeScript**
135+
136+
```ts
137+
function threeConsecutiveOdds(arr: number[]): boolean {
138+
let cnt = 0;
139+
for (const v of arr) {
140+
if (v & 1) {
141+
++cnt;
142+
} else {
143+
cnt = 0;
144+
}
145+
if (cnt == 3) {
146+
return true;
147+
}
148+
}
149+
return false;
150+
}
56151
```
57152

58153
### **...**

solution/1500-1599/1550.Three Consecutive Odds/README_EN.md

+89
Original file line numberDiff line numberDiff line change
@@ -38,13 +38,102 @@ Given an integer array <code>arr</code>, return <code>true</code>&nbsp;if there
3838
### **Python3**
3939

4040
```python
41+
class Solution:
42+
def threeConsecutiveOdds(self, arr: List[int]) -> bool:
43+
cnt = 0
44+
for v in arr:
45+
if v & 1:
46+
cnt += 1
47+
else:
48+
cnt = 0
49+
if cnt == 3:
50+
return True
51+
return False
52+
```
4153

54+
```python
55+
class Solution:
56+
def threeConsecutiveOdds(self, arr: List[int]) -> bool:
57+
for i in range(len(arr) - 2):
58+
if arr[i] % 2 + arr[i + 1] % 2 + arr[i + 2] % 2 == 3:
59+
return True
60+
return False
4261
```
4362

4463
### **Java**
4564

4665
```java
66+
class Solution {
67+
public boolean threeConsecutiveOdds(int[] arr) {
68+
int cnt = 0;
69+
for (int v : arr) {
70+
if (v % 2 == 1) {
71+
++cnt;
72+
} else {
73+
cnt = 0;
74+
}
75+
if (cnt == 3) {
76+
return true;
77+
}
78+
}
79+
return false;
80+
}
81+
}
82+
```
83+
84+
### **C++**
85+
86+
```cpp
87+
class Solution {
88+
public:
89+
bool threeConsecutiveOdds(vector<int>& arr) {
90+
int cnt = 0;
91+
for (int v : arr) {
92+
if (v & 1) ++cnt;
93+
else cnt = 0;
94+
if (cnt == 3) return true;
95+
}
96+
return false;
97+
}
98+
};
99+
```
100+
101+
### **Go**
102+
103+
```go
104+
func threeConsecutiveOdds(arr []int) bool {
105+
cnt := 0
106+
for _, v := range arr {
107+
if v%2 == 1 {
108+
cnt++
109+
} else {
110+
cnt = 0
111+
}
112+
if cnt == 3 {
113+
return true
114+
}
115+
}
116+
return false
117+
}
118+
```
47119

120+
### **TypeScript**
121+
122+
```ts
123+
function threeConsecutiveOdds(arr: number[]): boolean {
124+
let cnt = 0;
125+
for (const v of arr) {
126+
if (v & 1) {
127+
++cnt;
128+
} else {
129+
cnt = 0;
130+
}
131+
if (cnt == 3) {
132+
return true;
133+
}
134+
}
135+
return false;
136+
}
48137
```
49138

50139
### **...**
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
class Solution {
2+
public:
3+
bool threeConsecutiveOdds(vector<int>& arr) {
4+
int cnt = 0;
5+
for (int v : arr) {
6+
if (v & 1) ++cnt;
7+
else cnt = 0;
8+
if (cnt == 3) return true;
9+
}
10+
return false;
11+
}
12+
};
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
func threeConsecutiveOdds(arr []int) bool {
2+
cnt := 0
3+
for _, v := range arr {
4+
if v%2 == 1 {
5+
cnt++
6+
} else {
7+
cnt = 0
8+
}
9+
if cnt == 3 {
10+
return true
11+
}
12+
}
13+
return false
14+
}

solution/1500-1599/1550.Three Consecutive Odds/Solution.java

+8-8
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
class Solution {
22
public boolean threeConsecutiveOdds(int[] arr) {
3-
int count = 0;
4-
for (int n : arr) {
5-
if (n % 2 == 0) {
6-
count = 0;
3+
int cnt = 0;
4+
for (int v : arr) {
5+
if (v % 2 == 1) {
6+
++cnt;
77
} else {
8-
count++;
9-
if (count >= 3) {
10-
return true;
11-
}
8+
cnt = 0;
9+
}
10+
if (cnt == 3) {
11+
return true;
1212
}
1313
}
1414
return false;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
class Solution:
2+
def threeConsecutiveOdds(self, arr: List[int]) -> bool:
3+
for i in range(len(arr) - 2):
4+
if arr[i] % 2 + arr[i + 1] % 2 + arr[i + 2] % 2 == 3:
5+
return True
6+
return False
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
function threeConsecutiveOdds(arr: number[]): boolean {
2+
let cnt = 0;
3+
for (const v of arr) {
4+
if (v & 1) {
5+
++cnt;
6+
} else {
7+
cnt = 0;
8+
}
9+
if (cnt == 3) {
10+
return true;
11+
}
12+
}
13+
return false;
14+
}

0 commit comments

Comments
 (0)