演算法時間複雜度分析,複雜度越低,大資料量,高併發環境下,收益很高
1 + 2 + 3+ … + n
求和公式: y = n*(n+1)/2
fibonacci 時間複雜度計算
f(n) = f(n-1) + f(n-2)
時間複雜度:o(2^n) 並不是特別有效的演算法
查用查詢演算法的時間複雜度是多少:
二分查詢 – log(n)
二叉樹遍歷 o(n)
二維度矩陣 o(n)
快排 --n*log(n)
訓練演算法和資料結構的**:
三分學習,7分練
堅持、刻意練習,不要只做自己會做的題,而要做常考的演算法,自己不會的題,如動態規劃等
訓練的時候,不爽,不舒適,正常的,跳出自己的舒適區,說明你在成長
訓練演算法的**:leetcode
1、資料的範圍,比較陰險的地方。
2、所有的演算法解法,都找到,找到時間和空間複雜度最優的
1、o(n^2) 解法,直接兩層for迴圈求解
2、定義乙個map儲存上乙個值,key:儲存陣列之前位置對應的數值,value儲存數值對應的位置
由於hashmap key查詢時間複雜度為o(1),利用這一特性,在通過target - 陣列當前遍歷的值 ,去hashmap中查詢,如果查詢到的話,即返回。
class
solution
else
}return position;
}}
3、官方提供三種解法,第一種,兩層迴圈,第二種,兩次迴圈,第三種,一層迴圈;
最好通過看solution 進行學習對比,對比自己的**,找到優勢和不足
堅持!!!
演算法練習 第一天
求1 1!1 3!1 5!1 7!1 n 1 2n 1 下面的演算法時間複雜度為o n 2 public class leijia leicheng sum sum sign a system.out.println sign a system.out.println 結果是 sum 求1 1!1 ...
python第一天練習
1.有四個數字 1 2 3 4,能組成多少個互不相同且無重複數字的三位數?各是多少?for i in range 1,5 for j in range 1,5 for k in range 1,5 if i k and i j and j k print i,j,k 2.利用條件運算子的巢狀來完成此...
python練習 第一天
from math import sqrt class point object 描述平面上的點 def init self,x,y param x 橫座標 param y 縱座標 self.x x self.y y defmove to self,x,y 移動到某點的方法 param x 目標點的...