Skip to content

Commit 2cf6868

Browse files
committed
feat: add solutions to lc problem: No.1561
No.1561.Maximum Number of Coins You Can Get
1 parent a4d944d commit 2cf6868

File tree

10 files changed

+118
-10
lines changed

10 files changed

+118
-10
lines changed

lcci/05.07.Exchange/Solution.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
class Solution:
22
def exchangeBits(self, num: int) -> int:
3-
return ((num & 0x55555555) << 1) | ((num & 0xaaaaaaaa) >> 1)
3+
return ((num & 0x55555555) << 1) | ((num & 0xAAAAAAAA) >> 1)

lcci/17.12.BiNode/Solution.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
# self.left = None
66
# self.right = None
77

8+
89
class Solution:
910
def convertBiNode(self, root: TreeNode) -> TreeNode:
1011
def dfs(root):

solution/0400-0499/0479.Largest Palindrome Product/Solution.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,4 @@ def largestPalindrome(self, n: int) -> int:
1111
if x % t == 0:
1212
return x % 1337
1313
t -= 1
14-
return 9
14+
return 9

solution/1500-1599/1561.Maximum Number of Coins You Can Get/README.md

Lines changed: 46 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,22 +58,67 @@
5858

5959
<!-- 这里可写通用的实现逻辑 -->
6060

61+
**方法一:贪心**
62+
63+
Bob 取走最小的 1/3,剩余的硬币堆由 Alice 和我按硬币数从高到低依次取走每一堆。
64+
6165
<!-- tabs:start -->
6266

6367
### **Python3**
6468

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

6771
```python
68-
72+
class Solution:
73+
def maxCoins(self, piles: List[int]) -> int:
74+
piles.sort()
75+
return sum(piles[-2 : len(piles) // 3 - 1 : -2])
6976
```
7077

7178
### **Java**
7279

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

7582
```java
83+
class Solution {
84+
85+
public int maxCoins(int[] piles) {
86+
Arrays.sort(piles);
87+
int ans = 0;
88+
for (int i = piles.length - 2; i >= piles.length / 3; i -= 2) {
89+
ans += piles[i];
90+
}
91+
return ans;
92+
}
93+
}
94+
95+
```
96+
97+
### **C++**
98+
99+
```cpp
100+
class Solution {
101+
public:
102+
int maxCoins(vector<int>& piles) {
103+
sort(piles.begin(), piles.end());
104+
int ans = 0;
105+
for (int i = piles.size() - 2; i >= (int) piles.size() / 3; i -= 2) ans += piles[i];
106+
return ans;
107+
}
108+
};
109+
```
76110
111+
### **Go**
112+
113+
```go
114+
func maxCoins(piles []int) int {
115+
sort.Ints(piles)
116+
ans, n := 0, len(piles)
117+
for i := n - 2; i >= n/3; i -= 2 {
118+
ans += piles[i]
119+
}
120+
return ans
121+
}
77122
```
78123

79124
### **...**

solution/1500-1599/1561.Maximum Number of Coins You Can Get/README_EN.md

Lines changed: 42 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,18 +55,59 @@ On the other hand if we choose this arrangement (1, <strong>2</strong>, 8), (2,
5555

5656
## Solutions
5757

58+
Greedy.
59+
5860
<!-- tabs:start -->
5961

6062
### **Python3**
6163

6264
```python
63-
65+
class Solution:
66+
def maxCoins(self, piles: List[int]) -> int:
67+
piles.sort()
68+
return sum(piles[-2 : len(piles) // 3 - 1 : -2])
6469
```
6570

6671
### **Java**
6772

6873
```java
74+
class Solution {
75+
public int maxCoins(int[] piles) {
76+
Arrays.sort(piles);
77+
int ans = 0;
78+
for (int i = piles.length - 2; i >= piles.length / 3; i -= 2) {
79+
ans += piles[i];
80+
}
81+
return ans;
82+
}
83+
}
84+
```
85+
86+
### **C++**
87+
88+
```cpp
89+
class Solution {
90+
public:
91+
int maxCoins(vector<int>& piles) {
92+
sort(piles.begin(), piles.end());
93+
int ans = 0;
94+
for (int i = piles.size() - 2; i >= (int) piles.size() / 3; i -= 2) ans += piles[i];
95+
return ans;
96+
}
97+
};
98+
```
6999
100+
### **Go**
101+
102+
```go
103+
func maxCoins(piles []int) int {
104+
sort.Ints(piles)
105+
ans, n := 0, len(piles)
106+
for i := n - 2; i >= n/3; i -= 2 {
107+
ans += piles[i]
108+
}
109+
return ans
110+
}
70111
```
71112

72113
### **...**
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
class Solution {
2+
public:
3+
int maxCoins(vector<int>& piles) {
4+
sort(piles.begin(), piles.end());
5+
int ans = 0;
6+
for (int i = piles.size() - 2; i >= (int) piles.size() / 3; i -= 2) ans += piles[i];
7+
return ans;
8+
}
9+
};
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
func maxCoins(piles []int) int {
2+
sort.Ints(piles)
3+
ans, n := 0, len(piles)
4+
for i := n - 2; i >= n/3; i -= 2 {
5+
ans += piles[i]
6+
}
7+
return ans
8+
}

solution/1500-1599/1561.Maximum Number of Coins You Can Get/Solution.java

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,9 @@
11
class Solution {
22
public int maxCoins(int[] piles) {
33
Arrays.sort(piles);
4-
int start = 0, end = piles.length - 1, ans = 0;
5-
while (start < end) {
6-
ans += piles[end - 1];
7-
start++;
8-
end -= 2;
4+
int ans = 0;
5+
for (int i = piles.length - 2; i >= piles.length / 3; i -= 2) {
6+
ans += piles[i];
97
}
108
return ans;
119
}
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
class Solution:
2+
def maxCoins(self, piles: List[int]) -> int:
3+
piles.sort()
4+
return sum(piles[-2 : len(piles) // 3 - 1 : -2])

solution/2200-2299/2237.Count Positions on Street With Required Brightness/Solution.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
class Solution:
2-
def meetRequirement(self, n: int, lights: List[List[int]], requirement: List[int]) -> int:
2+
def meetRequirement(
3+
self, n: int, lights: List[List[int]], requirement: List[int]
4+
) -> int:
35
d = [0] * 100010
46
for p, r in lights:
57
i, j = max(0, p - r), min(n - 1, p + r)

0 commit comments

Comments
 (0)