[学习报告]《LeetCode零基础指南》(第一讲) 函数

博主分享了如何使用位运算解决两整数之和问题,并用数学归纳法找到循环结束条件。接着挑战反转数字的特性,通过观察和枚举得出判断条件。文章突显了逻辑思维和实践应用的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 千山万水总有路,勇敢迈出第一步!!!

一、吹逼

今日学习内容:https://bbs.youkuaiyun.com/topics/605594042

是被位运算爱恋的一天呀

今日最牛,反转、跳跃、我不停歇~~~ 不停歇 ~~~  2119 你值得拥有!!!

二、晒战绩

话不多说,上图~ 👇

三、写解题报告

 有点感受的两道题:

371.两整数之和:题目理解 → 不使用算术运算,求和,只能使用位运算:& and、| or、^ xor。

  1. 第一步:确定方法是使用位运算代替算术运算;
  2. 第二步,举个例子,输入样例 和 输出样例,列出 a 、b、a+b 的二进制;
  3. 第三步,手算,看看通过什么操作可将 输入 向 输出靠近,找出循环的单元,归纳出循环结束的条件;
  4. 第四步,代码测试~ let it go ~~~

整个过程,酷似 数学归纳,但一定要能证明结论的正确性,需要一点数学知识和运气!!!

嘿~~ 总结结论如上,灵感来自于 官方题解,不会就看题解,不然你还等啥!!!

class Solution {
public:
    int getSum(int a, int b) {
        // 不可使用 +、-,基本代表答案在底层的 补码位移运算上
        // & and  | or ^ xor
        // 列举观察,归纳总结,重点在 while loop 的结束上
        while(b!=0) {
            unsigned int add = (unsigned int)(a&b) << 1;
            a = a^b;
            b = add;
        }
        return a;
    }
};

2119. 反转两次的数字:题目理解 → 将一个 0~10^6 之间的整数,连续反转两次依然和原来的值相等,则返回 true,否则返回 false。

怎么破?观察呀,观察!枚举呀,枚举!

  1. 0 或者 说个位数 [0, 9],怎么反转都是自己个;
  2. [10, 10^6]
    1. 个位数是 0,反转,不行,高位 0 没意义了
    2. 个位不是 0,反转、反转,偶数次反转都行,结果还是自己个

综上,整理下,代码 👇

class Solution {
public:
    bool isSameAfterReversals(int num) {
        if(num!=0 && num%10==0) return false;
        return true;
    }
};

四、写给明天

多美美好的一天呀~~ 喜刷刷,喜刷刷 😀😀😀

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

老坛算粉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值