0️⃣python数据结构与算法学习路线
学习内容:
- 基本算法:枚举、排序、搜索、递归、分治、优先搜索、贪心、双指针、动态规划等…
- 数据结构:字符串(string)、列表(list)、元组(tuple)、字典(dictionary)、集合(set)、数组、队列、栈、树、图、堆等…
题目:
集合 s 包含从 1 到 n 的整数。不幸的是,因为数据错误,导致集合里面某一个数字复制了成了集合里面的另外一个数字的值,导致集合 丢失了一个数字 并且 有一个数字重复 。
给定一个数组 nums 代表了集合 S 发生错误后的结果。
请你找出重复出现的整数,再找到丢失的整数,将它们以数组的形式返回。
输入输出:
输入:nums = [1,2,2,4]
输出:[2,3]
解题思路:
数组和 - 数组去重和 = 重复的数字
正确数组和 - 数组去重和 = 消失的数字
算法实现:
class Solution:
def findErrorNums(self, nums: List[int]) -> List[int]:
n1 = sum(nums)-sum(set(nums))
n2 = sum(range(len(nums)+1))-sum(set(nums))
return [n1,n2]