Skip to content

Commit a567038

Browse files
committed
feat: add solutions to lc problem: No.2139
No.2139.Minimum Moves to Reach Target Score
1 parent 3ba274a commit a567038

File tree

6 files changed

+150
-2
lines changed

6 files changed

+150
-2
lines changed

solution/2100-2199/2139.Minimum Moves to Reach Target Score/README.md

Lines changed: 53 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,15 +72,67 @@
7272
<!-- 这里可写当前语言的特殊实现逻辑 -->
7373

7474
```python
75-
75+
class Solution:
76+
def minMoves(self, target: int, maxDoubles: int) -> int:
77+
if target == 1:
78+
return 0
79+
if maxDoubles == 0:
80+
return target - 1
81+
if target % 2 == 0 and maxDoubles:
82+
return 1 + self.minMoves(target >> 1, maxDoubles - 1)
83+
return 1 + self.minMoves(target - 1, maxDoubles)
7684
```
7785

7886
### **Java**
7987

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

8290
```java
91+
class Solution {
92+
public int minMoves(int target, int maxDoubles) {
93+
if (target == 1) {
94+
return 0;
95+
}
96+
if (maxDoubles == 0) {
97+
return target - 1;
98+
}
99+
if (target % 2 == 0 && maxDoubles > 0) {
100+
return 1 + minMoves(target >> 1, maxDoubles - 1);
101+
}
102+
return 1 + minMoves(target - 1, maxDoubles);
103+
}
104+
}
105+
```
106+
107+
### **C++**
108+
109+
```cpp
110+
class Solution {
111+
public:
112+
int minMoves(int target, int maxDoubles) {
113+
if (target == 1) return 0;
114+
if (maxDoubles == 0) return target - 1;
115+
if (target % 2 == 0 && maxDoubles) return 1 + minMoves(target >> 1, maxDoubles - 1);
116+
return 1 + minMoves(target - 1, maxDoubles);
117+
}
118+
};
119+
```
83120
121+
### **Go**
122+
123+
```go
124+
func minMoves(target int, maxDoubles int) int {
125+
if target == 1 {
126+
return 0
127+
}
128+
if maxDoubles == 0 {
129+
return target - 1
130+
}
131+
if target%2 == 0 && maxDoubles > 0 {
132+
return 1 + minMoves(target>>1, maxDoubles-1)
133+
}
134+
return 1 + minMoves(target-1, maxDoubles)
135+
}
84136
```
85137

86138
### **TypeScript**

solution/2100-2199/2139.Minimum Moves to Reach Target Score/README_EN.md

Lines changed: 53 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,13 +66,65 @@ Double again so x = 10
6666
### **Python3**
6767

6868
```python
69-
69+
class Solution:
70+
def minMoves(self, target: int, maxDoubles: int) -> int:
71+
if target == 1:
72+
return 0
73+
if maxDoubles == 0:
74+
return target - 1
75+
if target % 2 == 0 and maxDoubles:
76+
return 1 + self.minMoves(target >> 1, maxDoubles - 1)
77+
return 1 + self.minMoves(target - 1, maxDoubles)
7078
```
7179

7280
### **Java**
7381

7482
```java
83+
class Solution {
84+
public int minMoves(int target, int maxDoubles) {
85+
if (target == 1) {
86+
return 0;
87+
}
88+
if (maxDoubles == 0) {
89+
return target - 1;
90+
}
91+
if (target % 2 == 0 && maxDoubles > 0) {
92+
return 1 + minMoves(target >> 1, maxDoubles - 1);
93+
}
94+
return 1 + minMoves(target - 1, maxDoubles);
95+
}
96+
}
97+
```
98+
99+
### **C++**
100+
101+
```cpp
102+
class Solution {
103+
public:
104+
int minMoves(int target, int maxDoubles) {
105+
if (target == 1) return 0;
106+
if (maxDoubles == 0) return target - 1;
107+
if (target % 2 == 0 && maxDoubles) return 1 + minMoves(target >> 1, maxDoubles - 1);
108+
return 1 + minMoves(target - 1, maxDoubles);
109+
}
110+
};
111+
```
75112
113+
### **Go**
114+
115+
```go
116+
func minMoves(target int, maxDoubles int) int {
117+
if target == 1 {
118+
return 0
119+
}
120+
if maxDoubles == 0 {
121+
return target - 1
122+
}
123+
if target%2 == 0 && maxDoubles > 0 {
124+
return 1 + minMoves(target>>1, maxDoubles-1)
125+
}
126+
return 1 + minMoves(target-1, maxDoubles)
127+
}
76128
```
77129

78130
### **TypeScript**
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 minMoves(int target, int maxDoubles) {
4+
if (target == 1) return 0;
5+
if (maxDoubles == 0) return target - 1;
6+
if (target % 2 == 0 && maxDoubles) return 1 + minMoves(target >> 1, maxDoubles - 1);
7+
return 1 + minMoves(target - 1, maxDoubles);
8+
}
9+
};
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
func minMoves(target int, maxDoubles int) int {
2+
if target == 1 {
3+
return 0
4+
}
5+
if maxDoubles == 0 {
6+
return target - 1
7+
}
8+
if target%2 == 0 && maxDoubles > 0 {
9+
return 1 + minMoves(target>>1, maxDoubles-1)
10+
}
11+
return 1 + minMoves(target-1, maxDoubles)
12+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
class Solution {
2+
public int minMoves(int target, int maxDoubles) {
3+
if (target == 1) {
4+
return 0;
5+
}
6+
if (maxDoubles == 0) {
7+
return target - 1;
8+
}
9+
if (target % 2 == 0 && maxDoubles > 0) {
10+
return 1 + minMoves(target >> 1, maxDoubles - 1);
11+
}
12+
return 1 + minMoves(target - 1, maxDoubles);
13+
}
14+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
class Solution:
2+
def minMoves(self, target: int, maxDoubles: int) -> int:
3+
if target == 1:
4+
return 0
5+
if maxDoubles == 0:
6+
return target - 1
7+
if target % 2 == 0 and maxDoubles:
8+
return 1 + self.minMoves(target >> 1, maxDoubles - 1)
9+
return 1 + self.minMoves(target - 1, maxDoubles)

0 commit comments

Comments
 (0)