iARTS 第一周 2018/11/18

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 个部分:
  1. 学习编程的现状是:大多数人都在学习编程语言
  2. 学习编程和学习编程语言的区别:编程更像是想法,而编程语言更像是工具
  3. 学习编程后用编程语言去实践会事半功倍
 
Tips:给 Blog 加上 https 
看了下耗子叔在 CoolShell 里的文章,发现并不符合我的博客。我的博客采用的是 GitPages + Hexo 搭的。
后来在网上翻找了一番,参考着 Netlify + Hexo 来实现,后面还是踩坑了。
如今又给回退成 GitPages + Hexo 了,这周接着弄吧。
 
Share:——

猜你喜欢

转载自www.cnblogs.com/lstcat/p/9980104.html