LeetCode Maximum Depth of Binary Tree 104

104. Maximum Depth of Binary Tree Given a binary tree, find its maximum depth. The maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf node. 自己的解法 自己想到应该用递归、为空的返回 0,不为空的返回 1,递归累加;但是有两个点这么判断呢?其实很容易取两数字的 MAX public int maxDepth(TreeNode root) { if (root == null) { return 0; } return 1 + Math.max(maxDepth(root.left), maxDepth(root.right)); } 参考: 104 Maximum Depth of Binary Tree | Data Structure and algorithm analysis

August 23, 2016 · 1 min · 73 words · Me

【此生为完成】随笔

我们要用多大的代价,才能认清活着的意义? 于娟,这个风华正茂的女子,拥有留洋经历和博士学位的复旦大学青年教师,在与晚期癌症抗争一年又四个月后,终于撒手人寰。她带走的家人的思念和不舍,给我们留下坚强的力量。 《此生未完成》这本书是上周末聚会时 Zhen 提到的,上周京东买书就带上了。书里前半探讨作者在生死临界时对生活、工作、名利、家人、朋友的一些看法和思考。这对于刚刚毕业的我来说,确实有些是无法真切体会到的,毕竟经历少。但是在书的字里行间中,仍然可以看到一个(不知道用什么词)的女子。 (一) 疾病能让人有怎样的疼痛? 我还是没有哭,不是因为坚强,而是因为痛的想不起来哭,那个时候,只要能用尽全力顶着。如果稍微分神,我就会痛的晕厥。我不想家人看到我的痛苦。 说来惭愧的一个对比,自己在喝多时有过这样的经历:自己抱着垃圾桶使劲顶着一股劲,要是有人来给自己说话,就会分神似的使劲的呕吐。可这蚀骨之痛要比这疼痛多少倍呢? (二) 重要的是当他得知我生病消息后的第一反应,眼神表情乃至电话语气网络留言里端倪尽出,你会觉得世间很多人情世故是那么的让你淡然一笑。 在遇到大事的时候方显出真正的朋友和所谓的朋友,扬尘散土,洗沙留金。能遇到“大事”的机会不多,遇到的“大事”还能全身而退的机会就更少了。所以觉的自己应该及时去明辨所有的朋友,将真心给最真的,对于其他的就随他去吧。我不可能讨所有人喜欢,也用不着。 (三) 三十岁之前的努力更多是因为自己有着太多的欲望和执著,从没有“只要活着就好”的简单。名利权情,没有一样是不辛苦的,却没有一样可以带走。 这是一个作者很重要的一个观点。在现在的我看来,“只要活着就好”的活着,是一种精神上富有的活着,是充满智慧的活着。 就说现在的自己,什么都不曾拥有,或许不用拥有过的名、利,但是其他方面什么都没有,自己一切都是空的,看到好就会有强烈的“欲望”,如果再强烈一点就会有“执著”。在文字中我感受到了作者在精神方面的强大与富有,或许在这之后才能感受到在名、利之外更重要的东西。其实,自己真的很难想通,到底拥有什么自己就可以“苟”了,自己到底想要什么。了解自己真正想要什么真是一幸事。 作者提到的有时间,多多陪陪家人父母、有机会就尽孝,自己是很赞同的。 (四) 外公反映土豆每次经过,都趴在玻璃上看玻璃窗里的圣诞树、圣诞彩球和姜饼屋。土豆眼神里有点想,但却乖乖看着,并不讨。外公回想说:“那个眼神我想起了卖火柴的小女孩,有时候孩子听话,你却反而会心酸。” 这文字碰触心灵最柔软的地方。 (五) 你的妈妈不是懦夫,所以你的人生里,遇到珍贵的人与关键的事,都要积极争取,可以失败,但是不能放弃。我想做一个让儿子骄傲的妈妈,只此一点,无论任何地步,我都不会选择自己走,哪怕,万劫不复的痛。 (六) 更多人不会明白,我们两个的谈笑深处埋藏着多少不能言表的无声叹息。上一次见面,我和梅两个事多么风华正茂,像展翅云霄的鹰隼,挥着翅膀相约下次的冲天。这次的相逢,是灰头土脸被命运按在尘土里依然微笑的土鸡之间的问候。 (七) “为啥是我得癌症”的非学术报告,是书的精华文章。从饮食习惯、睡眠习惯、突击作业、环境问题,分析了对身体不利的因素。突击作业其实就是工作习惯。 在饮食上常吃不寻常的动物、暴饮暴食、嗜荤如命。 我们要相信聪明的祖先,几千年的智慧沉淀,才最终锁定了我们现在的食材,并在远古对他们进行豢养。如果孔雀比鸡好吃,那么现在的就是孔雀,孔雀就是鸡。 在睡眠习惯上: 二十三时至次日三时,是肝脏活动能力最强的时段,也是肝脏最佳的排毒时期,如果肝脏功能得不到休息,会引起肝脏血流相对不足,已受损的肝细胞难以修复并加剧恶化。所以“长期熬夜等于慢性自杀”的说法并不夸张。因此医生建议人们从二十三时左右开始上床睡觉,次日一至三时进入深睡眠状态,好好地养足肝血。 突击作业: 一辆平时就跌跌撞撞一直不维修的破车,一踩油门就彻夜地疯跑疯开半个月。一年搞个五六次,就是钢筋铁打的汽车,开个二十几年也到报废了。 环境问题,空气污染、水污染和食品安全危机还有那可怕的甲醛家具。 (八) 不去想控制大局小局,不想去多管闲事淡事,我不在有对手,不再有敌人,我也不在关心谁比谁强,课题也好,任务也罢,暂且放着。 也许只有正在想明白的人,才懂的世间的一切,隔岸看花、风淡云轻。

August 22, 2016 · 1 min · 36 words · Me

LeetCode Intersection of Two Arrays 349

349. Intersection of Two Arrays Given two arrays, write a function to compute their intersection. Example: Given nums1 = [1, 2, 2, 1], nums2 = [2, 2], return [2]. Note: Each element in the result must be unique. The result can be in any order. 自己的解法 使用 set 进行去重 public static int[] intersection2(int[] nums1, int[] nums2) { Set<Integer> nums1Set = new HashSet<>(); Set<Integer> set = new HashSet<>(); for (int integer : nums1) { nums1Set.add(integer); } for (int integer : nums2) { if (nums1Set.contains(integer)) { set.add(integer); } } int[] result = new int[set.size()]; int i = 0; for (int integer : set) { result[i] = integer; i++; } return result; } 别人的思路 LeetCode – Intersection of Two Arrays (Java) ...

August 22, 2016 · 1 min · 172 words · Me

LeetCode Same Tree 100

100. Same Tree Given two binary trees, write a function to check if they are equal or not. Two binary trees are considered equal if they are structurally identical and the nodes have the same value. 关于树结构自己没怎么看过,查了查遍历通常是:递归、stack 自己的解法 /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ public class Solution { public boolean isSameTree(TreeNode p, TreeNode q) { if (p == null && q == null) { return true; } if (p == null || q == null) { return false; } if (p.val == q.val) { return isSameTree(p.left, q.left) && isSameTree(p.right, q.right); } return false; } }

August 22, 2016 · 1 min · 122 words · Me

LeetCode Excel Sheet Column Title 168

168. Excel Sheet Column Title Given a positive integer, return its corresponding column title as appear in an Excel sheet. For example: 1 -> A 2 -> B 3 -> C ... 26 -> Z 27 -> AA 28 -> AB 自己的思路 十进制转“二十六进制” public String convertToTitle(int n) { String str = ""; do { int chrInt = n % 26; char chr; if (chrInt == 0) { chr = 'Z'; n -= 26; } else { chr = (char) (chrInt - 1 + 'A'); } str = chr + str; n = n / 26; } while (n != 0); return str; } 别人的思路 public String convertToTitle(int n) { if(n <= 0){ throw new IllegalArgumentException("Input is not valid!"); } StringBuilder sb = new StringBuilder(); while(n > 0){ n--; char ch = (char) (n % 26 + 'A'); n /= 26; sb.append(ch); } sb.reverse(); return sb.toString(); } 思路是一样的,但是代码更简洁,使用了StringBuilder 和 reverse(),提前减 1 也避免了特殊处理’Z' ...

August 22, 2016 · 1 min · 170 words · Me

LeetCode Excel Sheet Column Number 171

171. Excel Sheet Column Number Given a column title as appear in an Excel sheet, return its corresponding column number. For example: A -> 1 B -> 2 C -> 3 ... Z -> 26 AA -> 27 AB -> 28 自己的思路 很像是“二十六进制”转十进制 public int titleToNumber(String s) { int col = 0; char[] chars = s.toCharArray(); int i = 0; while (i < chars.length) { int charInt = chars[chars.length - 1 - i] - 64; col += Math.pow(26, i) * charInt; i++; } return col; } 在算法问题中常常用到: ...

August 22, 2016 · 1 min · 110 words · Me

【蛤蟆的油】随笔

日本民间流传着这样一个故事:在深山里,有一种特别的蛤蟆,它和同类相比不仅外表更丑,而且还多长了几条腿。人们转到它后,将其放在镜前或者玻璃箱内,蛤蟆一看到自己丑陋不堪的真面目,不禁吓出一身油。这种油,也是民间用来治疗烧伤烫伤的珍贵药材。 第一次写人文类书籍的笔记。 故事是从黑泽明一岁多光着身子洗澡开始回忆的,然后按时间,一个个小故事讲述自己。 (一) 二年级是他得到了“糖酥”这个绰号,因为有人揪他的头发,往他西装上抹鼻涕,让他哭了好几次。 想到了自己大概三四年级的一件事:一次在公交车站等车被人嘲笑嘴巴大,是陌生的同龄人。自己当时被蒙掉了,也不知道说什么或者做点什么,傻傻的,后来车来了,上车回家了。我记得我是在车上委屈的哭了。十几年来这件事我一直都记得,总是把这事归为黑历史、很怂的事,也从来没和别人讲过。我当时为什么没有还击?是被大人教育的打架不是好孩子?还是自己的胆小?还是正中下怀?细思这些都有,是太小没有自己的判断力,也缺少一份对自己信心与肯定。 要能再来我一定会把那小子打到哭。 (二) 小黑遇到了“崇尚自由、以鲜活的感性及创造精神从事教育的老师”,立川老师对智力发育缓慢、性格乖僻的他多方庇护,使他第一次有了自信。立川老师还为了使植草(小黑好友)尽快地开出灿烂的花,把植草移栽到了副班长这个盆里,而且放在向阳之处。 遇到一个能指导你成长的同学、朋友、老师、哥哥姐姐真的是一件很幸运的事情。我觉的他们在有智慧的人群里,不是瞎折腾或者很世俗。 (三) 给客人吃的鱼,鱼头朝左,鱼腹朝着客人。给剖腹者上的鱼,大概是鱼头朝右,鱼背朝着本人。或许是因为,如果让剖腹者看到剖开的鱼腹,未免太残酷了。 (四) 小黑在学剑道时,道场的主人被汽车撞了,那是汽车本来是稀罕之物,却又让这稀罕之物撞伤,简直像挨马踢一样可笑。而对道场主人的尊敬烟消云散。自己在高野佐三郎的道场在学交叉坎时,被弹回来撞到墙上,眼前一阵发黑,两眼直冒金星,对自己剑道的自豪化为乌有。 人世并不像想象的那么简单。人外有人,天外有天。自己不免是井底之蛙,总是管中窥豹。很多像这样的道理,我都听过,我也认同,可在没有遇到一件具体的事情的时候,总是看不到认不清自己的浅薄。多多经历,多多思考。 (五) 在体育课上,体育老师教跳高采取比赛的方法,撞掉竿就被淘汰下去。黑泽明刚一起跑,同学们就哄堂大笑。他们准是觉得我会头一个把横杆撞下来。出乎意料的是我轻松越过了横杆。横杆逐渐上移,然而,挑战的人中间总有我。看热闹的人们寂然无声了。不知道什么原因,居然出现了奇迹:只剩我一个人在挑战了。一个个无不呆呆地看着我。而且,只剩下我一个人之后,仍然几次跳过了横杆。也许是天使哀怜我体操课总得零分,给我的背插上了翅膀。 最后一句,写的真美。 (六) 人是可笑的,过分受惊时,头脑的一部分会脱离现实,想入非非,看起来显得十分沉着。当大地震时,抱着电线杆忍受着强烈的摇晃时,仍然想到了这些,而且非常佩服日式建筑的优越性。然而这绝不意味着我遇事沉着冷静。 (七) 没有经历过的人无法想象对人类来说何谓正真的黑暗,这黑暗又是多么的可怕。这恐怖夺走了人的正气。无论朝哪里望,什么都看不见,这是最使人感到孤立无援的地方,它使人内心深处产生了惊慌和不安,也使人处于名副其实的疑心生暗鬼状态。 好像有点像我国的“吃盐防辐射”,都是巧妙地利用黑暗对人的威胁制造的阴谋?还是易受蛊惑的人心是社会发展的过程中要的经历? (八) 结束这趟可怕的远足,当天晚上,我以为一定难以入睡,还会大做噩梦,但头刚一沾枕就到了第二天早晨。哥哥说:“面对可怕的事物闭眼不敢看,就会觉得它可怕;什么都不在乎,哪里还有什么可怕的呢?”。现在看来,那趟远足,对哥哥来说可能也是可怕的。正因为可怕,所以必须征服它。这次远足也是一次征服恐怖的远征。 可是面对了自己可怕的东西后,还是怕的原因是什么呢?是还没有正面面对? (九) 高山仰止 对有气质、有修养或有崇高品德之人的崇敬、仰慕之情。 (十) 人能把卫星送进宇宙,在精神层面却不会向上看,而是像野狗一样,只注意脚下,徘徊不已。 (十一) 后娘用艾苦我身/我为后娘买大艾/为讨她欢心。继母为什么虐待前房孩子?如果说出于憎恨丈夫的前妻而虐待其子,这是没有道理的。认为这完全出于愚昧。愚昧是人的疯狂病症之一,以虐待没有反抗能力的孩子或者小动物为乐的人,纯粹是疯子。然而这类疯子并不认为这是犯罪,却认为是理所当然,所以难以对付。我能解开绑她的带子,然而无法把她从捆绑她的境遇中救出。对这个孩子来说,人们的同情是毫无意义的。那种温情反倒给她招来更多的麻烦。 想到了打劫的故事,说:被劫持的人只要交的钱比上一人交的钱多一倍,就可以走。人争先恐后的交赎金,不再有人反抗。 (十二) 本来是红的,却不老实说它是红的,等到能坦率说出来的时候,已经到了晚年。很多人年轻时表现欲过强,这样反倒迷失了自己。我也毫不例外,拼命的考技巧作画,那画的俗气使我对自己心生憎恶,逐渐丧失了对自己才能有的信心,把绘画看作痛苦了。为了买油彩和画布还得干些不愿干的杂活儿赚钱才行。 少搞些套路,玩花活,踏踏实实才是真。别瞎折腾,没有用。 (十三) 产生这种急于就业的焦虑和降格以求的心情,主要是以为哥哥突然去世,我要继他之后负起长子的责任。 在年初有类似的经历,最后一个学期,都找工作去了,也要毕业要长大了,急着确定个工作。其实现在也着急着,想快有所作为。前几日,看到好友暗叶的朋友圈发:年轻人想法没多,都是还得慢慢来。我初看是不赞同。黑泽明的父亲也告诫他说:“不要着急,也没有着急的必要”,“要等下去,前面的道路自然会打开的”。这些话我确实还不太理解为什么,得慢慢的体会。 (十四) 凡事想用人的,必须先培养人。培养出人,激发出人的才能,这才能用。 纷扰的现在,还有多少人或公司愿意培养人?应该说人培养应该是必须的。 (十五) 山本先生对于追随他的副导演,绝不干改变他们个性的事,而是一心一意的着力于发掘他们的个性;而且丝毫不让我们有从师学习的拘束心情,而是让我们充分的发展自己。 山本先生为了培养副导演,不惜牺牲自己的作品。 “那是卖香荷包的招牌。随随便便说话可不行!不知道的事情就该说不知道!” (十六) 提出批评不难。但是,提出批评的人能够按照自己的批评意见亲自把剧本改好,却不是普通人能做到的事。 太有同感了,常常有人在旁边指手画脚,却说不出什么切实可行的办法建议。 (十七) 人往往习惯于认为价值与辛苦成正比。这在电影界剪辑上是最要不得的。人们说电影是时间的艺术,所以,没有用的时间就应删去。 这观点在互联网行业也行的通,做好的功能不合适了,说废也就废掉了。 (十八) 我常常把群众演员的名字忘掉,所以只好按他们的衣服颜色招呼。结果被山本先生训了几句:“黑泽明,那可不行。人都有个名嘛!”。名不见经传的演员听到山本先生如此亲切的招呼他,无不感到。难道能说山本先生有些滑头吗?我看应该说他善于用人。 自己还不是什么重要人物,但是记住别人的名字应该是件重要的事情。 (十九) 关于演员的关键问题主要有以下几点:第一,人很难了解自己,不能客观的观察自己的说话方式和行为举止。第二,凡事有意识的动作,首先注意的不是动作本身,而是意识。第三,教给演员怎么做,同时必须告诉他为什么怎么做,而且让他充分理解、心悦诚服。 做事情的时候应该反向考虑第三点,为什么要怎么做事情?目的是什么? (二十) 电影评论家中冲有这样的人,看到电影中一些自己认为是缺点的地方就如获至宝,大发谬论,但是电影导演也乐于此道可就错了。 现在这样的人越来越多,哗众取宠。 (二十一) 他们以为一部卖座影片的续集也必然会成功,于是不想再开拓新的领域,总想旧梦重温。重拍的影片绝不如前作,这虽然是已经证明的事实,但他们还要重蹈覆辙,这才是地地道道的愚蠢之举。 学习新东西,找新路子。 (二十二) 我为了抵抗人的苦恼,戴上一幅强者的面具;而植草却为了沉溺与人的苦恼,戴上了一幅弱者的面具。事实不过如此。但这只是表面的不同,就本质来说。我们都是弱者。我不是特别的人。我既不是特别强的人,也不是得天独厚的有特殊才能的人。我不过是个不愿示弱于人,不愿输给别人,因而不懈努力的人。 ...

August 17, 2016 · 1 min · 82 words · Me

LeetCode Move Zeroes 283

283. Move Zeroes Given an array nums, write a function to move all 0’s to the end of it while maintaining the relative order of the non-zero elements. For example, given nums = [0, 1, 0, 3, 12], after calling your function, nums should be [1, 3, 12, 0, 0]. Note: You must do this in-place without making a copy of the array. Minimize the total number of operations. 大体意思 将数组中 0 元素移动到数组的末尾,不改变其他元素的顺序;不能 copy 数组,最小化的操作 ...

August 16, 2016 · 2 min · 248 words · Me

LeetCode Ransom Note 383

383. Ransom Note Given an arbitrary ransom note string and another string containing letters from all the magazines, write a function that will return true if the ransom note can be constructed from the magazines ; otherwise, it will return false. Each letter in the magazine string can only be used once in your ransom note. Note: You may assume that both strings contain only lowercase letters. ...

August 11, 2016 · 2 min · 221 words · Me

写一些人文的日志

还是越来越觉的思想重要。每周给自己博客的计划是写三篇,稍稍改动下:其中一篇要是关于思想上的。 周末的时候和北京的朋友们:龙、梦、思,小聚了下。问起毕业一个月感觉有啥变化,都说没啥。是,刚刚才一个月。可我心里却有些小慌张,总想搞个大新闻,让自己不那么平凡。是眼高手低吗? 现在每天都会跑跑步,已经坚持了 6 天了也习惯了,挺赞的。也总是去了解新鲜的东西技术,并且尝试运用它们,才有点原来学长们不喜欢用用过的东西做事情的劲。关于英语的学习,现在找到一个法:阅读英文的技术教程或者技术文档。这些东西肯定和计算机有关,也写的比较通俗,感觉挺有收获的。 最近状态还不错,就是晚上想看会书,可眼睛挺累的。职业生涯的第一个月,经济有些困难。想参与个开源项目。现在手头项目就自己一个人在编,有点孤独,也不知道自己设计的和写的哪里好哪里不好。还有就是在 GitHub 或者 StackOverflow 有人给自己点赞,感觉挺激动的。 因为公司都是 Google 的服务,出门很方便,GitHub 也用的越来越多。时不时总能搜到、看到很多工程师写的博客,有教程、有分享,还有我最喜欢看的:他们的思想。我觉的他们现在都是比我棒的,我想知道他们是怎么想的、怎么解决问题、怎么看待问题、看待工作生活。 最后毒奶一口自己: 与那些名校的同学的差距不是毕业后的薪水,也不是学业水平的差距,而是一种思维方式与做事标准。 对自己的标准会不由自主的降低以适应这个环境,减少自身与环境的冲突,在一个低标准下,自觉“满意”的度过每一天。 为什么名企喜欢要名校的学生?其实名企要的不是多么高的 GPA 成绩,而是一种内在的精神状态。他们的辛苦不叫辛苦,也不为百万年薪。辛苦是他们获得自我实现的途径,自我是实现使他无穷快乐。这世界就是一拨人在昼夜不停的高速运转,另一拨人起床发现世界变了。 我们大部分人的工作和生活状态是怎样的呢? 上班稍微努力点就开始讲究公平,自己不得志就开始抱怨公司和领导,下班后看几页书就觉得自己特别上进,辛苦上几天就觉得自己要赶紧去享受一下生活了,加几天班就担心自己会过劳死。 遇到些鸡毛蒜皮的小事儿就郁郁寡欢,仿佛遇到了天大的人生难题磨磨唧唧解决不清。看见牛逼的人也会心生羡慕,但总也突破不了努力却总不得要领魔咒。 越能干,越努力;越有钱,越上进 而造成这一切的差异,最主要的来自人的精神内核。 你要用牛人的标准要求自己,不断的走到牛人当中去,拉近和牛人之间的距离。当你觉得自己能够成为他们中的一员的时候,你才能成为了真正的牛人。 成功?我才刚上路呢。 – EOF –

July 11, 2016 · 1 min · 30 words · Me