力扣排序268题 数字丢失
题目:
丢失的数字 给定一个包含[0,n]中n各数的数组nums,找出[0,n]这个范围 内没有出现在数组中的那个数。 示例1: 输出:n = 3,因为有3个数字,所以所有的数字都在范围 [0,3]内。2是丢失的数字,因为它没有出现在nums中。
解题思路:
可以利用数组中数字的和与0到n的所有数字的和之差来找到丢失的数字。
0到n的所有数字的和可以根据等差数列求和公式(n*(n+1)// 2来计算。
然后计算给定数组nums中所有数字的和,两者相减得到的数就是丢失的数。
代码解析:
1,首先,通过len(nums)获取数组nums的长度n,这个n就是题目中所说的范围[0,n]中的n。
2,接着,根据等差就和公式计算出0到n的所有数字的和expect_sum(期望的值)
3,然后,使用sum(nums)计算给定数组nums中所有数字的实际和actual_sum。
4,最后,返回等差求得的期望expect的值减去actual_sum的值就是所要求丢失的数