力扣——算法入门计划第十四天

发布时间:2024-08-09 11:01

今天是力扣——算法入门计划第十四天,

也是最后一天,感谢各位大佬的支持和鼓励

算法路上一起奋斗

\"力扣——算法入门计划第十四天_第1张图片\"

目录

题目

思路

代码 

 题目

集合

代码

哈希表

代码


题目

190. 颠倒二进制位

\"力扣——算法入门计划第十四天_第2张图片\"

思路

每次把 res 左移,把 n 的二进制末尾数字,拼接到结果 res 的末尾。然后把 n 右移

比如:

\"力扣——算法入门计划第十四天_第3张图片\"

代码 

class Solution:
    # @param n, an integer
    # @return an integer
    def reverseBits(self, n):
        res = 0
        for i in range(32):
            res = (res << 1) | (n & 1)
            n >>= 1
        return res

 res = (res << 1) | (n & 1)
            n >>= 1

n & 1  \"\"

 

res << 1  res每次左移一位

  n >>= 1 n每次右移动一位

\"力扣——算法入门计划第十四天_第4张图片\"

 题目

136. 只出现一次的数字

\"力扣——算法入门计划第十四天_第5张图片\"

集合

使用集合存储数字。遍历数组中的每个数字,如果集合中没有该数字,则将该数字加入集合,

如果集合中已经有该数字,则将该数字从集合中删除,最后剩下的数字就是只出现一次的数字

一加一减的策略

代码

class Solution:
    def singleNumber(self, nums: List[int]) -> int:
        one=[]
        for i in nums:
            if i not in one:
                one.append(i)
            else:
                one.remove(i)
        return one[0]

哈希表

使用哈希表存储每个数字和该数字出现的次数。

遍历数组即可得到每个数字出现的次数,最后得到只出现一次的数字

代码

class Solution:
    def singleNumber(self, nums: List[int]) -> int:
        harshtable=dict()
        for i in nums:
            if i in harshtable:
                harshtable[i]+=1
            else:
                harshtable[i]=1
        for i in harshtable.keys():
            if harshtable[i]==1:
                return i

\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0

ItVuer - 免责声明 - 关于我们 - 联系我们

本网站信息来源于互联网,如有侵权请联系:561261067@qq.com

桂ICP备16001015号