要求用o(n)的時間複雜度進行查詢:
1. 申請額外空間n個空間,記錄當前數字是否出現過
def find1(a, n):
res =
b = [0 for x in range(n)]
for i in a:
b[i-1] = 1
for i in range(n):
if b[i] == 0:
return res
2.利用數學公式,先求1到n的平方和和1到n的平方和,再求1到n的平方和和1到n的和,兩式相減解方程
def find2(a, n):
sum1, sum2, sum1_, sum2_ = 0, 0, 0, 0
for i in a:
sum1 += i
sum1_ += i**2
for i in range(1, n+1):
sum2 += i
sum2_ += i**2
sum_ = sum2 - sum1
sum__ = sum2_ - sum1_
for i in range(n):
if i**2 + (sum_ - i) ** 2 == sum__:
return [i, sum_-i]
0到n 1中缺失的數字
一 題目 乙個長度為n 1的遞增排序陣列中的所有數字都是唯一的,並且每個數字都在範圍0到n 1之內。在範圍0到n 1的n個數字中有且只有乙個數字不在該陣列中,請找出這個數字。二 思路 分析易知,陣列形式如下 如果從頭到尾依次比較值與小標是否相等,時間複雜度為o n 效率低。由於是排序陣列,我們繼續考...
演算法題 從1到n的正數中1的出現次數
輸入乙個整數n,求從1到n這n個正數中,1出現的次數。例如 輸入12,出現一的數字有1,10,11,12共有5個1,則輸出5.最簡單的方法,我們可以遍歷從1到n的每乙個數字k,對於k我們計算出它其中包含的1的個數,方法其實很簡單,只需要分別判斷個位,十位,百位,千位等的每一位是否為1,然後用計數器記...
LeetCode 0到n 1中缺失的數字
非商業,leetcode鏈結附上 進入正題。題目 乙個長度為n 1的遞增排序陣列中的所有數字都是唯一的,並且每個數字都在範圍0 n 1之內。在範圍0 n 1內的n個數字中有且只有乙個數字不在該陣列中,請找出這個數字。示例 示例 1 輸入 0,1,3 輸出 2 示例 2 輸入 0,1,2,3,4,5,...