File tree Expand file tree Collapse file tree 14 files changed +367
-12
lines changed
2952.Minimum Number of Coins to be Added Expand file tree Collapse file tree 14 files changed +367
-12
lines changed Original file line number Diff line number Diff line change @@ -60,27 +60,75 @@ mountain[2] 也不可能是峰值,因为它不严格大于 mountain[3] 和 mou
60
60
<!-- 这里可写当前语言的特殊实现逻辑 -->
61
61
62
62
``` 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
+ ]
64
70
```
65
71
66
72
### ** Java**
67
73
68
74
<!-- 这里可写当前语言的特殊实现逻辑 -->
69
75
70
76
``` 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
+ }
72
88
```
73
89
74
90
### ** C++**
75
91
76
92
``` 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
+ };
78
105
```
79
106
80
107
### **Go**
81
108
82
109
```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
+ ```
83
119
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
+ }
84
132
```
85
133
86
134
### ** ...**
Original file line number Diff line number Diff line change @@ -52,25 +52,73 @@ So the answer is [1,3].
52
52
### ** Python3**
53
53
54
54
``` 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
+ ]
56
62
```
57
63
58
64
### ** Java**
59
65
60
66
``` 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
+ }
62
78
```
63
79
64
80
### ** C++**
65
81
66
82
``` 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
+ };
68
95
```
69
96
70
97
### **Go**
71
98
72
99
```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
+ ```
73
109
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
+ }
74
122
```
75
123
76
124
### ** ...**
Original file line number Diff line number Diff line change
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
+ };
Original file line number Diff line number Diff line change
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
+ }
Original file line number Diff line number Diff line change
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
+ }
Original file line number Diff line number Diff line change
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
+ ]
Original file line number Diff line number Diff line change
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
+ }
Original file line number Diff line number Diff line change 63
63
<!-- 这里可写当前语言的特殊实现逻辑 -->
64
64
65
65
``` 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
67
79
```
68
80
69
81
### ** Java**
70
82
71
83
<!-- 这里可写当前语言的特殊实现逻辑 -->
72
84
73
85
``` 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
+ }
75
101
```
76
102
77
103
### ** C++**
78
104
79
105
``` 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
+ };
81
122
```
82
123
83
124
### **Go**
84
125
85
126
```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
+ ```
86
141
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
+ }
87
158
```
88
159
89
160
### ** ...**
You can’t perform that action at this time.
0 commit comments