Skip to content

Commit f2a411a

Browse files
authored
feat: add solutions to lc problems: No.2951,2952 (#2057)
* No.2951.Find the Peaks * No.2952.Minimum Number of Coins to be Added
1 parent 2cbc8f3 commit f2a411a

File tree

14 files changed

+367
-12
lines changed

14 files changed

+367
-12
lines changed

solution/2900-2999/2951.Find the Peaks/README.md

Lines changed: 51 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -60,27 +60,75 @@ mountain[2] 也不可能是峰值,因为它不严格大于 mountain[3] 和 mou
6060
<!-- 这里可写当前语言的特殊实现逻辑 -->
6161

6262
```python
63-
63+
class Solution:
64+
def findPeaks(self, mountain: List[int]) -> List[int]:
65+
return [
66+
i
67+
for i in range(1, len(mountain) - 1)
68+
if mountain[i - 1] < mountain[i] > mountain[i + 1]
69+
]
6470
```
6571

6672
### **Java**
6773

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

7076
```java
71-
77+
class Solution {
78+
public List<Integer> findPeaks(int[] mountain) {
79+
List<Integer> ans = new ArrayList<>();
80+
for (int i = 1; i < mountain.length - 1; ++i) {
81+
if (mountain[i - 1] < mountain[i] && mountain[i + 1] < mountain[i]) {
82+
ans.add(i);
83+
}
84+
}
85+
return ans;
86+
}
87+
}
7288
```
7389

7490
### **C++**
7591

7692
```cpp
77-
93+
class Solution {
94+
public:
95+
vector<int> findPeaks(vector<int>& mountain) {
96+
vector<int> ans;
97+
for (int i = 1; i < mountain.size() - 1; ++i) {
98+
if (mountain[i - 1] < mountain[i] && mountain[i + 1] < mountain[i]) {
99+
ans.push_back(i);
100+
}
101+
}
102+
return ans;
103+
}
104+
};
78105
```
79106
80107
### **Go**
81108
82109
```go
110+
func findPeaks(mountain []int) (ans []int) {
111+
for i := 1; i < len(mountain)-1; i++ {
112+
if mountain[i-1] < mountain[i] && mountain[i+1] < mountain[i] {
113+
ans = append(ans, i)
114+
}
115+
}
116+
return
117+
}
118+
```
83119

120+
### **TypeScript**
121+
122+
```ts
123+
function findPeaks(mountain: number[]): number[] {
124+
const ans: number[] = [];
125+
for (let i = 1; i < mountain.length - 1; ++i) {
126+
if (mountain[i - 1] < mountain[i] && mountain[i + 1] < mountain[i]) {
127+
ans.push(i);
128+
}
129+
}
130+
return ans;
131+
}
84132
```
85133

86134
### **...**

solution/2900-2999/2951.Find the Peaks/README_EN.md

Lines changed: 51 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -52,25 +52,73 @@ So the answer is [1,3].
5252
### **Python3**
5353

5454
```python
55-
55+
class Solution:
56+
def findPeaks(self, mountain: List[int]) -> List[int]:
57+
return [
58+
i
59+
for i in range(1, len(mountain) - 1)
60+
if mountain[i - 1] < mountain[i] > mountain[i + 1]
61+
]
5662
```
5763

5864
### **Java**
5965

6066
```java
61-
67+
class Solution {
68+
public List<Integer> findPeaks(int[] mountain) {
69+
List<Integer> ans = new ArrayList<>();
70+
for (int i = 1; i < mountain.length - 1; ++i) {
71+
if (mountain[i - 1] < mountain[i] && mountain[i + 1] < mountain[i]) {
72+
ans.add(i);
73+
}
74+
}
75+
return ans;
76+
}
77+
}
6278
```
6379

6480
### **C++**
6581

6682
```cpp
67-
83+
class Solution {
84+
public:
85+
vector<int> findPeaks(vector<int>& mountain) {
86+
vector<int> ans;
87+
for (int i = 1; i < mountain.size() - 1; ++i) {
88+
if (mountain[i - 1] < mountain[i] && mountain[i + 1] < mountain[i]) {
89+
ans.push_back(i);
90+
}
91+
}
92+
return ans;
93+
}
94+
};
6895
```
6996
7097
### **Go**
7198
7299
```go
100+
func findPeaks(mountain []int) (ans []int) {
101+
for i := 1; i < len(mountain)-1; i++ {
102+
if mountain[i-1] < mountain[i] && mountain[i+1] < mountain[i] {
103+
ans = append(ans, i)
104+
}
105+
}
106+
return
107+
}
108+
```
73109

110+
### **TypeScript**
111+
112+
```ts
113+
function findPeaks(mountain: number[]): number[] {
114+
const ans: number[] = [];
115+
for (let i = 1; i < mountain.length - 1; ++i) {
116+
if (mountain[i - 1] < mountain[i] && mountain[i + 1] < mountain[i]) {
117+
ans.push(i);
118+
}
119+
}
120+
return ans;
121+
}
74122
```
75123

76124
### **...**
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
class Solution {
2+
public:
3+
vector<int> findPeaks(vector<int>& mountain) {
4+
vector<int> ans;
5+
for (int i = 1; i < mountain.size() - 1; ++i) {
6+
if (mountain[i - 1] < mountain[i] && mountain[i + 1] < mountain[i]) {
7+
ans.push_back(i);
8+
}
9+
}
10+
return ans;
11+
}
12+
};
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
func findPeaks(mountain []int) (ans []int) {
2+
for i := 1; i < len(mountain)-1; i++ {
3+
if mountain[i-1] < mountain[i] && mountain[i+1] < mountain[i] {
4+
ans = append(ans, i)
5+
}
6+
}
7+
return
8+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
class Solution {
2+
public List<Integer> findPeaks(int[] mountain) {
3+
List<Integer> ans = new ArrayList<>();
4+
for (int i = 1; i < mountain.length - 1; ++i) {
5+
if (mountain[i - 1] < mountain[i] && mountain[i + 1] < mountain[i]) {
6+
ans.add(i);
7+
}
8+
}
9+
return ans;
10+
}
11+
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
class Solution:
2+
def findPeaks(self, mountain: List[int]) -> List[int]:
3+
return [
4+
i
5+
for i in range(1, len(mountain) - 1)
6+
if mountain[i - 1] < mountain[i] > mountain[i + 1]
7+
]
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
function findPeaks(mountain: number[]): number[] {
2+
const ans: number[] = [];
3+
for (let i = 1; i < mountain.length - 1; ++i) {
4+
if (mountain[i - 1] < mountain[i] && mountain[i + 1] < mountain[i]) {
5+
ans.push(i);
6+
}
7+
}
8+
return ans;
9+
}

solution/2900-2999/2952.Minimum Number of Coins to be Added/README.md

Lines changed: 74 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -63,27 +63,98 @@
6363
<!-- 这里可写当前语言的特殊实现逻辑 -->
6464

6565
```python
66-
66+
class Solution:
67+
def minimumAddedCoins(self, coins: List[int], target: int) -> int:
68+
coins.sort()
69+
s = 1
70+
ans = i = 0
71+
while s <= target:
72+
if i < len(coins) and coins[i] <= s:
73+
s += coins[i]
74+
i += 1
75+
else:
76+
s <<= 1
77+
ans += 1
78+
return ans
6779
```
6880

6981
### **Java**
7082

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

7385
```java
74-
86+
class Solution {
87+
public int minimumAddedCoins(int[] coins, int target) {
88+
Arrays.sort(coins);
89+
int ans = 0;
90+
for (int i = 0, s = 1; s <= target;) {
91+
if (i < coins.length && coins[i] <= s) {
92+
s += coins[i++];
93+
} else {
94+
s <<= 1;
95+
++ans;
96+
}
97+
}
98+
return ans;
99+
}
100+
}
75101
```
76102

77103
### **C++**
78104

79105
```cpp
80-
106+
class Solution {
107+
public:
108+
int minimumAddedCoins(vector<int>& coins, int target) {
109+
sort(coins.begin(), coins.end());
110+
int ans = 0;
111+
for (int i = 0, s = 1; s <= target;) {
112+
if (i < coins.size() && coins[i] <= s) {
113+
s += coins[i++];
114+
} else {
115+
s <<= 1;
116+
++ans;
117+
}
118+
}
119+
return ans;
120+
}
121+
};
81122
```
82123
83124
### **Go**
84125
85126
```go
127+
func minimumAddedCoins(coins []int, target int) (ans int) {
128+
slices.Sort(coins)
129+
for i, s := 0, 1; s <= target; {
130+
if i < len(coins) && coins[i] <= s {
131+
s += coins[i]
132+
i++
133+
} else {
134+
s <<= 1
135+
ans++
136+
}
137+
}
138+
return
139+
}
140+
```
86141

142+
### **TypeScript**
143+
144+
```ts
145+
function minimumAddedCoins(coins: number[], target: number): number {
146+
coins.sort((a, b) => a - b);
147+
let ans = 0;
148+
for (let i = 0, s = 1; s <= target; ) {
149+
if (i < coins.length && coins[i] <= s) {
150+
s += coins[i++];
151+
} else {
152+
s <<= 1;
153+
++ans;
154+
}
155+
}
156+
return ans;
157+
}
87158
```
88159

89160
### **...**

0 commit comments

Comments
 (0)