Day 3
Date: September 26, 2022 1:37 PM
LinkedIn: https://leetcode.cn/problems/missing-two-lcci/
Title: 消失的两个数字
数学法:等差数列前n项和
class Solution:
def missingTwo(self, nums: List[int]) -> List[int]:
s_num = sum(nums)#给定数组的和
n = len(nums)+2#加上消失的总共有多少数
s = n*(n+1)//2 #等差数列前n项和
sub = s - s_num #原本与现在缺失的数的和
temp = sub//2 #//除以2的结果向下取整
low_sum=0
for x in nums:#在给定数组中所有小于 缺失数的和 的一半的数的和
if(x<=temp):
low_sum+=x
a = int( (temp+1)*temp//2 - low_sum )#从1到temp的前temp项和 减 给定数组中满足此关系的和 的差为缺失的数
b = int( sub - a )
return [a,b]