二分法应用

检测整数 n 是否是 2 的幂次。

class Solution {
public:
    /**
     * @param n: An integer
     * @return: True or false
     */
    bool checkPowerOf2(int n) {
        // write your code here
        if(n==1)return 1;
       int left=0;
        int right=n;
        int m=(left+right)/2;
        while(left+1pow(2,m)){left=m;}
            else if(n

实现 int sqrt(int x) 函数,计算并返回 x 的平方根。

class Solution {
public:
    /**
     * @param x: An integer
     * @return: The sqrt of x
     */
    int sqrt(int x) {
        // write your code here
        if(x==0)return 0;
        if(x==1)return 1;
    long left=0;
    long right=x;
    long m=(left+right)/2;
    while(left+1m*m){left=m;}
        else if(x

你可能感兴趣的:(算法)