演算法優化一

2021-09-25 11:53:12 字數 1024 閱讀 2109

給定乙個整數陣列 nums 和乙個目標值 target,請你在該陣列中找出和為目標值的那 兩個 整數,並返回他們的陣列下標。

你可以假設每種輸入只會對應乙個答案。但是,你不能重複利用這個陣列中同樣的元素。

示例:給定 nums = [2, 7, 11, 15], target = 9

因為 nums[0] + nums[1] = 2 + 7 = 9

所以返回 [0, 1]

class

solution;}

}}throw

newillegalargumentexception

("no two sum solution");

}}

複雜度

時間複雜度:o(n^2), 對於每個元素,我們試圖通過遍歷陣列的其餘部分來尋找它所 對應的目標元素,這將耗費 o(n)o(n) 的時間。因此時間複雜度為o(n ^2 )。

空間複雜度:o(1)

事實證明,我們可以一次完成。在進行迭代並將元素插入到表中的同時,我們還會回過頭來檢查表中是否已經存在當前元素所對應的目標元素。如果它存在,那我們已經找到了對應解,並立即將其返回。

class

solution;}

map.

put(nums[i]

, i);}

throw

newillegalargumentexception

("no two sum solution");

}}

複雜度分析:

時間複雜度:o(n), 我們只遍歷了包含有 nn 個元素的列表一次。在表中進行的每次查詢只花費 o(1)的時間。

空間複雜度:o(n), 所需的額外空間取決於雜湊表中儲存的元素數量,該錶最多需要儲存 n 個元素。

參考:

專題(一)優化演算法

2.動量 momentum 演算法 2.2 nag 演算法 nesterov 動量 3.自適應學習率的優化演算法 3.2 rmsprop 3.3 adadelta 3.4 adam 4.如何選擇優化演算法 5.基於二階梯度的優化演算法 微積分中使用梯度表示函式增長最快的方向 因此,神經網路中使用負梯...

演算法優化一例

本文將以排序演算法中的插入排序為例,介紹優化演算法,編制高效程式的方法。人們通常用於排序手中橋牌的方法是一次考慮一張牌,將它插入到已經排序過的牌的適當位置中 時刻讓它們保持有序 在計算機實現中,我們需要將較大的元素移到右邊,為插入的元素準備空間,然後再在空位置上插入該元素。該演算法的通常的乙個實現如...

一些優化演算法

1.內點法介紹 interior point method dymodi的專欄 csdn部落格 2.column generation 列生成 演算法 從下料問題看整數規劃中的列生成方法 附gurobi求解器源 知乎 3.群演算法 遺傳演算法ga 最優化演算法之粒子群演算法 pso 模擬退火演算法s...