自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(162)
  • 资源 (1)
  • 收藏
  • 关注

原创 Redis源码:dict数据结构(实现)

本文分析的是src/dict.c文件,即dict的实现

2017-04-07 22:33:05 984

原创 Redis源码:dict数据结构(声明)

Redis的dict,译为“字典”,犹如Python里的字典,底层是用哈希表实现的,好的实现可以达到O(1)的时间复杂度。

2017-04-06 18:07:27 964

原创 Redis源码阅读计划

前人已经解读过很多了,我并不是想超越前人,而是想自己学习一遍。

2017-04-06 14:34:16 1756 2

原创 怎么多了一个typename?

怎么多了一个typename?

2017-02-09 17:54:13 568

原创 可随机访问的队列

最近在做毕设,关于手势识别的,自己yy了一种算法,实现里面为了方便,需要一种可供我随机访问的大小固定的队列

2017-02-09 17:10:10 2477

原创 virtualenv和它的原理

一起研究一下virtualenv是如何做到隔离各个版本的python环境的!

2017-02-09 10:52:28 4223 1

原创 图的两种表示和接口

常读常新,这里多分析了三个点: 1. 两种表示方式在另一个维度的比较; 2. 一种复杂应用场景下的取舍办法; 3. 经典表示方法之外的黑科技。

2017-02-05 09:05:45 1347

原创 HTTPS从入门到弃疗(1)

先谈谈基础的一些加密通信的常识

2017-02-04 19:51:04 527

原创 微信红包知多少

再看微信红包,略算法,观后台

2017-01-31 17:20:55 1260 2

原创 ubuntu的wifi掉线之后没法连接

ubuntu的wifi连接一直有问题……

2017-01-11 19:19:07 1734

原创 话说智能指针发展之路

动态创建内存的管理太麻烦,于是乎,这个世界变成11派人: 一派人勤勤恳恳按照教科书的说法做,时刻小心翼翼,苦逼连连; 一派人忘记教科书的教导,随便乱来,搞得代码处处bug,后期维护骂声连连; 最后一派人想了更轻松的办法来管理动态申请的内存,然后悠闲唱着小曲喝着茶~

2016-11-25 23:16:10 3311 5

原创 shared_ptr循环引用的例子及解决方法示例

之前看到循环引用的时候,总是只能看到一个很简单的例子,我觉得挺没意思,因为没有实际的意义,就想找个好点的例子来分享。所以,这篇文章将专注于展示一个更实际点的例子来说明实际工作中确实会碰到shared_ptr的循环引用的问题,然后再展示如何使用weak_ptr来解决。

2016-11-25 22:29:20 7737 2

原创 ubuntu没声音?

前言:我装了双系统(目前是win10 + ubuntu 16.04),经常会遇到耳机没声音,或者扬声器没声音的情况。在win10那边也会有。

2016-10-29 16:56:07 1895 1

原创 马走日

在一个8*8的空白棋盘上,马的行走规则是”日“字形,也就是有8个方向可以走。给定棋盘上的两个点P和Q,求解一条路线从P到Q。

2016-09-21 22:00:28 4506

原创 快速排序怎么写?

介绍快速排序有两种经典的写法,复杂度对比,以及优化的讨论。

2016-09-18 01:54:38 3415 2

原创 在单链表上实现插入排序

问题:给单链表排序(升序排列,要保持稳定性),要求通过改变结点的next指针从而改变结点的位置,而不是只交换结点的值来使得其有序!时间复杂度为O(N^2),空间复杂度为O(1)。

2016-09-17 20:10:29 9974 2

原创 单例模式:茴香豆的七种写法

之前看一个朋友在学Java,顺口问他,你会设计模式吗? 他说知道一点吧。 然后我就问,那你会几种单例模式的写法吗? 他说,你这个孔乙己。

2016-09-17 17:58:22 2117

原创 用迭代实现归并排序

最近在知乎上看到一个帖子,总结了各种常见的排序算法,并用python一一实现了,不过归并排序的迭代写法,题主说他不会写,我就试了一下,其实很简单。下面会先分析递归的时候实际上做了哪些事,然后迭代如何重现这些事。先用C++写,因为估计看这篇博客的大部分人对C++比较熟,最后会分享python的版本,实现过程基本一模一样。

2016-09-08 15:55:18 6832 2

原创 C++四舍五入保留N位小数

最近遇到这个问题,不难吧,不过搜网上的东西,没看到比较合心水的答案,自己搞了两种做法,请君侧耳为我听。

2016-09-04 20:55:15 31356 11

原创 合法的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 1050

原创 区间覆盖与合并

问题最近打google的apactest,遇到一个经典的(但我不熟的)问题——给你一堆整数区间(比如[1, 3], [2, 6], [8, 10]),问它们合并后是怎样的? 比如上述三个区间合并后就变成:[1, 6], [8, 10]。这个问题在leetcode上的难度评级是Hard,简直亮瞎啊,其实并不难呀。

2016-08-30 11:31:29 5904 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 684

原创 《剑指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 534

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

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

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

2016-08-17 00:08:45 1527

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

检查整形溢出的计算器

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

2014-06-23

空空如也

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

TA关注的人

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