自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

biezhihua的专栏

不积跬步,无以至千里;不积小流,无以成江海

  • 博客(30)
  • 收藏
  • 关注

原创 计算机网络-Web页请求的历程

准备:DHCP/UDP/IP和以太网启动主机MacBook,用一根以太网电缆连接到学校的以太网交换机,交换机又与学校的路由器相连.学校的这台路由器与一个ISP链接,此IPS还提供了DNS服务.所以DNS服务器驻留在Comcast网络中而不是学校网络中.假设DHCP服务器运行在路由器中.当主机与网络连接时,没有IP地址就不能做任何事情,例如下载一个Web网页.所以主机采取的一个网络相关的动作是运行DH

2016-08-31 00:17:29 1329

原创 Android中如何处理耗时操作,AsyncTask有什么不足之处.

Android中处理耗时操作的基本思路为将耗时的操作放到非UI线程执行.常用的是AsyncTask,Handler,Thread,Executors等.关于放在非UI线程处理的思路大概有这样几种,一种是每次耗时操作启动一个线程,代价比较大,另一种是将所有的一部分放入队列,有一个或者几个线程去执行,例如HandlerThread和AsyncTask.AsyncTask使用起来比较轻量,但是自身也存在一

2016-08-30 10:48:18 2984 1

原创 剑指-数字在排序数组中出现的次数

题目: 统计一个数字在排序数组中出现的次数. 例如输入排序数组{1,2,3,3,3,3,4,5},由于3在这个数中出现了4次,输出4.

2016-08-28 10:43:13 2156

原创 剑指-在字符串中找出第一个只出现一次的字符

题目: 在字符串中找出第一个只出现一次的字符. 如输入abaccdeff,则输出b

2016-08-26 18:06:54 764

原创 剑指-丑数

题目: 我们把只包含因子2,3,5的数称为丑数(ugly number). 求从小到大的顺序第1500个丑数. 例如6,8都是丑数,但是14不是,因为它包含因子7.习惯上我们把1当做一个丑数.

2016-08-26 17:28:55 961

原创 剑指-数组中出现次数超过一半的数字

题目: 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字. 例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2} 由于数字2在数组横纵出现了5次,超过数组长度的一半,因此输出2.

2016-08-26 15:25:41 768

原创 剑指-字符串排列

题目: 输入一个字符串,打印出该字符串中字符的所有排列. 例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,nca,cab,cba.思路: 首先求出所有可能出现在第一个位置的字符,即把第一个字符和后面的字符交换. 第二步固定第一个字符串,求后面所有字符的排列. 这个时候扔把后面的所有字符分成两部分:后面字符的第一个字符,以及这个字符之后的所有字符.

2016-08-26 14:59:59 755

原创 剑指-从上往下打印二叉树

题目: 从上往下打印二叉树的每个结点,同一层的结点按照从左到右的顺序打印.

2016-08-26 13:25:01 722

原创 剑指-栈的压入和弹出序列

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

2016-08-25 16:24:12 471

原创 剑指-包含min函数的栈

题目: 定义栈的数据结构,请在该类型中实现一个能够的得到最小的min函数,在该栈中,调用min,push,pop函数都是O(1)时间复杂度.思路: 可以把每次的最小元素(之前的最小元素和新压入栈的元素两者较小值)都保存起来放到另外一个辅助栈中. 如果每次都把最小元素压入辅助栈,就能保证辅助栈的栈顶元素一直都是最小元素.当最小元素从数据栈内被弹出之后,同时弹出辅助栈的栈顶元素, 此时辅助栈的

2016-08-25 15:33:23 644

原创 剑指-二叉树镜像

题目: 请完成一个函数,输入一个二叉树,该函数输出他的的镜像.思路: 先序遍历这棵树的每个结点,如果遍历到结点有子结点,就交换它的两个子结点, 当交换完所有非叶子结点的左右结点之后,就的到了树的镜像

2016-08-25 15:11:55 689

原创 剑指-判断一个单向链表是否形成了环形结构

题目: 判断一个单向链表是否形成了环形结构. 思路: 定义两个指针,同时从链表头部出发,一个指针一次走一步,另一个指针一次走两步.如果走的快的指针追上了走的慢的指针,那么链表就是环形链表. 如果走的快的的走到了链表尾部都没追上第一个指针,那么链表就不是环形链表.private static class Node { int value; Node next;}static boo

2016-08-25 14:35:22 1886

原创 剑指-求链表中间结点

题目: 求链表中间结点.如果链表中结点总数为奇数,则返回中间结点.如果链表中结点总数为偶数,则返回中间两个结点任意一个.思路: 为了解决这个问题,可以定义两个指针,同时从链表的头结点出发,一个指针一次走一步,另一个指针一次都两步. 当走的快的走到链表末尾时,走的慢的正好在链表中间.

2016-08-25 11:49:12 782

原创 剑指-链表中倒数第k个结点

题目: 输入一个链表,输出该链表倒数第K个结点. 为了符合大多数人的习惯,本题从1开始计数,即尾结点是倒数第1个结点. 例如一个链表有6个结点,从头结点开始他们的值依次是1,2,3,4,5,6. 这个链表的倒数第3个结点的值为4的结点.

2016-08-25 11:23:39 671

原创 剑指-调整数组顺序使奇数位于偶数前面

题目: 输入一个整数数组,实现一个函数来调整该数组中数组的顺序, 使得所有奇数位于数组的前半部分,所有偶数位于奇数的后面.

2016-08-25 10:59:31 730

原创 剑指-旋转数组的最小数

把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转. 输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素. 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1.

2016-08-24 23:28:31 536

原创 剑指-用两个栈实现队列

题目:用两个栈实现一个队列,请实现在队列尾部插入结点和在队列头部删除结点的功能

2016-08-24 15:37:43 433

原创 剑指-重建二叉树

输入二叉树的前序遍历和中序遍历的结果,请重建出该二叉树. 假设输入的前序遍历和中序遍历的结果都不含重复的数字. 例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6}, 则重建出二叉树,并输出头结点.

2016-08-24 14:54:55 466

原创 剑指-替换空格

题目: 请实现一个函数,把数组中的每个空格替换成%20,例如:输入bie zhi hua,则输出bie%20zhi%20hua算法思路: 先遍历一次字符串,统计出字符数组中空格数量,并计算出替换后的总长度。 然后,从字符数组末尾开始复制和替换。由于所有的字符只移动一次,所以这个算法的时间效率为O(n)public static void main(String[] args) { cha

2016-08-23 18:09:00 498

原创 剑指-二维数组查找

题目: 在一个二维数组中 每一行都按照从左到右递增的顺序排序 每一列都按照从上到下递增的顺序排序。 请完成一个函数,输入一个整数,判断二维数组数组中是否有该数。思路:(查找的很小在于有效的缩小范围) Key{Key} = 要查找的数字 Valuexy{Value}_{xy} = 从数组中取出的数字 首先会把二维数组化成一个矩形,然后从数组中选取一个数字,分三种情况查找。 1.

2016-08-23 17:55:00 427

原创 计算机网络-TCP/UDP区别

特点 UDP TCP 控制 应用程序将数据传递给UDP,UDP就会将此数据打包进UDP报文段,立即将其传递给网络层。 TCP有一个拥塞控制协议,当源和目的间的一条或多条链路变得拥塞时会遏制TCP发送方。TCP仍将继续发送数据报文知道主机收到此报文并加以确认,不管交付时间有多长。 是否需要建立连接 UDP不需要任何准备即可进行数据传输,因此不会有连接时延。这是DNS使用UDP

2016-08-23 16:41:38 1264

原创 计算机网络-三次握手/四次挥手

TCP报文段如何建立一条TCP连接客户中的TCP会用以下的方式与服务器中的TCP建立一条TCP连接:第一步:客户端的TCP首先向服务端的TCP发送一条特殊的TCP报文段。该报文段中不能包含应用层数据。但是在报文段的首部中的一个标志位,SYN比特被置为1。 因此,这个特殊报文段被称为SYN报文段。另外,客户端会随机的选择一个初始序号(client_isn),并将此编号放置于该起始的TCP SYN报

2016-08-23 15:57:27 1071

转载 三种快速排序以及快速排序的优化

三种快速排序以及快速排序的优化

2016-08-23 14:16:51 1681

原创 Java - Abstract class 和 Interface区别

两者之间还是有很大的区别的,对于它们的选择甚至反映出对于问题领域本质的理解、对于设计意图的理解是否正确、合理。 ~~~~~~~~ Abstract Class Interface 实例化 不能 不能 类 是一种继承关系,一个类只能使用一次继承关系.可以通过继承多个接口实现多重继承. 一个类可以实现多个接口 数据成员 可以由自己的 必须是static fi

2016-08-22 22:42:02 661

原创 Java - 基础概念

抽象抽象就是找出一些事物的相似和共性之处,然后将这些事物归为一个类,这个类只考虑这些事物的相似和共性之处.继承在定义和实现一个类的时候,可以在一个已经存在的类的基础之上来进行,把这个已经存在的类所定义的内容作为自己的内容,并可以加入若干新的内容,或修改原来的方法使之更适合特殊的需求,这就是继承.继承通过extends关键字来实现,被继承的是父类,继承者是子类,继承是子类自动共享父类数据和方法的机制,

2016-08-22 22:02:21 465

原创 剑指-单例模式

四种单例模式对比,推荐最后一种只适用于单线程环境public class Singleton1 { private Singleton1() {} private static Singleton1 instance = null; public static Singleton1 getInstance() { if (instance == null) {

2016-08-22 17:44:08 525

原创 计算机网络-可靠数据传输机制及其用途总结

机制 用途和说明 检验和 用于监测在一个传输分组中的比特错误 定时器 用于超时/重传一个分组,可能因为该分组(或其ACK)在信道中丢失了.由于当一个分组延时但未丢失,或当一个分组已被接收方接收但从接收方到发送方的ACK丢失时,可能产生超时事件,所以接收方可能会收到一个分组的多个冗余副本. 序号 用于为从发送方流向接收方的数据分组按序号编号.所接受分组的序号的空隙可是的接收方

2016-08-21 14:12:53 2940

原创 五类排序算法(插入,交换,选择,归并)

五种排序方法插入排序 直接插入排序希尔排序交换排序 冒泡排序快速排序选择排序 简单选择排序堆排序归并排序分类排序排序方法基本思想和算法描述直接插入排序/冒泡排序/简单选择排序,这些简单算法所需时间复杂度大为O(n^2).希尔排序/快速排序/堆排序/归并排序,这些较复杂算法的时间复杂度,平均情况下位O(nlog2n),有些最快情况下退化成O(n^2).

2016-08-17 00:05:46 8299 1

原创 HLS(m3u8) 草案 译 (待修订)

介绍HLS(Introduction to HTTP Live Streaming)HLS (HTTP Live Streaming),Apple的动态码率自适应技术。

2016-08-09 14:20:59 5525

原创 计算机网络-应用层应用的服务要求以及支撑协议

应用的服务要求: 应用 数据丢失 带宽 时间敏感 文件传输 不能丢失 弹性 不 电子邮件 不能丢失 弹性 不 Web文档 不能丢失 弹性(几kbps) 不 因特网电话/视频会议 容忍丢失 音频(几kbps~1Mbps) / 视频(10kbps~5Mbps) 是,100ms 存储音频/视频 容忍丢失 同上 是

2016-08-07 20:36:32 1337 3

空空如也

空空如也

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

TA关注的人

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