
可以使用数学方法或者哈希表的方法来解决这个问题。以下是一个简单的 Python 代码实现:
def findErrorNums(nums):
n = len(nums)
num_set = set()
duplicate = -1
missing = -1
for num in nums:
if num in num_set:
duplicate = num
num_set.add(num)
for i in range(1, n + 1):
if i not in num_set:
missing = i
break
return [duplicate, missing]
# 测试
nums = [1, 2, 2, 4]
print(findErrorNums(nums)) # 输出: [2, 3]
这个代码使用一个 set 来找到重复的数和丢失的数,时间复杂度为 O(n),空间复杂度也是 O(n)。如果想要优化空间,可以使用数学的方法(求和公式+求平方和公式)。如果你需要更高效的方法,欢迎讨论!
194

被折叠的 条评论
为什么被折叠?



