一个算法题:从1-10000中随机去掉两个数,用最小的时间复杂度找出这个数。
这是我今天笔试的一道题,当时没答好!(思路 只想对了一半,哎…………)
先用公式n(n+1)/2算出1-10000的总和 , 用公式n(n+1)(2n+1)/6算出1-10000的平方和,
然后扫描那9998个数,每扫到一个就从平方和中减去这个数的平方,扫描一个就从总和中减去这个数。
知道两个数的和和平方和,解方程组即可得出这两个数
一个算法题:从1-10000中随机去掉两个数,用最小的时间复杂度找出这个数。
这是我今天笔试的一道题,当时没答好!(思路 只想对了一半,哎…………)
先用公式n(n+1)/2算出1-10000的总和 , 用公式n(n+1)(2n+1)/6算出1-10000的平方和,
然后扫描那9998个数,每扫到一个就从平方和中减去这个数的平方,扫描一个就从总和中减去这个数。
知道两个数的和和平方和,解方程组即可得出这两个数