题目原文:
Given an array containing n distinct numbers taken from 0, 1, 2, …, n, find the one that is missing from the array.
For example,
Given nums = [0, 1, 3] return 2.
题目大意:
给出从自然数列0,1,2….n中去掉一个数之后的数组,求出去掉的数。
题目分析:
求这个数组的和,然后用等差数列前n项和Sn=n(n+1)/2减它,得到的就是缺的数。
源码:(language:java)
public class Solution {
public int missingNumber(int[] nums) {
int sum=0,n=nums.length;
for(int num:nums)
sum+=num;
return n*(n+1)/2-sum;
}
}
成绩:
1ms,beats 37.49%,众数1ms,62.51%
Cmershen的碎碎念:
有10个箱子,每箱里有很多个产品,每个产品质量是10g,其中有一箱是次品,次品每个质量是9g,那么使用一个秤,只称一次,如何找出哪箱装的是次品?
这道大家耳熟能详的小学脑筋急转弯题与本题似有异曲同工之妙。