Algorithm:两数之和
给定一个整数数组 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:——