- 博客(25)
- 资源 (1)
- 收藏
- 关注
原创 合法的ipv4地址:对比大师级代码
如题,ipv4地址的“点分十进制”的格式是:1.2.3.4,十进制的数字必须在[0, 255]之间。先po我自己的代码,再对比大师们的代码。
2016-08-31 17:55:32 3920
原创 Google笔试:Watson and Intervals
这是今年(2016)google校招的笔试题(Round B的C题),难度比acm的低,但是也不简单。 题意:给你一堆区间,让你选择一个来去掉,使得剩下的区间覆盖到的整数点最少。
2016-08-30 13:04:10 1051
原创 区间覆盖与合并
问题最近打google的apactest,遇到一个经典的(但我不熟的)问题——给你一堆整数区间(比如[1, 3], [2, 6], [8, 10]),问它们合并后是怎样的? 比如上述三个区间合并后就变成:[1, 6], [8, 10]。这个问题在leetcode上的难度评级是Hard,简直亮瞎啊,其实并不难呀。
2016-08-30 11:31:29 5905 1
原创 《剑指offer》:自己写一个pow函数
今天打google在codejam上办的apactest,成绩还行吧(最后排名540),第二题逗比了,自己逻辑后来理清楚,但是代码还是原来的想法,wa了两次才找到了bug。 第二题需要实现一个整数的pow函数,之前只会递归的写法,今天学会了迭代的写法,回想《剑指offer》里也有类似的东西,所以整理成这篇博客。
2016-08-30 10:58:50 3506
原创 算法导论:红黑树
算法导论的红黑树讲解很好,插入的调整比较容易懂,但是删除的调整就有点难懂了,书里也没证明为什么那样做就能够保持性质(留做练习题了),虽然可以理解过程。比较好玩的一点是,比较上次写的二叉搜索树,随机插入1000000个结点是二叉搜索树高度为48(不稳定,很容易变到50+),而红黑树的高度为24(很稳定)!而log2(1000000) = 20,也可以说明红黑树的平衡性确实是比较好的!
2016-08-26 20:42:54 821
原创 算法导论:二叉搜索树模板
今天看了算法导论的第12章《二叉搜索树》,觉得里面的过程的伪代码很精巧,过程讲解也很仔细易懂,所以就写下这个二叉搜索树模板。树类数据结构的关键操作是插入和删除,查找和遍历相对而言技巧性和难度一般吧。
2016-08-25 19:13:17 685
原创 《剑指offer》合并两个有序的数组
题意:给定两个升序的数组,v1有足够的空间可以容易v1和v2的所有元素。要求将v1和v2的元素合并成一个升序的数组,并且时间复杂度为O(n+m),而空间复杂度为O(1)。
2016-08-24 19:37:17 1777 1
原创 《剑指offer》4:替换空格
题意:给定一个字符串,将其中的所有空格都替换成”%20”三个字符,比如“I am happy.”将会变成”I%20am%20happy.”,假设给定的指针所指向的内存是够用的,然后O(1)空间和O(n)时间。
2016-08-24 19:19:38 552
原创 Leetcode:Find Minimum in Rotated Sorted Array II
Leetcode:Find Minimum in Rotated Sorted Array II,第二版本只是多了一个限制:数组里可以有重复的元素
2016-08-24 12:11:33 431
原创 Leetcode: Find Minimum in Rotated Sorted Array
题意:定义翻转有序数组:一个升序数组,从中间某个元素切开,把左右两部分互换位置。 比如[1, 2, 3, 4, 5, 6, 7]从3处切开……
2016-08-24 11:46:58 500
原创 leetcode: Combination Sum III
题意:给定数字的个数k和总和n,要求从[1-9]中选取k个各不相同的数字组合,其总和刚好等于n,返回所有组合情况思路无脑DFS,即使遍历所有情况,也就是O(n^k)。
2016-08-23 23:18:24 616
原创 leetcode: String to Integer (atoi)
String to Integer (atoi),这道题放在leetcode上,多了一些需求,要求处理非法字符,其实是经典的字符串提取操作。
2016-08-23 17:38:51 590
原创 《剑指offer》45:约瑟夫问题
约瑟夫问题这个问题太经典了,就是n个人围成一圈,编号依次为0,1,…,n-1,每m个人取一个人退出游戏,求最终剩下的人的编号是多少?思路1:模拟自己随便手写个循环链表来模拟(不过写得太丑啦)思路2:用数学推导规律
2016-08-22 16:08:36 474
原创 《剑指offer》44:扑克牌里的顺子
问题给定一个5个元素的数组(范围0-13,对应扑克牌的),其中0可以代表任何数字,求这5个数字能否组成一个顺子(即连续的5个数字,如2,0,4,5,0可以表示2,3,4,5,6)
2016-08-22 15:43:58 464
原创 《剑指offer》43:n个骰子的点数
这道题其实也不难,递归的想法很简单,之所以写这篇博客,是因为我觉得书中的递归代码写得有点混乱(并没有贬低作者的意思),所以贴一下我自己认为比较好的写法
2016-08-22 13:52:16 728
原创 《剑指offer》42:翻转单词顺序
这个单元有两道题,都是字符串操作,挺简单的,不过如果没经历过思考的过程,可能就不是那么容易了,简单 != 容易
2016-08-21 19:53:13 845
原创 打印所有和为s的连续正整数序列(至少含两个数)
今天看了《剑指offer》里的这道题,发现如果利用好等差数列的性质,其实可以有更好的解法!题意比如,s=15,那么应该输出以下三个序列: 7 + 8 = 15 4 + 5 + 6 = 15 1 + 2 + 3 + 4 + 5 = 15剑指offer的解法从1开始,枚举序列的第一个数字,然后顺序递增,直到找到或超过了s。 比如s=9,那么搜索过程是: start=1, end=2
2016-08-15 14:29:58 591
原创 Java初始化非静态成员的时机
今天看到这篇文章吓了一跳,因为之前看过《Effective C++》,C++在构造函数里调用虚函数的结果是undefined,即结果不可预测。那java呢?假设我告诉你一个事实: Java支持在构造函数里调用虚函数也就是说,在下面的代码中,调用Base()时,会调用Derived::pre
2016-08-13 21:15:00 877
原创 大整数类-实现加减法
上次写了一个“无符号大整数加法”,是比较容易的,这次实现了完整的大整数的加减法,支持有符号的!不过实现起来感觉不是很顺畅,感觉可以优化的地方还很多,先贴一下代码,日后再来优化。另,思路主要是模拟手算的过程,计算方式在注释里有说清楚。
2016-08-03 20:08:12 2051
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人