Skip to content

Commit 38a0ca2

Browse files
authored
feat: add solutions to lc problems: No.3456,3457 (doocs#4070)
1 parent 7849c5b commit 38a0ca2

File tree

28 files changed

+617
-100
lines changed

28 files changed

+617
-100
lines changed

solution/0100-0199/0128.Longest Consecutive Sequence/README.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,13 @@ tags:
3838
<strong>输出:</strong>9
3939
</pre>
4040

41+
<p><strong class="example">示例 3:</strong></p>
42+
43+
<pre>
44+
<strong>输入:</strong>nums = [1,0,1,2]
45+
<b>输出:</b>3
46+
</pre>
47+
4148
<p>&nbsp;</p>
4249

4350
<p><strong>提示:</strong></p>

solution/0100-0199/0128.Longest Consecutive Sequence/README_EN.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,13 @@ tags:
3838
<strong>Output:</strong> 9
3939
</pre>
4040

41+
<p><strong class="example">Example 3:</strong></p>
42+
43+
<pre>
44+
<strong>Input:</strong> nums = [1,0,1,2]
45+
<strong>Output:</strong> 3
46+
</pre>
47+
4148
<p>&nbsp;</p>
4249
<p><strong>Constraints:</strong></p>
4350

solution/1200-1299/1287.Element Appearing More Than 25% In Sorted Array/README.md

Lines changed: 36 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,11 @@ tags:
4646

4747
<!-- solution:start -->
4848

49-
### 方法一
49+
### 方法一:遍历
50+
51+
我们从头开始遍历数组 $\textit{arr}$,对于每个元素 $\textit{arr}[i]$,我们检查 $\textit{arr}[i]$ 是否等于 $\textit{arr}[i + \left\lfloor \frac{n}{4} \right\rfloor]$,其中 $n$ 是数组的长度。如果等于,那么 $\textit{arr}[i]$ 就是我们要找的元素,直接返回即可。
52+
53+
时间复杂度 $O(n)$,其中 $n$ 是数组 $\textit{arr}$ 的长度。空间复杂度 $O(1)$。
5054

5155
<!-- tabs:start -->
5256

@@ -56,24 +60,21 @@ tags:
5660
class Solution:
5761
def findSpecialInteger(self, arr: List[int]) -> int:
5862
n = len(arr)
59-
for i, val in enumerate(arr):
60-
if val == arr[i + (n >> 2)]:
61-
return val
62-
return 0
63+
for i, x in enumerate(arr):
64+
if x == arr[(i + (n >> 2))]:
65+
return x
6366
```
6467

6568
#### Java
6669

6770
```java
6871
class Solution {
6972
public int findSpecialInteger(int[] arr) {
70-
int n = arr.length;
71-
for (int i = 0; i < n; ++i) {
72-
if (arr[i] == arr[i + (n >> 2)]) {
73+
for (int i = 0;; ++i) {
74+
if (arr[i] == (arr[i + (arr.length >> 2)])) {
7375
return arr[i];
7476
}
7577
}
76-
return 0;
7778
}
7879
}
7980
```
@@ -84,10 +85,11 @@ class Solution {
8485
class Solution {
8586
public:
8687
int findSpecialInteger(vector<int>& arr) {
87-
int n = arr.size();
88-
for (int i = 0; i < n; ++i)
89-
if (arr[i] == arr[i + (n >> 2)]) return arr[i];
90-
return 0;
88+
for (int i = 0;; ++i) {
89+
if (arr[i] == (arr[i + (arr.size() >> 2)])) {
90+
return arr[i];
91+
}
92+
}
9193
}
9294
};
9395
```
@@ -96,13 +98,24 @@ public:
9698
9799
```go
98100
func findSpecialInteger(arr []int) int {
99-
n := len(arr)
100-
for i, val := range arr {
101-
if val == arr[i+(n>>2)] {
102-
return val
101+
for i := 0; ; i++ {
102+
if arr[i] == arr[i+len(arr)/4] {
103+
return arr[i]
103104
}
104105
}
105-
return 0
106+
}
107+
```
108+
109+
#### TypeScript
110+
111+
```ts
112+
function findSpecialInteger(arr: number[]): number {
113+
const n = arr.length;
114+
for (let i = 0; ; ++i) {
115+
if (arr[i] === arr[i + (n >> 2)]) {
116+
return arr[i];
117+
}
118+
}
106119
}
107120
```
108121

@@ -115,12 +128,11 @@ func findSpecialInteger(arr []int) int {
115128
*/
116129
var findSpecialInteger = function (arr) {
117130
const n = arr.length;
118-
for (let i = 0; i < n; ++i) {
119-
if (arr[i] == arr[i + (n >> 2)]) {
131+
for (let i = 0; ; ++i) {
132+
if (arr[i] === arr[i + (n >> 2)]) {
120133
return arr[i];
121134
}
122135
}
123-
return 0;
124136
};
125137
```
126138

@@ -133,13 +145,12 @@ class Solution {
133145
* @return Integer
134146
*/
135147
function findSpecialInteger($arr) {
136-
$len = count($arr);
137-
for ($i = 0; $i < $len; $i++) {
138-
if ($arr[$i] == $arr[$i + ($len >> 2)]) {
148+
$n = count($arr);
149+
for ($i = 0; ; ++$i) {
150+
if ($arr[$i] == $arr[$i + ($n >> 2)]) {
139151
return $arr[$i];
140152
}
141153
}
142-
return -1;
143154
}
144155
}
145156
```

solution/1200-1299/1287.Element Appearing More Than 25% In Sorted Array/README_EN.md

Lines changed: 36 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,11 @@ tags:
4949

5050
<!-- solution:start -->
5151

52-
### Solution 1
52+
### Solution 1: Traversal
53+
54+
We traverse the array $\textit{arr}$ from the beginning. For each element $\textit{arr}[i]$, we check if $\textit{arr}[i]$ is equal to $\textit{arr}[i + \left\lfloor \frac{n}{4} \right\rfloor]$, where $n$ is the length of the array. If they are equal, then $\textit{arr}[i]$ is the element we are looking for, and we return it directly.
55+
56+
The time complexity is $O(n)$, where $n$ is the length of the array $\textit{arr}$. The space complexity is $O(1)$.
5357

5458
<!-- tabs:start -->
5559

@@ -59,24 +63,21 @@ tags:
5963
class Solution:
6064
def findSpecialInteger(self, arr: List[int]) -> int:
6165
n = len(arr)
62-
for i, val in enumerate(arr):
63-
if val == arr[i + (n >> 2)]:
64-
return val
65-
return 0
66+
for i, x in enumerate(arr):
67+
if x == arr[(i + (n >> 2))]:
68+
return x
6669
```
6770

6871
#### Java
6972

7073
```java
7174
class Solution {
7275
public int findSpecialInteger(int[] arr) {
73-
int n = arr.length;
74-
for (int i = 0; i < n; ++i) {
75-
if (arr[i] == arr[i + (n >> 2)]) {
76+
for (int i = 0;; ++i) {
77+
if (arr[i] == (arr[i + (arr.length >> 2)])) {
7678
return arr[i];
7779
}
7880
}
79-
return 0;
8081
}
8182
}
8283
```
@@ -87,10 +88,11 @@ class Solution {
8788
class Solution {
8889
public:
8990
int findSpecialInteger(vector<int>& arr) {
90-
int n = arr.size();
91-
for (int i = 0; i < n; ++i)
92-
if (arr[i] == arr[i + (n >> 2)]) return arr[i];
93-
return 0;
91+
for (int i = 0;; ++i) {
92+
if (arr[i] == (arr[i + (arr.size() >> 2)])) {
93+
return arr[i];
94+
}
95+
}
9496
}
9597
};
9698
```
@@ -99,13 +101,24 @@ public:
99101
100102
```go
101103
func findSpecialInteger(arr []int) int {
102-
n := len(arr)
103-
for i, val := range arr {
104-
if val == arr[i+(n>>2)] {
105-
return val
104+
for i := 0; ; i++ {
105+
if arr[i] == arr[i+len(arr)/4] {
106+
return arr[i]
106107
}
107108
}
108-
return 0
109+
}
110+
```
111+
112+
#### TypeScript
113+
114+
```ts
115+
function findSpecialInteger(arr: number[]): number {
116+
const n = arr.length;
117+
for (let i = 0; ; ++i) {
118+
if (arr[i] === arr[i + (n >> 2)]) {
119+
return arr[i];
120+
}
121+
}
109122
}
110123
```
111124

@@ -118,12 +131,11 @@ func findSpecialInteger(arr []int) int {
118131
*/
119132
var findSpecialInteger = function (arr) {
120133
const n = arr.length;
121-
for (let i = 0; i < n; ++i) {
122-
if (arr[i] == arr[i + (n >> 2)]) {
134+
for (let i = 0; ; ++i) {
135+
if (arr[i] === arr[i + (n >> 2)]) {
123136
return arr[i];
124137
}
125138
}
126-
return 0;
127139
};
128140
```
129141

@@ -136,13 +148,12 @@ class Solution {
136148
* @return Integer
137149
*/
138150
function findSpecialInteger($arr) {
139-
$len = count($arr);
140-
for ($i = 0; $i < $len; $i++) {
141-
if ($arr[$i] == $arr[$i + ($len >> 2)]) {
151+
$n = count($arr);
152+
for ($i = 0; ; ++$i) {
153+
if ($arr[$i] == $arr[$i + ($n >> 2)]) {
142154
return $arr[$i];
143155
}
144156
}
145-
return -1;
146157
}
147158
}
148159
```
Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
class Solution {
22
public:
33
int findSpecialInteger(vector<int>& arr) {
4-
int n = arr.size();
5-
for (int i = 0; i < n; ++i)
6-
if (arr[i] == arr[i + (n >> 2)]) return arr[i];
7-
return 0;
4+
for (int i = 0;; ++i) {
5+
if (arr[i] == (arr[i + (arr.size() >> 2)])) {
6+
return arr[i];
7+
}
8+
}
89
}
9-
};
10+
};
Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
11
func findSpecialInteger(arr []int) int {
2-
n := len(arr)
3-
for i, val := range arr {
4-
if val == arr[i+(n>>2)] {
5-
return val
2+
for i := 0; ; i++ {
3+
if arr[i] == arr[i+len(arr)/4] {
4+
return arr[i]
65
}
76
}
8-
return 0
9-
}
7+
}
Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,9 @@
11
class Solution {
22
public int findSpecialInteger(int[] arr) {
3-
int n = arr.length;
4-
for (int i = 0; i < n; ++i) {
5-
if (arr[i] == arr[i + (n >> 2)]) {
3+
for (int i = 0;; ++i) {
4+
if (arr[i] == (arr[i + (arr.length >> 2)])) {
65
return arr[i];
76
}
87
}
9-
return 0;
108
}
11-
}
9+
}

solution/1200-1299/1287.Element Appearing More Than 25% In Sorted Array/Solution.js

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,9 @@
44
*/
55
var findSpecialInteger = function (arr) {
66
const n = arr.length;
7-
for (let i = 0; i < n; ++i) {
8-
if (arr[i] == arr[i + (n >> 2)]) {
7+
for (let i = 0; ; ++i) {
8+
if (arr[i] === arr[i + (n >> 2)]) {
99
return arr[i];
1010
}
1111
}
12-
return 0;
1312
};

solution/1200-1299/1287.Element Appearing More Than 25% In Sorted Array/Solution.php

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,11 @@ class Solution {
44
* @return Integer
55
*/
66
function findSpecialInteger($arr) {
7-
$len = count($arr);
8-
for ($i = 0; $i < $len; $i++) {
9-
if ($arr[$i] == $arr[$i + ($len >> 2)]) {
7+
$n = count($arr);
8+
for ($i = 0; ; ++$i) {
9+
if ($arr[$i] == $arr[$i + ($n >> 2)]) {
1010
return $arr[$i];
1111
}
1212
}
13-
return -1;
1413
}
1514
}
Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
class Solution:
22
def findSpecialInteger(self, arr: List[int]) -> int:
33
n = len(arr)
4-
for i, val in enumerate(arr):
5-
if val == arr[i + (n >> 2)]:
6-
return val
7-
return 0
4+
for i, x in enumerate(arr):
5+
if x == arr[(i + (n >> 2))]:
6+
return x

0 commit comments

Comments
 (0)