ARTS第8周

1.Algorithm

46. 全排列

class Solution {
    List<List<Integer>> resp = new ArrayList<List<Integer>>();

    public List<List<Integer>> permute(int[] nums) {
        backtrack2(nums, new LinkedList<Integer>());    
        return resp;
    }

    public void backtrack2(int[] nums, LinkedList<Integer> track) {

        if (track.size() == nums.length) {
            resp.add(new LinkedList<Integer>(track));
            return;
        }
        for(int num:nums) {
            if(track.contains(num)) {
                continue;
            }
            track.add(num);
            backtrack2(nums , track);
            track.removeLast();
        }
    }
}

2.Review

Data Structures - Dynamic Programming
动态规划方法类似于分治法,将问题分解为越来越小的可能子问题。但与“分而治之”不同的是,这些子问题不是独立解决的。相反,这些较小子问题的结果被记住,并用于类似或重叠的子问题。在有问题的地方使用动态规划,这些问题可以被划分为相似的子问题,以便它们的结果可以被重复使用。这些算法主要用于优化。在解决这些子问题之前,动态算法会尝试检查之前解决的子问题的结果。将子问题的解进行组合,以获得最佳解。

所以我们可以说:

  • 该问题应能分解成更小的重叠子问题。
  • 利用较小子问题的最优解可以得到问题的最优解。
  • 动态算法使用记忆。

比较

与贪心算法不同,贪心算法是针对局部优化的,而动态算法是针对问题的整体优化。

与分治算法不同,在分治”算法中,解决方案被组合起来以获得一个整体的解决方案,动态算法利用较小子问题的输出,然后尝试优化较大的子问题。动态算法使用记忆来记住已经解决的子问题的输出。

示例

下面的计算问题可以用动态规划方法来解决:

  • Fibonacci number series
  • Knapsack problem
  • Tower of Hanoi
  • All pair shortest path by Floyd-Warshall
  • Shortest path by Dijkstra
  • Project scheduling
    动态规划可以采用自顶向下和自底向上两种方式。当然,在大多数情况下,引用上一个问题答案比重新计算这个问题更节约cpu。

3.Tips

沟通技能之沟通的内容

好的沟通内容,在围绕沟通目的的前提下,还需要做到“表述清晰准确”和“逻辑清晰”

先了解下列重要的概念:

事物-》观念-》语言-》逻辑
事物-事件:

  • 事物是客观存在的实体,如:动物、树木。要确认事物的存在,你只需实地去考察。
  • 事件是由事物组成,或由事物的表现形式组成。

观念:

  • 我们大脑中的每个观念最终都源于对事物的描摹(好比电脑存储东西是用二进制,人脑存东西可能也是类似于二进制的东西),而真实存在的事物却独立于观念之外。观念是对客观事物的主观反映。
  • 正确观念忠实地反映其对象的客观秩序,与之相反,错误观念则是对客观世界的歪曲表达。

语言:

  • 首先客观存在的事物,然后事物在大脑中的反映为观念,最后我们为其创造的语言,借之我们才能与他人交流。
  • “语言”和“观念”的匹配度越高,沟通就越清晰、有效。

逻辑:

  • 逻辑本身就是发现真相并将其从谬误中分离出来的学问。
  • 结论需要逻辑的支撑。
  • 有逻辑可以清晰高效的思考。

如何表述清晰准确有效

以“事物-》观念-》语言-》逻辑” 等概念来讲,确保双方对“事物-》观念-》语言” 有一致理解的前提下,并且有逻辑的呈现,即可做到表达内容清晰准确有效。

如何做到理解一致,要点如下:

  • 背景信息,不要想当然地认为听众和我们一样了解问题的背景信息
  • 表达内容的平衡,如何恰到好处(不多、不少、易理解)
    • 避免闪避式语言,尽量直抒心意
    • 避免使用模糊多义的词语,有必要针对它进行限定说明
    • 沟通的关键是理解,不要故作高深
    • 信息表达过多或者因为一些其他原因说了很多无关的信息,掩盖了表达意图
  • 不要将主观看法当作客观事实来表达
  • 内容要有逻辑

要点详解
下篇讲解...

4.Share

本周分享费曼的四步学习法

费曼

费曼的四步学习法:
第一步,选择一个你想要理解的概念,然后拿出一张白纸,把这个概念写在白纸的最上边。

第二步,设想一种场景,你正要向别人传授这个概念,然后在白纸上写下你对这个概念的解释,就像你在教一位新接触这个概念的学生一样。这样做的时候,你会清楚的意识到关于这个概念你理解了多少,是否还存在理解不清的地方。

第三步,无论何时你感觉卡壳了,都要回到原始的学习资料并重新学习让你感到卡壳的那部分,直到你领会得足够顺畅,顺畅到可以在纸上解释这个部分为止。

第四步,用你自己的语言,而不是学习资料中的语言来解释概念。如果你的解释很冗长或者令人迷惑,那就说明你对概念的理解可能并没有你自己想象得那么顺畅。你要努力简化语言表达,或者与已有的知识建立一种类比关系,以便更好地理解它。

感想:

我理解“费曼的四步学习法”,它明确定义了学会的终极目标的考量(用自己的语言能顺畅的解释)和达到终极目标的一种方法(找到理解不清的地方,不断尝试理解,直到清晰)。“找到理解不清的地方,不断尝试理解它” 可理解为不断复盘和系统化的一个过程。类比,一个事物的背后会有无数个小的事物组成,这些小的事物之间相互作用形成一套系统,要理解这个事物,需要理清楚这些小事物之间关系,通常可用树状结构(脑图)来体现各自的关系和规律。寻找规律和构建这颗“树”的过程,要有“找到失败的节点有策略有计划地不断进行复盘重试”精神。

费曼的这个思想,在很多地方的体现:

  1. 吴恩达
    吴恩达教你如何读论文

    在他的方法中也明确定义了终极目标的考量(高效了解新领域)和保障目标达到的一套方法。下面是达成目标的方法,包含问题检验和过程记录表,更多详情可点击上面链接。

吴恩达提供了一系列的问题,在阅读的时候询问自己。这里就摘取一部分。
1、Describe what the authors of the paper aim to accomplish, or perhaps did achieve.
这篇论文作者的目标是什么,或者也许已经实现了什么。
2、If a new approach/technique/method was introduced in a paper, what are the key elements of the newly proposed approach?
如果文中引入了一种新方法/技术,那么这一新提出的方法/技术的关键要素是什么?
3、What content within the paper is useful to you?
论文中,有哪些内容对你有用。
4、What other references do you want to follow?
你还想关注哪些参考资料/文献?


  1. 埃隆·马斯克
    网友在reddit的AMA中,问埃隆·马斯克(ElonMusk) 你在这么多领域做的这么好,这是为什么?下面是他的回答:
    SpaceX 埃隆·马斯克(ElonMusk)

它的回答强调了知识是一颗语法树(类似于英语的语法吧,你掌握了语法,读英语基本不会有问题了),梳理每个节点(知识点)之间是存在联系,并理解它的原理。我认为这是他掌握一个事物的终极目标考量和方法吧(把事物树状化,并理解各节点之间的原理和联系)。

  1. 小结
    上面主要在讨论学习,其实这个思想也可以泛化到做事上面。如:做管理、做产品、创业 等。
    例如:程序员写代码,是以写完为标准,是以自测通过为标准,是以稳定高效运行为标准,还是以能为用户带来实际用途为标准 等。每个标准最终得到的实际效果肯定会不一样,其中的有些标准可能会导致项目廷期和不可交付,有些标准可以无法满足用户需求而没有了后续,而有些标准能让产品(项目)持续不断向成功精进。在向成功精进的过程中肯定会遇到的困难和一些异常,用费曼的思想“找到失败的节点有策略有计划地不断进行复盘重试”,构建好这颗“树”,肯定能成。
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,163评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,301评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,089评论 0 352
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,093评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,110评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,079评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,005评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,840评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,278评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,497评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,667评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,394评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,980评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,628评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,796评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,649评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,548评论 2 352