leetcode刷题12天
69. Sqrt(x)
Implement int sqrt(int x).
Compute and return the square root of x, where x is guaranteed to be a non-negative integer.
Since the return type is an integer, the decimal digits are truncated and only the integer part of the result is returned.
Example 1:
Input: 4
Output: 2
Example 2:
Input: 8
Output: 2
Explanation: The square root of 8 is 2.82842…, and since
the decimal part is truncated, 2 is returned.
代码:
class Solution {
public int mySqrt(int x) {
if(x==0||x==1)
return x;
int begin = 0,end = x,mid;
while(begin<end) {
mid = begin+(end - begin)/2;
if(x / mid < mid) {
end = mid;
}
else {
begin = mid+1;
}
}
return end-1;
}
}
- Climbing Stairs
You are climbing a stair case. It takes n steps to reach to the top.
Each time you can either climb 1 or 2 steps. In how many distinct ways can you climb to the top?
Note: Given n will be a positive integer.
Example 1:
Input: 2
Output: 2
Explanation: There are two ways to climb to the top.
- 1 step + 1 step
- 2 steps
Example 2:
Input: 3
Output: 3
Explanation: There are three ways to climb to the top.
3. 1 step + 1 step + 1 step
4. 1 step + 2 steps
5. 2 steps + 1 step
class Solution {
public int climbStairs(int n) {
if(n==1)
return 1;
int[] temp = new int[n+1];
temp[1] = 1;
temp[2] = 2;
for(int i = 3;i<n+1;i++) {
temp[i] = temp[i-1]+temp[i-2];
}
return temp[n];
}
}