找出1到N中缺少的數?
摘要:
《算法導論》中的練習題,n-1個元素的數組A,含有1到n之間的n-1個數,找出缺少的那個數?要求:O(n)解法一:sum = n*(n+1)/2;sum減掉A中的每個元素,剩下的就是要找的數。解法二:利用異或運算,x^x==0xor = 1^2^...^n;xor異或A中的每個元素,最後得到的就是所求。解法三:增加一個空位A[n-1],將A[i]移到A[ A[i] ],题目升级: 缺失两个数,求出这两个数。思想: 也是采用异或。 假设,缺失的数为s1和s2。则s1^s2=1^2^3.....^n^a[0]^a[1]^....a[n-3]。这个式子一目了然,无需多解释。问题是如何通过这个式子求. 阅读全文