<LeetCode天梯>Day051 缺失数字(遍历+异或) | 初级算法 | Python

💖作者简介:大家好,我是车神哥,府学路18号的车神🥇
⚡About—>车神:从寝室实验室快3分钟,最慢3分半(那半分钟其实是等绿
📝个人主页:应无所住而生其心的博客_府学路18号车神_CSDN博客
🎉点赞评论收藏 == 养成习惯(一键三连)😋
📖本系列主要以刷LeetCode力扣)网站的各类题为标准,实现自我能力的提升为目标⚡
⚡希望大家多多支持🤗~一起加油 😁

其他专栏

今天是刷题的最后一道题,坚持住呀,小伙伴们,大风大浪都已经过去了,黎明即将来临,能不能扛就看今天了,哈哈哈,加油!

每天进步一点点,就已经很棒很棒了,坚持坚持,不要太累,拒绝内卷,从每日一练开始,每天十分钟,快乐生活一辈子!疫情依旧反复,大家带好口罩啊~ 继续继续,来,今天和车神哥一起来提升自己的Python编程面试能力吧,刷天梯~

放上我拍的Photo吧!

在这里插入图片描述

每日推荐一首歌:幻听——许嵩

以下为我的天梯积分规则

每日至少一题:一题积分+10分
若多做了一题(或多一种方法解答),则当日积分+20分(+10+10)
若做了三道以上,则从第三题开始算+20分(如:做了三道题则积分-10+10+20=40;做了四道题则积分–10+10+20+20=60


初始分为100分
若差一天没做题,则扣积分-10分(周六、周日除外注:休息
坚持!!!


初级算法

刷题目录

其他

在这里插入图片描述

题干

给定一个包含 [0, n] 中 n 个数的数组 nums ,找出 [0, n] 这个范围内没有出现在数组中的那个数。

示例1:

输入:nums = [3,0,1]
输出:2
解释:n = 3,因为有 3 个数字,所以所有的数字都在范围 [0,3] 内。2 是丢失的数字,因为它没有出现在 nums 中。

示例2:

输入:nums = [0,1]
输出:2
解释:n = 2,因为有 2 个数字,所以所有的数字都在范围 [0,2] 内。2 是丢失的数字,因为它没有出现在 nums 中。

示例3:

输入:nums = [9,6,4,2,3,5,7,0,1]
输出:8
解释:n = 9,因为有 9 个数字,所以所有的数字都在范围 [0,9] 内。8 是丢失的数字,因为它没有出现在 nums 中。

示例4:

输入:nums = [0]
输出:1
解释:n = 1,因为有 1 个数字,所以所有的数字都在范围 [0,1] 内。1 是丢失的数字,因为它没有出现在 nums 中。


遍历

遍历一遍找缺失项应该是最能想到的方法了,来实现一下

class Solution:
    def missingNumber(self, nums: List[int]) -> int:
        n = len(nums)
        hashmap = []
        for i in range(n+1):
            if i not in nums:
                hashmap.append(i)
        return hashmap[0]

在这里插入图片描述
效果不是很好呀!~

异或

借用一下大佬的解释,异或求解

  • 使用异或运算,将所有值进行异或
  • 异或运算,相异为真,相同为假,所以 a^a = 0 ;0^a = a
  • 因为异或运算 满足交换律 aba = aab = b 所以数组经过异或运算,单独的值就剩下了
class Solution:
    def missingNumber(self, nums: List[int]) -> int:
        n = len(nums)
        if n<=0:
            return 0
        reduce = 0
        for i in range(n):
            reduce ^= nums[i]^i
        return reduce^n

速度是很快的呀!~
在这里插入图片描述
这道题还是推荐用异或来的快一些!~

❀❀❀完结撒花❀❀❀

这是从10.27开始刷题到今天12.23号,共历时51天,将初级算法刷完,我做到了,坚持,你做到了吗?共得了990分哟,真的是差10分,怕我太骄傲了吗,哈哈哈!

其实我们有时候并不是需要什么来证明自己,而是需要那么一个过程来满足自己,满足自己的信心,满足自己的欲望,满足自己的不安,或者是满足自己对生活的厌倦和不满,有太多太多的事情需要考虑,然而真正能够静下心来坚持一件事情是有多么的不容易呀,所以还是那句话,生活不易,继续努力

Reference

作者:力扣 (LeetCode)
链接:https://leetcode-cn.com/leetbook/read/top-interview-questions-easy/xnj4mt/
来源:力扣(LeetCode)

作者:桂继宏
链接:https://leetcode-cn.com/leetbook/read/top-interview-questions-easy/xnj4mt/?discussion=sKw1Tl
来源:力扣(LeetCode)


今日得分:+10+10
总得分:990

加油!!!

❤坚持读Paper,坚持做笔记,坚持学习,坚持刷力扣LeetCode❤!!!
坚持刷题!!!打天梯!!!
To Be No.1

⚡⚡


创作不易⚡,过路能❤关注收藏点个赞三连就最好不过了

ღ( ´・ᴗ・` )


征服可能会受挫,但好奇从未停息。

  • 1
    点赞
  • 0
    收藏
  • 打赏
    打赏
  • 0
    评论

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:酷酷鲨 设计师:CSDN官方博客 返回首页
评论

打赏作者

府学路18号车神

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

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

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

打赏作者

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

抵扣说明:

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

余额充值