九日集训做题记录

九日集训做题记录

day01

题目一 371

法一:直接求和:

class Solution {
public:
    int getSum(int a, int b) {
        return a+b;
    }
};

法二:位运算(待补)

题目二 17.01

法一:

class Solution {
public:
    int add(int a, int b) {
        return a+b;
    }
};

法二:待补

题目三 剑指offer65

法一:

class Solution {
public:
    int add(int a, int b) {
        return a+b;
    }
};

法二(待补)

题目四 08.05

法一 位运算:

class Solution {
public:
    int multiply(int A, int B) {
        int ans=0;
        for(long long a=max(A,B),b=min(A,B);b;b>>=1,a+=a)if(b&1)ans+=a;        
        return ans;
    }
};

法二 递归:

class Solution {
public:
    int C(int A,int B) {
        int sum=0;
        if(B==0) return 0;
        return A+C(A,B-1);
    }
    int multiply(int A, int B) {
        return C(A,B);
    }
};

法三 递推:

class Solution {
public:
    int multiply(int A, int B) {
        int p=0;
        for(int i=1;i<=B;++i) {
            p=p+A;
        }
        return p;
    }
};

法四(直接乘):

在这里插入代码片

法五(数组):

class Solution {
public:
    int multiply(int A, int B) {
        char a[A][B];
        return sizeof(a);
        }
};
题目五 29.

法一:
直接除
注意(记得防溢出)

class Solution {
public:
    int divide(int a, int b) {
        if(a==-2147483648&&b==-1) return 2147483647;
        return a/b;
    }
};

法二: (待补)

题目六 50

法一(利用pow函数):

class Solution {
public:
    double myPow(double x, int n) {
        return pow(x,n);
    }
};

法二(快速幂):

class Solution {
public:
    double quickMul(double x, long long N) {
        if (N == 0) {
            return 1.0;
        }
        double y = quickMul(x, N / 2);
        return N % 2 == 0 ? y * y : y * y * x;
    }

    double myPow(double x, int n) {
        long long N = n;
        return N >= 0 ? quickMul(x, N) : 1.0 / quickMul(x, -N);
    }
};

题目七 69

法一(二分):

class Solution {
public:
    int mySqrt(int x) {
        if(x==0) return 0;
        int left=1,right=x;
        long long mid;
        while(left<=right) {
            mid=left+(right-left)/2;
            if(mid*mid==x) return mid;
            else if(mid*mid>x) right=mid-1;
            else left=mid+1;
        }
        return right;
        
    }
};

法二(函数):

class Solution {
public:
    int mySqrt(int x) {
        return sqrt(x);
    }
};
题目八 16.07

法一:

class Solution {
public:
    int maximum(int a, int b) {
        return a>b?a:b;
    }
};
题目九 2119

法一(判断尾数零,零特例):

class Solution {
public:
    bool isSameAfterReversals(int num) {
        if(num==0) return 1;
        if(num%10==0) return 0;
        return 1;
    }
};
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值