算法刷题笔记
找出数组中的重复数字
不修改数组找出重复的数字
本文档使用 MrDoc 发布
-
+
首页
找出数组中的重复数字
#### 题目 给定一个长度为 n的整数数组 nums,数组中所有的数字都在 0∼n−1的范围内。 数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。 请找出数组中任意一个重复的数字。 **注意:** 如果某些数字不在 0∼n−1 的范围内,或数组中不包含重复数字,则返回 -1; **数据范围** 0<=n<=1000 **样例** ``` 给定nums = [2,3,5,4,3,2,6,7] 返回2或者3. ``` #### 解法1(python3) ``` class Solution(object): def duplicateInArray(self, nums): """ :type nums: List[int] :rtype int """ # 数组中的数不在0~n-1中,返回-1 for i in nums: if i < 0 or i > len(nums): return -1 # 数组中有重复数字,返回数字 for i in range(len(nums)): if nums.count(i) > 1: return i # 数组中没有重复数字,返回-1 return -1 nums = [1,2,1,3] result = Solution.duplicateInArray(self='',nums=nums) print(result) ``` >s **成功提示** >D:\DevelopTool\Pycharm\python\python.exe D:/桌面/by/code/a+b.py >1 >进程已结束,退出代码0 #### 解法2(python3) ``` class Solution(object): def duplicateInArray(self, nums): """ :type nums: List[int] :rtype int """ for num in nums: # 有数字不在0~n-1中,返回-1 if num < 0 or num > len(nums): return -1 # 建立一个集合,用来记录看到的数字 seen = set() for num in nums: # 如果数字在集合中,则数字重复,返回 if num in seen: return num # 如果数字不在集合中,则添加 seen.add(num) nums = [1,2,1,3,9] result = Solution.duplicateInArray(self='',nums=nums) print(result) ``` >d **危险提示** >D:\DevelopTool\Pycharm\python\python.exe D:/桌面/by/code/a+b.py >-1 >进程已结束,退出代码0
happyboysrt
2025年2月22日 17:10
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
PDF文档(打印)
分享
链接
类型
密码
更新密码