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 · 246 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

IMOOC 与 MySQL 的零距离接触

涵盖全部 MySQL 数据库的基础,MySQL 数据库的基础知识、数据表的常用操作及各种约束的使用,以及综合的运用各种命令实现记录进行 CURD 等操作。 MySQL 安装与配置 数据类型 流程控制与运算符 DDL、DCL、DQL、DML 常用函数 表类型(存储引擎) 图形化工具 修改 MySQL 提示符 MySQL 客户端的默认提示符是 mysql>,基本上没什么实际作用。其实可以修改这个提示符,让它显示一些有用的信息,例如当前所在的数据库等。修改方法有四种,其中前两种只对当前连接有效,后两种则对所有连接有效。 连接客户端时通过参数指定 mysql --prompt="(\u@\h) [\d]> " my.cnf [mysql] prompt=mysql(\\u@\\h:\\d)> 这样提示符就会变成 (user@host) [database]>。其中常用的字符参数有: \D 完整的日期 \d 当前数据库 \h 服务器名称 \u 当前用户 连接上客户端后,通过 prompt 命令修改 prompt (\u@\h) [\d]> 在 MySQL 的配置文件中配置。 prompt=(\\u@\\h) [\\d]>\\_ 通过环境变量配置。 export MYSQL_PS1="(\u@\h) [\d]> " 参考:http://renial.iteye.com/blog/773675 MySQL 语法规范 关键字和函数名称全部 大写 数据库名称,表名称,字段名称全部 小写 SQL 语句必须以 分号结尾 数据库操作 数据库创建:CREATE 语法:CREATE {DATABASE SCHEMA} [IF NOT EXISTS] db_name [DEFAULT] CHARACTER SET [=] charset_name DATABASE 和 SCHEMA 是相同的,任选其一 IF NOT EXISTS:如果创建的数据库存在,则不只报出 warning,不写会报错 CHRARCTER SET utf8:为表设置编码方式,如果不设置则用 mysql 默认的编码方式 查看数据库列表:SHOW SHOW { DATABASE SCHEMAS } [LIKE ‘pattern’ WHERE expr] SHOW CREATE DATABASE xx:显示 xx 数据库信息 数据库的修改:ALTER 修改数据库编码方式:ALTER { DATABASE SCHEMAS } [db_name][default] CHARACTER SET [=] charset_name 删除数据库:DROP 删除数据库:DROP { DATABASE SCHEMAS } [IF EXISTS] db_name; --修改mysql操作符为当前日期 mysql -uroot -proot prompt \D --展示所有数据库 show databases; --创建数据库 create database if not exists t1 character set gbk; --展示数据库t1的创建命令和编码形式 show create database t1; --修改数据库编码格式 alter database t2 character set = utf8; --删除数据库 drop database if exists t1; --展示警告信息 show warnings; 四、数据类型 ...

July 31, 2016 · 3 min · 508 words · Me

IMOOC MySQL 开发技巧

主要涉及:JOIN 、JOIN 更新、GROUP BY HAVING 数据查重/去重。 INNER INNER JOIN、LEFT JOIN、RIGHT JOIN、FULL JOIN(MySQL 不支持)、CROSS JOIN 这是在网上找到的非常好的一篇博文,图解 JOIN 语句: CODING HORROR-A Visual Explanation of SQL Joins 下图可以很清楚的明白,JOIN 的数据选取范围: 更新使用过滤条件中包括本身的表 更新 t1 t2 表中 col_a 重复的字段: UPDATE t1 SET col_a = 'hi' WHERE t1.col_a IN ( SELECT b.col_a FROM t1 a INNER JOIN t2 b on a.col_a = b.col_a ) ; ERROR:1093 可转换为: UPDATE t1 aa JOIN( SELECT b.col_a FROM t1 a INNER JOIN t2 b on a.col_a = b.col_a )bb on aa.col_a= bb.col_a SET col_a = 'hi' ; 查询重复数据、删除重复数据 利用 GROUP BY 和 HAVING 查询重复数据: ...

July 25, 2016 · 1 min · 142 words · Me

写一些人文的日志

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

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