極客時間算法訓練營課程筆記
- 刷題最大的誤區:只做一遍
- 加速最好的方法和核心思想:1 升維 (雙指針,或一維數組維護兩個序列號) 2 空間換時間
- 核心思想:第一周第三課第一節
- 例題:第一周第三課第二節,移動零
寫下想到的所有方法
leetcode-cn查好方法
題目國際站 most-votes
無毒神掌
主要思想
高級算法模板
本地git配置備份
$ git config --global --list
user.email=lx169978@alibaba-inc.com
user.name=lx169978
gui.encoding=utf-8
提交作業:https://shimo.im/docs/m5rtM8K8rNsjw5jk/read
交作業網址:https://github.com/lexn-lexn/algorithm009-class02
連接復制在geek 評論中 作業一般連接形式 https://github.com/lexn-lexn/algorithm009-class02/tree/master/Week_02
提交issue地址 https://github.com/algorithm009-class02/algorithm009-class02/issues/19 對應week里面的issue
提交格式
#學號: G20200343040322
#姓名: 劉曉
#班級: 2班
#語言: python
#作業&總結鏈接: https://github.com/lexn-lexn/algorithm009-class02/tree/master/Week_02
-----------------------------------------第一周---------------------------------------------------------------
第一周第三課第三節
計算機核心原理
重復動作
本質決定:三大基本操作 ifelse for recursion
當不會題目時:
1)暴力
2)最簡單情況
3)想到最簡單情況后, 是否可以總結找到最小重復子單元,
4)找到后即可完成整個編程
例題:爬樓梯。
提示:條件走1或2步可能,那么假設最后還剩一步,那么前面有多少種走法就是F(n-1), 假設最后還剩兩部,那么前面有多少種走法F(n-2)
第一周第四課第二節
核心思想
最近相關性 -> 棧
排隊先到先得-> 隊列
題目:有效括號
引申:洋蔥式的思維模型即用棧。排隊式思維模型用隊列
第一周作業:
1移動零 2 兩數求和
class Solution: def moveZeroes(self, nums): i = 0 n_l = len(nums) for j in range(n_l): if nums[j] != 0: nums[i], nums[j] = nums[j], nums[i] i += 1 s = Solution() n = [1, 20, 0, 2, 0, 7] s.moveZeroes(n) print(n) class Solution(object): def two_sum(self, tar, nums): hashmap = {} for i in range(len(nums)): if (tar-nums[i]) in hashmap: return [i, nums[i]],[hashmap[tar-nums[i]], tar-nums[i]] pass hashmap[nums[i]] = i ts = Solution() res = ts.two_sum(10,[12,3,5,7,8,35,21,2,3,]) print(res)