《追寻生命的意义》读书笔记

2016-05-12 10:14:42
在精神病学中有一种所谓的“暂缓性迷惑”的症状。行将被处决的人在被执行之前有时会获得一种可能在最后一刻暂缓执行的幻觉。我们也抱有这种希望,直到最后一刻还认为情况可能不至于太糟。那些囚徒红润的脸膛和胖乎乎的圆脸就是一大鼓励。当时,我们都不知道,他们是一群精英,日复一日地跑到车站,充当着接待新来者的专门队伍。他们负责管理新来的人及其行李,包括稀有物品和被抢劫的珠宝。
2016-05-12 10:15:32
3个囚徒被关进了至多可容纳200人的棚屋 里。我们又冷又饿,而且非常拥挤,我们几乎无法蹲下,更不用说躺着了。一块五盎司重的面包是我们四天中的惟一食物。
2016-05-12 10:24:38
然后,他说道,“我将给你们两分钟,并且,我将用表给你们计时。在这两分钟之内,你们必须脱去所有的衣服,并把所有的东西放在你正站立着的地上。除了鞋、皮带和吊带,或者捆扎带之外,你们不能带走任何东西。现在,我开始计时—开始!”
人们以不可思议的飞快速度脱去了外套。随着时间的临近,他们也变得越来越紧张,笨拙地忙于脱去内衣、裤带和鞋带。然后,我们听见了鞭子的第一次响声;皮带打在了赤裸裸的身体上。
2016-05-12 10:26:11
我们一些人仍然怀有的幻想就这样一个接一个地被破灭了,并且,非常出人意料地,我们多数人都被一种冷酷的幽默感所战胜。我们知道,除了可笑的赤裸裸的生命之外,我们已经没有任何东西可以失去。当淋浴开始时,我们都使劲地开玩笑,既取笑自己也相互取笑。
2016-05-12 10:28:15
我想顺便提出一些对于我们能够承受多大痛苦的惊奇:我们无法刷牙且严重缺乏维生素,但是,我们的胃却比以前更健康。半年以来,我们不得不穿同一件衬衣,直到它完全失去衬衣的外观。许多天以来,由于自来水管冻结,我们一直不能洗漱,甚至连部分擦洗也不可能。双手因在土里干活而肮脏不堪,但手上的疮和擦伤却从不化脓(也就是说,除非有冻疮)。一些人原来睡眠很浅,隔壁房间的一丝响动都可能搅得他不得安宁,但是现在他却能够与一位离他耳朵几英寸、妍声震天的囚徒挤在一起,在噪音中沉沉人睡。
2016-05-12 10:28:49
现在,如果有人问我们,托斯绥夫斯基把人定义为可以习惯任何事物的观点是否正确,我们将回答:“是的,人能够习惯任何事物,但是,不要问我们,人是如何习惯的。”
2016-05-12 10:29:55
如果把一瞬间的想法也算进去的话,我们每个人都曾有过自杀的念头。死亡的潜在危险和现实无时不在,无处不有,使得生活情形天生就带着一种绝望。从我将要提及的个人信念出发,在进人集中营的第一个晚.上,我就坚定地立下了誓言,我将永远不会去“碰铁丝 网”。这是一个集中营用语,用来描述最常用的自杀方法—碰撞带电的带刺铁丝网。就我而言,作出自杀的决定毫无困难。自杀没有任何意义,因为对于普通囚徒来说,客观估计并加上所有的偶然性,活下来的可能性也是微乎其微。他没有任何把握成为闯过所有选择的极少部分人中的一员。奥斯维辛集中营的囚徒在惊恐的第一阶段就不俱怕死亡。在最初的几天之后,至毒气室都不再恐怖—毕竟,毒气室能使他免除自杀的麻烦。
2016-05-12 10:32:32
他继续说,“如果可能的话,每天刮脸,即使你不得不用玻璃去刮,·一即使你不得不用最后一块面包去换。这样,你将会看起来很年
轻,而且,刮脸还使你的脸看起来更红润。如果你想活下来,只有一个办法:看起来适合干活。如果你瘸了,由子,让我说下去,你的脚后跟上有一个水疙,如果党卫军看见你这样,他就会把你招到一边。第二天,你肯定将被送进毒气室。看起来悲惨可怜、落魄潦倒、患病瘦弱、不再能干重体力活的人,总有一夭,通常是在不久之后,都要被送进毒气室。因此牢牢地记住:刮脸、神气而有力地站立和行走;于是,你就不用害怕毒气了。
2016-05-12 10:32:55
这一反应在几天之后开始发生变化。囚徒从第一阶段进人了第二阶段;一种相对冷漠的阶段,在此期间,他获得了某种程度的情感死亡。
2016-05-12 10:36:26
冷漠、感情迟钝,以及人们不再关心任何事情的感觉,是产生于囚徒心理反应第二阶段的症状,并最终使他对于时时刻刻的殴打折磨无动于衷。通过这一无动于衷的感觉,囚徒们用一种非常必要的保护性外壳将自己严严实实地包裹起来。
2016-05-12 10:38:08
十分奇怪的是,在某些情况下,没有留下痕迹的打击甚至比留下痕迹的更加疼痛。有一次,我站立在暴风雪中的铁路上。天气虽然恶劣,但是我们仍要不停地干 活。我卖力地用碎石修补路基,因为这是保持身体温暖的惟一办法。我停了下来,靠着铁锹喘了日气,也就一会儿的功夫,然而,倒霉的是,正在这时,看守转过身来,发现我在偷懒:他对我的伤害不是来自于侮辱和拳打脚踢。这个看守认为,不值得向站在前面的这位衣衫破烂、瘦骨嶙峋的家伙说一句话,甚至不值得咒骂、相反地,他顽皮地捡起一块石头并向我扔了过来。在我看来,这似乎是一种办法,用来吸引野兽注意,吹喝家畜干活,一种与你几乎没有共同之处的生物,以至于你甚至不愿意惩罚它。
2016-05-12 10:43:23
有些工头会同情我们,并尽力改善我们的处境,至少是在工地上。但是,即使他们也不断地提醒我们,一名正常的工人可以做几倍于我们的一作,而且所用的时间更短。但是,他们并不知道,正常工人并不以每天十又二分之一盎司的面包(理论上的—实际上,我们常常吃得比这更少)和一又三分之一品脱的汤生活;正常工人并不生活在我们不得不屈从的精神压力之下,没有家庭的消息,不知道他们是被送往了集中营还是直接被送进了毒气室;普通工人并不每时每刻地受到死亡的威胁。
2016-05-12 10:44:31
我的几位曾受过精神分析法训练的集中营同事经常提到集中营囚徒的“退化”—一种向更原始精神生活的倒退。囚徒的希望和梦想明显地表
现在他们的睡梦中。囚徒们经常梦见的是什么?是面包、蛋糕、香烟和舒适的热水澡。
2016-05-12 10:46:41
当最后一点皮下脂肪消失的时候,当我们看起来就像用皮肤和破布掩饰的骸镂时,我们可以看到,我们开始消耗自己的身体。生物体消耗自身的蛋白,肌肉逐渐消失了。然后,身体失去抵抗力。一个接一个地,我们栩屋仅剩的一些人开始死去。我们每个人都能相当精确地计算出下一次将轮到谁,他自己的死亡将在什么时候发生。多次观察之后,我们已经十分熟悉这些症状,并使得我们对于症状的判断具有相当的把握。
2016-05-12 10:48:04
正如前文所提到的,每当囚徒获得一点空余时间时,他们就会不可避免地想到食物。这也许可以理解为,那些没有相同经历的人几乎无法想象,濒临饿死的人所经历的毁灭灵魂的思想斗争和意志力的冲突。他们几乎无法理解这一切都将意味着什么:在壕沟里站着挖土,盼望着上午九点半或十点—半小时的午餐时间—的哨音,因为这时将分配面包(如果仍然能够供应的话);一遍又一遍地询问工头—如果他不是令人不悦的话—现在是几点钟;温存地抚摸上衣口袋中的面包,首先,用冻僵的手抚摸它,然后,籍下一点,将它放人u中,最后,用最后的一点意志力把它再次塞人口袋,暗暗发暂一定要坚持到下午。
2016-05-12 13:28:11
我的意识还停留在我的妻子的印象上。一种想法出现在我的脑海:我甚至不知道她是否还活着。我只知道一件事—至今仍记得它:爱远远超越被爱者的肉体存在。在他的精神存在和内心自我中,可以发现最深刻的 意义。至于它是否实际存在。是否还活着,都不再重要。
2016-05-12 13:30:47
在黎明的灰色光线中,雪也是灰蒙蒙的;囚徒所穿的破烂衣服也是灰蒙蒙的,他们的脸也是灰蒙蒙的。我再一次默默地与妻子对话,或许可能正在努力为我的受苦受难、为我的慢慢死去寻找理由。在对即将来临死亡的绝望作最后的激烈抗争时,我意识到,我的精神正穿透四周的黑暗。我感觉到,它超越了绝望的、无意义的世界,并且,从某个地方我听见了一声胜利的“是”,来回答我的最终目是否存在的间题。在那一时刻,在巴伐利亚黎明的凄惨灰色中,一丝灯光出现在遥远的农家房屋中,它就像画在那里一样出现在地平线上。长时间地,我一动不动地站在结冰的地面上。看守走过来,侮辱我、我继续与我的爱人交谈。我越来越感觉到,她是存在的,她跟我在一起;我有一种感觉,可以摸到她,伸手就能抓住她。这一感觉十分强烈:她就在那里。那时,正是在那一时刻,一只鸟飞下来,停在我的面前,站在我从沟中挖出的土堆上,并坚定地看着我。
2016-05-12 13:33:33
对于一个局外人来说,当他发现集中营存在着某些类似于艺术的东西时,他会感到惊奇,然而,当他听说人们在那里还能找到某种幽默时,他也许会更加感到惊奇了;当然,这种幽默只有微弱的痕迹,而且,只会持续几秒和几分钟。
2016-05-12 13:33:57
在自我保护的斗争中,幽默是另外一种灵魂武器。众所周知,与人的构成中的其他任何东西相比,幽默在使人远离和超越环境方面的能力更强大,即使它只能维持几秒钟。我曾经努力培养一位在我旁边干活的朋友养成幽默感。我向他提议,我们每天至少编造一个有关我们获得解放之后的某一天可能发生的事情的故事。

继续阅读《追寻生命的意义》读书笔记

《别闹了,费曼先生》读书笔记

2016-05-04 23:57:57
从小,只要一开始研究某个谜题,我便停不下来,非要把它解开不可。如果当时我母亲的朋友跟我说:“算了,这太费事了!”我一定大为光火,因为我非要击败这台鬼收音机不可。反正这么多工夫都花了,绝不能半途而废,我必须坚持到底,直到找出它的问题才能罢休!
2016-05-04 23:58:13
面对谜题时,我有一股不服输的死劲。这是为什么后来我会想把玛雅象形文字翻译成现代文字或者是碰到保险箱就想办法打开它。
2016-05-04 23:58:44
记得在高中时,每天早上总有人拿些几何或高等数学的题目来考我,而我是不解开那些谜题便不罢休。通常我都要花上一二十分钟才找出答案;然后在同一天内其他人也会问我同样的问题,那时我却可以不加思索便告诉他们答案。因此我在替第一个人解题时花掉20分钟,可是同时却有5个人以为我是超级天才!
2016-05-05 00:01:09
学会如何快速解代数,对我往后念大学时甚有助益。例如当我们碰到微积分的题目时,我便很快看出题目的方向,而且很快地把答案算出来——真的很快。
2016-05-05 00:02:30
几年后,学校里开始教三角课了,这时我还留着笔记。比较之下,我发现我的证明方法跟课本上的不一样。有时候,由于我没有注意到某个简单的方法,结果花了许多力气、绕了一大圈才找到结果。但有些时候,我用的方法可聪明极了,书中所用的方法却复杂无比!因此我跟课本可谓互有输赢。
2016-05-05 00:07:42
第一天上工时,另一位管理食品的女士告诉我,通常她会替值夜班的人准备火腿三明治或其他宵夜。我说我喜欢甜点,如果晚餐有剩下来的甜点,就再好不过了。第二天晚上,我值大夜班,侍候那群玩扑克牌的客人。凌晨两点多,我坐着无所事事,正觉得无聊,突然想起有甜点可吃。打开冰箱一看,她居然留了六份甜点给我!有巧克力布丁、蛋糕、果冻,应有尽有!我坐下来把六份甜点吃个精光,真是过瘾!
2016-05-05 00:08:07
有一次,我在柜台当班,有个女孩到餐厅吃饭,把书留在柜台的电话机旁。我瞄了一眼,看到书名是《达芬奇的一生》(The Life of Leonardo),心想这本书非看不可。后来我跟她把书借来,一口气把它读完。
2016-05-06 18:47:15
艾森赫院长的座位在大厅的尽头处,而我则坐在远远的另一头;餐厅里一共坐了好几百人。我很焦虑,因为大家都一定很想报名参加,我最害怕的是我坐得这么偏远,院长看不到我。但我非得参加这次催眠的示范表演不可!
最后艾森赫说:“那么,我想知道有没有志愿参加的同学……”
我立刻举手,从座位上跳起来,用尽全身力气大声尖叫:“我啦!我啦!”
他当然听见了,因为只有我一个人在叫!那一声“我”回荡在偌大的餐厅内,山鸣谷应,使我感到难为情极了。
2016-05-06 18:46:50
在普林斯顿研究院的餐厅里吃饭、聊天时,大家总喜欢物以类聚地坐在一块。开始时我也跟物理学家坐在一起,但不久我就想:看看世界其他人在做些什么,一定也很好玩。因此,我轮流和其他小组的人一起用餐,每一二星期转移阵地一次。
2016-05-06 18:49:17
他们一个接一个地起立发言,我发现这是我出生以来,第一次听到那么多关于砖的天才说法。后来,就像所有典型的哲学家一般,场面一片混乱。好笑的是,在先前那么多次的讨论中,他们从来没有问过自己,究竟像砖块这类简单物体是不是“本质物体”?更不要说电子了!
2016-05-06 18:50:07
没有人晓得答案。后来我才知道,这在当时还是个未解之谜。就这样,我学到一点关于生物学的特性:你可以很轻易便提出一个非常有趣的问题,而没有人知道答案。但在物理学,你必须先稍微深入学习,才有能力问一些大家都无法回答的问题。
2016-05-06 18:51:53
轮到我做报告时,我先在黑板上画了一只猫,并开始将各部分肌肉标示出来。很多同学打断我的动作:“那些我们都知道了。”
“哦,”我说,“你们都知道?难怪你们念了四年的生物,我却还是一下子便追上你们的程度了。”他们把所有时间都浪费在死背名词上了,而这些东西只要花个15分钟便全部可以查出来。
2016-05-06 18:52:18
二次大战后,每年暑假我都会开车到美国各地旅行。到加州理工学院任教之后,有一年我跟自己说:“这个暑假我不要换另一个地方玩了,不如试试换另一门的学问来玩玩。”
2016-05-06 18:53:28
我选了一门讨论噬菌(phage)的课。噬茵是一种含有DNA 的滤过性病原体,它会攻击细菌。而在这门课中,我们学习如何做有关噬菌体(bacteriophage)的研究。很快我就发现,由于懂得物理和数学,学习生物时轻松多了。例如,我知道液体中的原子如何运动,因此离心机的工作原理对我而言,不算高深莫测。又由于具备了统计学上的知识,我很清楚在盘点培养皿上的斑点时,所牵涉的统计误差。换句话说,正当其他生物系的同学努力了解这些“新”观念时,我却可以专心学习真正跟生物有关的学问。
2016-05-06 18:56:45
如果我是个真正优秀的生物学家,那将会是一项十分惊人和重要的发现;可惜我不是一个很好的生物学家。我们的想法很好,实验构想很好,设备也很齐全,却全让我搞砸了;因为我给她的是受到感染的核糖体,那是在这种实验中所可能犯的最严重错误了。我们的核糖体放在冰箱里将近一个月,早已被其他生物所污染了。如果我重新准备一些核糖体,很认真和小心翼翼地拿去给兰夫罗姆,严格地控制一切,那么实验将会很成功;而我们也将成为首先证实生命的普遍性质的人。我们将证实了在任何生物中,制造蛋白质的机制——核糖体——都是一个模样的。当时我们在恰当的时机做着正确的事情,可是我的做事方式和态度完全像个业余的半吊子,愚蠢而草率。
2016-05-06 18:57:40
我始终没有动笔把噬菌的实验结果写成论文,尽管艾德加不停催促,我却一直抽不出空来。这也是从事跨行工作的毛病了:我不会认真地看待它。后来,我总算写了个非正式的报告给艾德加,他一边读一边笑了起来,因为我没有依照生物学家惯用的标准格式——先写实验程序,再写……等等,而写了一大堆生物学家早已知道的东西。艾德加把我写的改成较为简洁的版本,我却全看不懂。我想他们始终没有拿去发表,我自己也从来没有直接发表那些实验结果。
2016-05-06 18:58:17
另一方面,华森认为我的噬菌实验颇有价值,因此邀请我到哈佛大学去一趟。我在哈佛生物系做了一次演讲,讨论位置十分接近的突变及反突变。我告诉他们,我的想法是:第一次突变使蛋白质发生变化,例如改变了某个氨基酸的酸碱度;而第二次突变则改变了同一蛋白质
2016-05-06 18:58:47
在哈佛大学的那个星期里,华森提出了些构想,我们一起做了几天的实验。那个实验没有做完,但我已从这位生物界的顶尖高手那里,学到了许多实验新技巧。那也是我很得意的时刻!我居然在哈佛大学的生物系里发表演讲呢!事实上,这可以作为我一生中的写照:我永远会一脚踏进某件事情中,看看到底能做到什么地步。
2016-05-06 19:01:15
轮到我做报告之前一两天,我在走廊上碰到维格纳。“费曼,”他说,“我觉得你跟惠勒合作的研究很有趣,因此我已请了罗素来参加你的研讨会。”罗素(Henry Norris Russell),当代大名鼎鼎的天文学家,要来听我的报告!
2016-05-06 19:01:41
维格纳继续说:“我想冯诺曼教授也会有兴趣。”冯诺曼(John vonNeumann)是当时最伟大的数学家。“而刚巧鲍立教授从瑞士来访,因此我也请了鲍立来。”天哪!鲍立(Wolfgang Pauli),1945年诺贝尔物理奖得主,也是很有名的物理学家呢!这时我吓得脸都黄了。最后维格纳说:“爱因斯坦教授很少参加我们每周一次的研讨会,可是你这个题目太有趣了,因此我特别去邀请他,他也会来。”

继续阅读《别闹了,费曼先生》读书笔记

LeetCode 3. Longest Substring Without Repeating Characters

Given a string, find the length of the longest substring without repeating characters.
Examples:
Given “abcabcbb”, the answer is “abc”, which the length is 3.
Given “bbbbb”, the answer is “b”, with the length of 1.
Given “pwwkew”, the answer is “wke”, with the length of 3. Note that the answer must be a substring, “pwke” is a subsequence and not a substring.

分析:用两个指针ij从头开始遍历字符串。ij分别表示最长字串的首尾下标。如果第j个与i与j当中的某处k重复,那么只需i从k+1开始继续判断是否有重复的就好。当然,在i++一直到k的过程中,不要忘记把已经收录的字符存在标记为不存在。所以用一个book数组标记该字符在i~j当中是否出现过。每一次找到重复的字符的时候判断j-i是否比最大值大。一个特例是,如果i~j中一直让j到了最后一个字符都没有重复但是此时的j-i是最长的长度,所以要在return语句前再加上一句判断j-i的大小是否比当前maxlen大。因为i和j都只遍历了字符串一次,所以时间复杂度为O(n)。 

LeetCode上Tag为贪心算法(Greedy)的题目整理

330. Patching Array
Given a sorted positive integer array nums and an integer n, add/patch elements to the array such that any number in range [1, n] inclusive can be formed by the sum of some elements in the array. Return the minimum number of patches required.

Example 1:
nums = [1, 3], n = 6
Return 1.

Combinations of nums are [1], [3], [1,3], which form possible sums of: 1, 3, 4.
Now if we add/patch 2 to nums, the combinations are: [1], [2], [3], [1,3], [2,3], [1,2,3].
Possible sums are 1, 2, 3, 4, 5, 6, which now covers the range [1, 6].
So we only need 1 patch.

Example 2:
nums = [1, 5, 10], n = 20
Return 2.
The two patches can be [2, 4].

Example 3:
nums = [1, 2, 2], n = 5
Return 0.
题目大意:
给一个有序非负整数列nums和一个整数n,最少需要添加多少个数可以使得[1,n]间的每一个数都可以被数列中若干个数的和来表示。输出最小需要添加多少个数字。
分析:
假设[0,t)是暂时能够满足题意的区间,当t<=n的时候,对于每下一个nums[i]:
0.如果nums[i]比t小,那么[0,t)区间内的每一个数加上nums[i]后,区间就被扩展为[0,t+nums[i])了。
1.如果nums[i]比t大,那么必须要加入一个数才能满足扩展区间后的连续性。能加入的这个数当然是越大越好,但是不能超过t,因为超过t的话就会有t之后这个数之前的区间不满足。所以可以令t=t+t,这是它能扩展的最大区间了。此时用cnt计数,cnt+1表示加入了一个数(这个数是t)。
注意点:一开始全都用的int结果在测试用例Last executed input:[1,2,31,33] 2147483647 这个用例下面超时了
后来机智的想了一下发现是如果t当前的值很大又执行了t = t + t会溢出导致t变成了一个很小的值,然后再while肯定超时啦。
所以把int t = 1改为long long int类型就AC啦。啦啦啦。

 

134. Gas Station
There are N gas stations along a circular route, where the amount of gas at station i is gas[i].
You have a car with an unlimited gas tank and it costs cost[i] of gas to travel from station i to its next station (i+1). You begin the journey with an empty tank at one of the gas stations.
Return the starting gas station’s index if you can travel around the circuit once, otherwise return -1.
Note:
The solution is guaranteed to be unique.
分析:
gas[i] – cost[i]为车行驶的代价。要想能走完一圈,必须时刻保持从出发点到终点始终行驶代价总和temp >= 0
0.假设从0开始出发,累积temp0一直是>=0的。到点A的时候发现<0了。此时可以想:从0~A的temp0小于0,而前面的0~某点的代价总和一直是>=0的,所以可以得知前面任何一点都不能作为出发点了,因为temp0 – 0~某点的代价总是小于0的不满足题意。所以只能从下一个结点开始尝试。
1.从A+1结点开始出发,累积temp1一直是>=0的。到点B的时候发现<0了。此时可以想:从A+1 ~ B的temp1小于0,那么前面的A+1到某点的代价总和一直是>=0的,所以可以得知前面任何一点都不能作为出发点了,因为temp1 – A+1~某点的代价总是小于0不和题意的。所以就从下一点开始尝试….
2.终于有一次可以从D开到n-1这个点了。只要看能不能车再从0开到D-1了。也就是想看temp2+temp0+temp1的过程中可不可能总代价小于0.结论是只要所有点总代价total>=0,那么一定可以开一圈。可以这么证明:total>=0 temp0 和temp1都是在最后一个点game over的 前面都是正数那么ok,最后一个数是导致<=0的点,但是去掉了temp0这个负数,总代价毫无疑问还是大于0的不用说。所以说最后只要total>=0那么就一定可以走结束一圈。啊哦- -我竟然说了这么多=_=

 

55. Jump Game
Given an array of non-negative integers, you are initially positioned at the first index of the array.
Each element in the array represents your maximum jump length at that position.
Determine if you are able to reach the last index.
For example:
A = [2,3,1,1,4], return true.
A = [3,2,1,0,4], return false.
题目解释:
从下标为0的地方开始,A[i]表示当前i处能够跳跃的最大长度。(也就是也就是i处最远能跳到下标i + nums[i]处。)判断能不能跳啊跳到最后一个下标的地方。
分析:设立distance为当处在i下标的时候,前面所能够达到的所有长度的最大值(因为是最大值,所以0~最大值的所有下标都可以遍历到),当i <= distance的所有下标都可以遍历,然后更新distance的值为distance = max(distance, i + nums[i]);
最后判断能够最远到达的distance是否够的到最后一个下标n-1,不能的话返回false,能的话返回true

122. Best Time to Buy and Sell Stock II
My Submissions QuestionEditorial Solution
Total Accepted: 83388 Total Submissions: 198240 Difficulty: Medium
Say you have an array for which the ith element is the price of a given stock on day i.

Design an algorithm to find the maximum profit. You may complete as many transactions as you like (ie, buy one and sell one share of the stock multiple times). However, you may not engage in multiple transactions at the same time (ie, you must sell the stock before you buy again).
分析:贪心算法,在每一小段上升序列中最大差值累加得到结果。就是说在股票价格处于上升期的时候,在最低点买入,在最高点卖出。而且可知,每一小段的最大差值就是这段序列的最后一个点的价格减去这段序列第一个点的价格,与每一次从第一个点与第二点的差值一直累加所得结果相同:ans += prices[i] – prices[i – 1];

LeetCode 55. Jump Game

Given an array of non-negative integers, you are initially positioned at the first index of the array.
Each element in the array represents your maximum jump length at that position.
Determine if you are able to reach the last index.
For example:
A = [2,3,1,1,4], return true.
A = [3,2,1,0,4], return false.

题目解释:从下标为0的地方开始,A[i]表示当前i处能够跳跃的最大长度。(也就是也就是i处最远能跳到下标i + nums[i]处。)判断能不能跳啊跳到最后一个下标的地方。

分析:设立distance为当处在i下标的时候,前面所能够达到的所有长度的最大值(因为是最大值,所以0~最大值的所有下标都可以遍历到),当i <= distance的所有下标都可以遍历,然后更新distance的值为distance = max(distance, i + nums[i]);
最后判断能够最远到达的distance是否够的到最后一个下标n-1,不能的话返回false,能的话返回true

LeetCode 134. Gas Station

There are N gas stations along a circular route, where the amount of gas at station i is gas[i].
You have a car with an unlimited gas tank and it costs cost[i] of gas to travel from station i to its next station (i+1). You begin the journey with an empty tank at one of the gas stations.
Return the starting gas station’s index if you can travel around the circuit once, otherwise return -1.
Note:
The solution is guaranteed to be unique.

分析:gas[i] – cost[i]为车行驶的代价。要想能走完一圈,必须时刻保持从出发点到终点始终行驶代价总和temp >= 0~假设从0开始出发,累积temp0一直是>=0的。到点A的时候发现<0了。此时可以想:从0~A的temp0小于0,而前面的0~某点的代价总和一直是>=0的,所以可以得知前面任何一点都不能作为出发点了,因为temp0 – 0~某点的代价总是小于0的不满足题意。所以只能从下一个结点开始尝试。从A+1结点开始出发,累积temp1一直是>=0的。到点B的时候发现<0了。此时可以想:从A+1 ~ B的temp1小于0,那么前面的A+1到某点的代价总和一直是>=0的,所以可以得知前面任何一点都不能作为出发点了,因为temp1 – A+1~某点的代价总是小于0不和题意的。所以就从下一点开始尝试….
2.终于有一次可以从D开到n-1这个点了。只要看能不能车再从0开到D-1了。也就是想看temp2+temp0+temp1的过程中可不可能总代价小于0.结论是只要所有点总代价total>=0,那么一定可以开一圈。可以这么证明:total>=0 temp0 和temp1都是在最后一个点game over的 前面都是正数那么ok,最后一个数是导致<=0的点,但是去掉了temp0这个负数,总代价毫无疑问还是大于0的不用说。所以说最后只要total>=0那么就一定可以走结束一圈。啊哦- -我竟然说了这么多=_=