对笔试使用《剑指offer》吧(第十天)

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

跟着博主一起刷题
这里使用的是题库
https://leetcode.cn/problem-list/xb9nqhhg/?page=1这里是引用

目录

剑指 Offer 62. 圆圈中最后剩下的数字

剑指 Offer 62. 圆圈中最后剩下的数字
在这里插入图片描述

class Solution {
    public int lastRemaining(int n, int m) {
        int ret=0;
        for(int i=2;i<=n;i++){
            ret=(ret+m)%i;
        }
        return ret;
    }
}

剑指 Offer 64. 求1+2+…+n

剑指 Offer 64. 求1+2+…+n
这道题主要考察我们对&&的短路特性的了解

class Solution {
    private int sum=0;
    public int sumNums(int n) {
        boolean flag=n>0&&((sum+=n)>0);
        boolean tmp=flag&&sumNums(n-1)>0;
        return sum;
    }
}

剑指 Offer 65. 不用加减乘除做加法

剑指 Offer 65. 不用加减乘除做加法
这道题明显利用位运算思路如下
异或运算^
a^b 又可称无进位加法意思时如果a+b存在进位操作直接抹去,这里的进位指的是二进制
在这里插入图片描述
与运算&1&1=1可以发现正好&运算可以来记录进位。
在这里插入图片描述

class Solution {
    public int add(int a, int b) {
        int xor=a^b;
        int and=a&b;
        while(and!=0){
            int tmp=xor;
            xor=xor^(and<<1);
            and=tmp&(and<<1);
        }
        return xor;
    }
}
阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6