LeetCode-只出现一次的数字-哈希表-异或-py
LeetCode-只出现一次的数字-哈希表-异或-py
- 题目回顾
- 题解
- python 哈希表实现
- python 异或实现
题目回顾
传送门
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。
说明:
你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?
示例 1:
输入: [2,2,1]
输出: 1
示例 2:
输入: [4,1,2,1,2]
输出: 4
题解
方法二 参考题解1和题解2,异或
时间复杂度是 O(n)O(n)O(n),
空间复杂度O(n)−>O(1)O(n)->O(1)O(n)−>O(1),
执行用时:56ms56 ms56ms
题意说明只有1个是单数。
方法一
建立哈希表,空间复杂度为O(n),一次循环用字典存储所有的数的个数,第二个遍历查找为个数为1的,返回该值.
方法二
异或运算快速找只出现一次的数字。 两个相同的数字做异或运算结果为0;0与非0数字做异或运算结果为非零运算。
python 哈希表实现
class Solution:def singleNumber(self, nums):if not nums:return Nonedic={}for i in range(len(nums)):dic[nums[i]]=dic.get(nums[i],0)+1for i in range(len(nums)):if dic.get(nums[i],0)==1:return nums[i]
python 异或实现
class Solution:def singleNumber(self, nums):singel_num = 0for num in nums:singel_num ^= numreturn singel_num
LeetCode-只出现一次的数字-哈希表-异或-py相关推荐
- [剑指offer]面试题第[50]题[JAVA][第一个只出现一次的字符][哈希表][HashMap]
[问题描述][简单] 在字符串 s 中找出第一个只出现一次的字符.如果没有,返回一个单空格. s 只包含小写字母.示例:s = "abaccdeff" 返回 "b&quo ...
- LeetCode 890. 查找和替换模式(哈希表)
1. 题目 你有一个单词列表 words 和一个模式 pattern,你想知道 words 中的哪些单词与模式匹配. 如果存在字母的排列 p ,使得将模式中的每个字母 x 替换为 p(x) 之后,我们 ...
- leetcode 只出现一次的数字
16 / 16 个通过测试用例 状态:通过 执行用时:12 ms 内存消耗:40.8 MB 提交时间:6 月,3 周之前 class Solution {public int singleNumber ...
- leetcode 454. 四数相加 II(哈希表)
给定四个包含整数的数组列表 A , B , C , D ,计算有多少个元组 (i, j, k, l) ,使得 A[i] + B[j] + C[k] + D[l] = 0. 为了使问题简单化,所有的 A ...
- 剑指offer面试题50. 第一个只出现一次的字符(哈希表)
题目描述 在字符串 s 中找出第一个只出现一次的字符.如果没有,返回一个单空格. s 只包含小写字母. 思路 详见链接 代码 class Solution:def firstUniqueChar(se ...
- LeetCode 2353. 设计食物评分系统 维护哈希表+set
设计一个支持下述操作的食物评分系统: 修改 系统中列出的某种食物的评分. 返回系统中某一类烹饪方式下评分最高的食物. 实现 FoodRatings 类: FoodRatings(String[] fo ...
- 127. Leetcode 242. 有效的字母异位词 (哈希表)
class Solution:def isAnagram(self, s: str, t: str) -> bool:record = [0] * 26for i in range(len(s) ...
- LeetCode 567. 字符串的排列 (滑动窗口哈希表)
567. 字符串的排列 题意: 第一个字符串的排列之一是第二个字符串的子串 即判断第二个字符串是否包含某个子串,这个子串的字符以及字符数量要求与第一个字符串相同 解法1 (暴力法) 按照第一个字符串的 ...
- LeetCode 454. 四数相加 II【哈希表】
454. 四数相加 II 给你四个整数数组 nums1.nums2.nums3 和 nums4 ,数组长度都是 n ,请你计算有多少个元组 (i, j, k, l) 能满足: 0 <= i, j ...
最新文章
- bootstrap4 调整元素之间距离
- linux 下ssh端口反弹,利用ssh隧道反弹shell
- 2016蓝桥杯省赛---java---B---1(有奖猜谜)
- HDFS--分布式文件系统
- IEnumerable
- 电子之嵌入式主流芯片浏览
- 如何用 GitHub Actions 写出高质量的 Python代码?
- 匿名页反向映射得建立
- 动态内存分配(c++)
- l3asnumanode 设置_numa设置与mysql
- 2014最好的IT简历提示
- revit2016对应lumion版本_revit如何导入lumion?revit文件转化成lumion文件有诀窍!
- python:求list的中位数
- 【Spark】PM数据清洗(一)
- Milet谷仓:区块链电商先行者
- 微软校园招聘面试经历
- 使用token验证登录信息,把token存到数据库中
- 阿里云OSS服务器上传图片并获取路径(SpringBoot)(☆)
- 亚马逊测评自养号,小白应该如何开始?
- mysql 查询数据库ip_如何查看连接MYSQL数据库的IP信息