知之可否

Be yourself; everyone else is already taken.​

剑指offer:两个链表的第一个公共结点

题目描述输入两个链表,找出它们的第一个公共结点。/* struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { } };*...

2016-04-28 15:45:11

阅读数:269

评论数:0

剑指offer:数组中的逆序对

题目描述在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。class Solution { public: int InversePairs(vector<int> data) { int ...

2016-04-28 15:04:20

阅读数:374

评论数:0

剑指offer:丑数

题目描述把只包含因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。class Solution { public: int GetUglyNumber_Solution(...

2016-04-27 22:18:42

阅读数:344

评论数:0

剑指offer:把数组排成最小的数

题目描述输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。class Solution { public: /* static bool myCmp(stri...

2016-04-27 16:37:23

阅读数:218

评论数:0

剑指offer:最小的K个数

题目描述输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。方法一O(n)改变输入,适合小数据class Solution { public: vector<int> GetLeastNumbers_Solu...

2016-04-26 22:58:32

阅读数:276

评论数:0

剑指offer:数组中出现次数超过一半的数字

题目描述数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。方法1利用快排的partionclass Solution { public: ...

2016-04-26 21:22:09

阅读数:348

评论数:0

理解TCP为什么需要进行三次握手(白话)

转自 http://www.cnblogs.com/yuilin/archive/2012/11/05/2755298.html 首先简单介绍一下TCP三次握手     在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。 第一次握手:建立连接时,客户端...

2016-04-26 20:05:06

阅读数:242

评论数:0

TCP协议三次握手过程分析

TCP(Transmission Control Protocol) 传输控制协议 TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接: 位码即tcp标志位,有6种标示:SYN(synchronous建立联机) ACK(acknowledgement ...

2016-04-26 19:59:26

阅读数:238

评论数:0

TCP协议中的三次握手和四次挥手(图解)

转自http://blog.csdn.net/whuslei/article/details/6667471 建立TCP需要三次握手才能建立,而断开连接则需要四次握手。整个过程如下图所示: 先来看看如何建立连接的。 首先Client端发送连接请求报...

2016-04-26 19:54:55

阅读数:213

评论数:0

剑指offer:二叉搜索树与双向链表

题目描述输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。1.递归/* struct TreeNode { int val; struct TreeNode *left; struct TreeNode *ri...

2016-04-25 22:28:33

阅读数:252

评论数:0

剑指offer:复杂链表的复制

题目描述输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点)。/* struct RandomListNode { int label; struct RandomListNode *next, *random; Rand...

2016-04-25 11:53:46

阅读数:232

评论数:0

剑指offer:二叉树中和为某一值的路径

题目描述输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。/* struct TreeNode { int val; struct TreeNode *left; struct Tre...

2016-04-24 21:32:26

阅读数:343

评论数:0

剑指offer:二叉搜索树的后序遍历序列

题目描述输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。class Solution { public: bool VerifySquenceOfBST(vector<int> sequ...

2016-04-24 20:05:50

阅读数:252

评论数:0

剑指offer:栈的压入、弹出序列

输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。class Solution { ...

2016-04-24 14:48:06

阅读数:280

评论数:0

剑指offer:树的子结构

题目描述输入两颗二叉树A,B,判断B是不是A的子结构。这题有点难注意if (pRoot2 == NULL){ return true; }if (pRoot1 == NULL){ return false; } 注意着两个顺序不能换,换了就出错。/* struct TreeNode...

2016-04-23 15:44:35

阅读数:276

评论数:0

剑指offer:反转链表

题目描述 输入一个链表,反转链表后,输出链表的所有元素。 1.非递归 /* struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NUL...

2016-04-22 23:24:41

阅读数:344

评论数:0

ip数据包经由路由转发的时候源ip,目的ip是否改变

ip数据包经由路由转发的时候源ip,目的ip是否改变?最近面试网络方面的经常问到这个问题,答案是不能改变的,*除非做了nat转换才能改变。不过mac地址是变化的,因为发送端开始不知道目的主机的mac地址,所以每经过一个路由器mac地址是变化的。目的mac地址是如何得到的?TCP/IP里面是用的AR...

2016-04-21 23:01:30

阅读数:7250

评论数:1

剑指offer:数值的整数次方

方法一:见幂模class Solution { public: double Power(double base, int exponent) { if(base==0 && exponent<0){ throw new std...

2016-04-21 17:33:50

阅读数:434

评论数:0

ip首部校验和计算

IP首部校验和的计算方法:   1.把校验和字段清零。   2.然后对每16位(2字节)进行二进制反码求和,反码求和的意思是先对每16位求和,再将得到的和转为反码。   接下来详细描述反码求和的步骤:看下面的代码   算法: SHORT checksum(USHORT* buffer, ...

2016-04-21 16:36:08

阅读数:2087

评论数:0

lintcode: Largest Rectangle in Histogram

Given n non-negative integers representing the histogram’s bar height where the width of each bar is 1, find the area of largest rectangle in the his...

2016-04-18 22:14:45

阅读数:311

评论数:0

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