開始寫這個,也算是督促自己多寫**,多寫一些演算法,不要分心做其他事,另外也是方便自己以後來查詢吧。
題目出自leetcode,有興趣的朋友可以去那裡開始刷題之旅,都是非常有趣的題目。題目大意如下所示:
給定乙個整數陣列nums
和乙個目標值target
,請你在該陣列中找出和為目標值的那兩個整數,並返回他們的陣列下標。
你可以假設每種輸入只會對應乙個答案。但是,你不能重複利用這個陣列中同樣的元素。
示例:
給定 nums = [2, 7, 11, 15], target = 9題目非常簡單,我的解題**如下所示:因為 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]
class solution }}
return result;}}
這裡面沒有做任何的剪枝,完全是硬編碼,覺得這樣的**,有失我輩風采(不能zhuangbi),於是做了一點改進,利用了備忘錄演算法的思想,用了乙個map來記錄每個數值的下標,因為從hashmap中取確定的key的值是常數項能解決的,所以**從兩個迴圈變成了乙個迴圈。**如下所示:
class solution else if (!tempmap.containskey(nums[index]))
} return result;}}
這下子,提交的成績還不錯嘛
如果大家還有一些有趣的思路,也可以一起交流,演算法這條路和數學一樣,永遠有更有趣的題,有更有趣的解法。
linux 備忘錄一
今天學到的東東 1 檢視程序所對應可執行程式的絕對路徑 1 ps ef grep 程序名 獲得pid 2 進入proc檔案系統裡對應的目錄 proc 3 ls l exe鏈結對應的就是可執行檔案的全路經 2 辨別是軟鏈結還是硬鏈結 ls li 檢視檔案對應的inode編號,一樣的則是硬鏈結,軟鏈結通...
lua備忘錄(一)
lua中有八種基本型別,需要注意的是 function thread nil這三種型別 print type 10.0 使用type函式可以獲得乙個變數的型別資訊 print type false print type 123 邏輯運算 a 30 b 20 c a b and a or b lua中...
Notepad 備忘錄一
notepad 的 1是啥用來著?1用在被替換的表示式中,用於替換查詢的表示式中第乙個匹配組,例如,你查詢abc 123,替換為456 1def,標識查詢所有以abc開頭,以123結尾的字串,替換開頭的abc為456,結尾的123為def。替換表示式中 1就表示查詢表示式中的 我現在習慣用的是eme...