8000 perfect_squares · hitzzc/go-leetcode@6579301 · GitHub
[go: up one dir, main page]

Skip to content

Commit 6579301

Browse files
committed
perfect_squares
1 parent ac71818 commit 6579301

File tree

3 files changed

+43
-0
lines changed

3 files changed

+43
-0
lines changed

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -204,6 +204,8 @@ Golang solution for leetcode. For each problem, there is a simple *_test.go to t
204204
#### [263. Ugly Number](https://github.com/hitzzc/go-leetcode/tree/master/ugly_number)
205205
#### [264. Ugly Number II](https://github.com/hitzzc/go-leetcode/tree/master/ugly_number_II)
206206
#### [268. Missing Number](https://github.com/hitzzc/go-leetcode/tree/master/missing_number)
207+
#### [278. First Bad Version](https://github.com/hitzzc/go-leetcode/tree/master/missing_number)
208+
#### [279. Perfect Squares](https://github.com/hitzzc/go-leetcode/tree/master/perfect_squares)
207209

208210

209211

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
bool isBadVersion(int version);
2+
3+
class Solution {
4+
public:
5+
int firstBadVersion(int n) {
6+
int i = 1;
7+
int j = n;
8+
int ret;
9+
while (i <= j) {
10+
int mid = i + (j-i)/2;
11+
if (isBadVersion(mid)) {
12+
j = mid;
13+
ret = mid;
14+
}else {
15+
i= mid+1;
16+
ret = mid+1;
17+
}
18+
}
19+
return ret;
20+
}
21+
};

perfect_squares/perfect_squares.cpp

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
class Solution {
2+
public:
3+
int numSquares(int n) {
4+
if ( n<=0 ) return 0;
5+
static vector<int> dp(1, 0);
6+
if (dp.size() >n) return dp[n];
7+
for (int i = dp.size(); i <= n; ++i) {
8+
int m = n;
9+
for (int j = 1; i-j*j>=0; ++j) {
10+
m = min(m, dp[i-j*j]+1);
11+
}
12+
dp.push_back(m);
13+
}
14+
return dp[n];
15+
}
16+
int min(int i, int j) {
17+
if (i < j) return i;
18+
return j;
19+
}
20+
};

0 commit comments

Comments
 (0)
0