iARTS 第一週 2018/11/18
Algorithm:ofollow,noindex">兩數之和
給定一個整數陣列nums
和一個目標值 target
,請你在該陣列中找出和為gai目標值的 兩個 整數。
你可以假設每種輸入只會對應一個答案。但是,你不能重複利用這個陣列中同樣的元素。
示例:
> 給定 nums = [2, 7, 11, 15], target = 9
> 因為 nums[0] + nums[1] = 2 + 7 = 9
> 所以返回 [0, 1]
看過題目後,我第一時間想到得是通過遍歷去處理這個問題。之後也去瀏覽了討論裡的答案,發現自己需要學習的是真得很多。
一次雜湊的解法,兩次雜湊的解法,聊聊我理解的一次雜湊的解法:
* 遍歷 nums
* 判斷 target - nums[i] 是否存在
class Solution { func twoSum(_ nums: [Int], _ target: Int) -> [Int] { var dict = [Int: Int]() for (i, num) in nums.enumerated() { if let lastIndex = dict[target - num] { return [lastIndex, i] } dict[num] = i } fatalError("Invalid Outputs!") } }
Review:Learning programming is different from a learning programming language
學習程式設計並不是學習程式語言
本文明確區分了學習程式設計和學習程式語言,個人認為全文可以分為以下 3 個部分:
- 學習程式設計的現狀是:大多數人都在學習程式語言
- 學習程式設計和學習程式語言的區別:程式設計更像是想法,而程式語言更像是工具
- 學習程式設計後用程式語言去實踐會事半功倍
Tips:給 Blog 加上 https
看了下耗子叔在 CoolShell 裡的文章,發現並不符合我的部落格。我的部落格採用的是 GitPages + Hexo 搭的。
後來在網上翻找了一番,參考著 Netlify + Hexo 來實現,後面還是踩坑了。
如今又給回退成 GitPages + Hexo 了,這周接著弄吧。
Share:——