ARTS 是由陈皓(网名「左耳朵耗子」)在极客时间上发起的一个每周打卡计划,详情查看 https://www.zhihu.com/question/301150832 。
Algorithm
LeetCode 009 — Palindrome Number
Review
How to think like a programmer — lessons in problem solving
这是 Medium 上的一篇文章,名字翻译成中文是《怎样像程序员一样思考》。
文章的开头说「像程序员一样思考」实际上是指一种更有效的解决问题的方法。
我们每个人总是碰到各种各样的问题,或大或小。我们处理这些问题的方式,从某种程度上来说,非常随机。一般人们总是这样来解决一个问题:首先尝试一种解决方法;如果这种方式不起作用,那么就尝试另外一种;如果依然不起作用,那么重复第二个步骤,直到你足够幸运解决了问题。有的时候,你足够幸运,但是这是解决问题最差的方式。
解决一个问题最好的方式包括两项:a) 找到一个处理问题的通用框架 b) 不断训练
通用框架
1. 理解问题
理解问题的本质。大多数困难的问题之所以困难是因为你没有理解问题的本质。
2. 做计划
不要在没有做好解决方案的计划之前一头扎进去。要写下解决问题的具体步骤。
3. 分解问题
这是最重要的一个步骤。
不要尝试解决一个巨大的问题,要把它分解成几个子问题。然后依次解决们每一个子问题。最后把这些子问题串联起来,你将会得到原始问题的解决方案。
4. 卡住了?
当你被卡住了,甚至解决不了一个子问题的时候,首先深呼吸,然后你要知道,这是很正常的。
下面是几个你可以尝试的方法:
调试:一步步审视你的解决方案找出你错在哪里。
重新评估问题:从另一个角度观察问题,看看是不是有某些东西能抽象成更通用的途径。
搜索:从搜索引擎寻找解决问题的方式。不管你的问题是什么,很可能别人已经解决过了。
5. 训练
不要期望自己在仅仅一周之后就变得很厉害。如果你希望成为一个很厉害的解决问题的人,那么唯一的途径就是解决很多问题。
不断训练。
Tip
ES6 中遍历数组键值对的方法:
ES6 提供三个新的方法——entries(),keys()和values()——用于遍历数组。它们都返回一个遍历器对象,可以用for…of循环进行遍历,唯一的区别是keys()是对键名的遍历、values()是对键值的遍历,entries()是对键值对的遍历。
for (let index of ['a', 'b'].keys()) {
console.log(index);
}
// 0
// 1
for (let elem of ['a', 'b'].values()) {
console.log(elem);
}
// 'a'
// 'b'
for (let [index, elem] of ['a', 'b'].entries()) {
console.log(index, elem);
}
// 0 "a"
// 1 "b"
http://es6.ruanyifeng.com/#docs/array
Share
这篇文章详细介绍了如何管理Linux的文件权限,包括如何查看和理解权限、变更权限、变更用户组等。