LeetCode每日一题——只出现一次的数字 III
转载请注明作者和出处:https://blog.csdn.net/qq_28810395
运行平台: Windows 10
LeetCode官网:Fhttps://leetcode-cn.co
一、只出现一次的数字 III
给定一个整数数组 nums
,其中恰好有两个元素只出现一次,其余所有元素均出现两次。 找出只出现一次的那两个元素。你可以按 任意顺序 返回答案。:
进阶:你的算法应该具有线性时间复杂度。你能否仅使用常数空间复杂度来实现?
1.示例 1:
输入:nums = [1,2,1,3,2,5]
输出:[3,5]
解释:[5, 3] 也是有效的答案。
2.示例 2:
输入:nums = [-1,0]
输出:[-1,0]
3.示例 3:
输入:nums = [0,1]
输出:[1,0]
4.提示:
- 2 <= nums.length <= 3 * 104
- -231<= nums[i] <= 231-1
- 除两个只出现一次的整数外,
nums
中的其他数字都出现两次
二、解答思路
1. 利用Counter对列表中的数字出现次数进行统计;
2. 将其中出现次数为1的数字记录并存储;
3. 输出。
三、解答
class Solution:def singleNumber(self, nums: List[int]) -> List[int]:#存放结果的列表result=[]#统计nums中每个数字出现的频率次数frequence= Counter(nums)#将其中数字出现为一次的进行appendfor number, count in frequence.items():if count==1:result.append(number)return result
四、笔记记录
python3 Counter类(计数器)
Counter(计数器):用于追踪值的出现次数
Counter类继承dict类,所以它能使用dict类里面的方法
创建一个Counter类
import collections obj = collections.Counter('aabbccc') print(obj)#输出:Counter({'c': 3, 'a': 2, 'b': 2})
elements()
import collections obj = collections.Counter('aabbccc') print(sorted(obj.elements()))#输出:['a', 'a', 'b', 'b', 'c', 'c', 'c']for k in obj.elements(): #遍历打印obj所有元素print(k)
most_common(指定一个参数n,列出前n个元素,不指定参数,则列出所有)
import collections obj = collections.Counter('aabbbcccc') print(obj.most_common(2))#输出:[('c', 4), ('b', 3)]
items(从dict类中继承的方法)
import collections obj = collections.Counter('aabbbcccc') print(obj.items())for k,v in obj.items():print(k,v)#输出:dict_items([('b', 3), ('c', 4), ('a', 2)]) # b 3 # c 4 # a 2
update(增加元素)
import collections obj = collections.Counter(['11','22']) obj.update(['22','55']) print(obj)#输出:Counter({'22': 2, '11': 1, '55': 1})
subtract(原来的元素减去新传入的元素)
import collections obj = collections.Counter(['11','22','33']) obj.subtract(['22','55']) print(obj)#输出:Counter({'11': 1, '33': 1, '22': 0, '55': -1})
四、参考信息
[1]https://leetcode-cn.com/problems/single-number-iii/solution/zhi-chu-xian-yi-ci-de-shu-zi-iii-by-leet-4i8e/
LeetCode每日一题——只出现一次的数字 III相关推荐
- leetcode每日一题--雀巢原理;抽屉算法;Quorum机制;分布式应用
leetcode每日一题 539. 最小时间差 示例 1: 输入:timePoints = ["23:59","00:00"] 输出:1 示例 2: 输入:ti ...
- LeetCode每日一题——1812. 判断国际象棋棋盘中一个格子的颜色
LeetCode每日一题系列 题目:1812. 判断国际象棋棋盘中一个格子的颜色 难度:简单 文章目录 LeetCode每日一题系列 题目 示例 思路 题解 题目 给你一个坐标 coordinates ...
- LeetCode每日一题——1758. 生成交替二进制字符串的最少操作数
LeetCode每日一题系列 题目:1758. 生成交替二进制字符串的最少操作数 难度:简单 文章目录 LeetCode每日一题系列 题目 示例 思路 题解 题目 给你一个仅由字符 '0' 和 '1' ...
- 【LeetCode每日一题】810. 黑板异或游戏
[LeetCode每日一题]810. 黑板异或游戏 题目: 黑板上写着一个非负整数数组 nums[i] .Alice 和 Bob 轮流从黑板上擦掉一个数字,Alice 先手.如果擦除一个数字后,剩余的 ...
- leetcode每日一题--前缀树;前缀哈希;深搜;面试题 08.04. 幂集;648. 单词替换面试题 01.09. 字符串轮转;剑指 Offer II 062. 实现前缀树
leetcode每日一题 ps:今天的每日一题没意思,简单的模拟,自己换一道 面试题 08.04. 幂集 幂集.编写一种方法,返回某集合的所有子集.集合中不包含重复的元素. 说明:解集不能包含重复的子 ...
- LeetCode 每日一题 42. 接雨水 详细多种题解 C++描述
LeetCode 每日一题 42. 接雨水 大家好,我叫亓官劼(qí guān jié ),在CSDN中记录学习的点滴历程,时光荏苒,未来可期,一起加油吧~ 难度 困难 2020.04.04每日一题 ...
- leetcode每日一题·买卖股票问题(Python)
leetcode每日一题·买卖股票问题(Python) 买卖股票的最佳时机(股票最大利润) 题目链接 给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的 ...
- LeetCode每日一题——792. 匹配子序列的单词数
LeetCode每日一题系列 题目:792. 匹配子序列的单词数 难度:普通 文章目录 LeetCode每日一题系列 题目 示例 思路 题解 题目 给定字符串 s 和字符串数组 words, 返回 w ...
- LeetCode每日一题之排列硬币
前言: 大家好,今天是LeetCode每日一题的第十天,,给大家分享的是排列硬币,难度系数两颗星!废话不多说,先上题目! 1.1 题目要求 题目类型:排列硬币 题目内容: 总共有n枚硬币,将它们摆成一 ...
- LeetCode每日一题——1684. 统计一致字符串的数目
LeetCode每日一题系列 题目:1684. 统计一致字符串的数目 难度:简单 文章目录 LeetCode每日一题系列 题目 示例 思路 题解 题目 给你一个由不同字符组成的字符串 allowed ...
最新文章
- 二叉树的基本特性和二叉树的几种基本操作的机制_笃学不倦|二叉树(一)
- 【SpringCloud】高可用Eureka
- mysql导入数据表大小限制,解除phpMyAdmin导入大型MySQL数据库文件大小限制
- Linux 源代码在线(http://lxr.linux.no/linux/)。
- 四因素三水平正交试验表_测试用例设计方法(二)——正交实验法
- C语言丨比较浮点数的大小
- Scala具体解释---------数组、元组、映射
- Spark大数据-TMDB电影数据分析(spark-scala版)
- 生成QQ/MSN/旺旺/SKYPE等在线状态图标
- 看服务器硬盘序列号,获得服务器硬件信息(CPUID、硬盘号、主板序列号、IP地址等)...
- Ubuntu 19.04 磁盘加密
- 甲骨文大裁员,竟是因为它?
- mac 教程 终端设置代理
- POI和POI-TL操作Word
- centos8之systemd管理服务开机自启动
- android+高德地图教程,Android高德地图开发(三)地图简单操作
- Python编写的客户端给服务器发送指令执行相应的命令并返回结果
- 完全用计算机制作的三维动画,一种用一台个人电脑制作高质量三维机械仿真动画的方法...
- 【BigHereo 37】---L10---C++真题之 代码填空
- babylonjs 分部加载模型_初学WebGL引擎-BabylonJS:第2篇-基础模型体验