自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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: Gray Code

题意:使用镜像法构建格雷码序列。

2016-08-24 15:43:47 535

原创 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

原创 最近发现的C++的几个“黑科技”

delete[]的析构顺序是?常量指针和指针常量傻傻分不清楚?听说引用可以用指针来模拟?

2016-08-18 15:58:52 1994

原创 wc:统计一个文件里出现某个单词出现的次数

今天碰到一道题是问如何统计一个文件里出现某个单词出现的行数

2016-08-17 23:06:32 11532 2

原创 观察者模式与依赖反转原则

最近写了一个“休息吧,程序员”的小工具,用到了观察者模式,感觉自己的理解还不够深入,借此机会稍微深入学习一下。

2016-08-17 00:08:45 1528

原创 打印所有和为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

原创 为什么C++里空的类还占一个字节?

其实这个问题本身没什么意义,只是探究C++对象内存模型的一个敲门砖,我自己觉得是挺有趣的~

2016-08-14 23:26:36 2644

原创 堆和栈的区别

这是一个经典的问题了,最近看到了一篇好文章,下面用表格总结一下自己的笔记

2016-08-13 23:10:21 428

原创 Java初始化非静态成员的时机

今天看到这篇文章吓了一跳,因为之前看过《Effective C++》,C++在构造函数里调用虚函数的结果是undefined,即结果不可预测。那java呢?假设我告诉你一个事实: Java支持在构造函数里调用虚函数也就是说,在下面的代码中,调用Base()时,会调用Derived::pre

2016-08-13 21:15:00 877

原创 大整数类-实现加减法

上次写了一个“无符号大整数加法”,是比较容易的,这次实现了完整的大整数的加减法,支持有符号的!不过实现起来感觉不是很顺畅,感觉可以优化的地方还很多,先贴一下代码,日后再来优化。另,思路主要是模拟手算的过程,计算方式在注释里有说清楚。

2016-08-03 20:08:12 2051

检查整形溢出的计算器

一个检查Int类型运算时是否溢出的代码,再送一个生成从1到n的全排列的代码,够意思吧,还0积分就可下载!!!我叫Jacket

2014-06-23

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除