代皓 Blog

要么庸俗 要么孤独.

二叉树的深度

题目 输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。 分析 假如二叉树只有一个节点,那么就直接返回1. 如果二叉树只有左子树,那么只要返回左子树的最大深度就可以。 如果只有右子树,返回右子树的最大高度。 左右子树都存在的时候,要比较输出较大的那个。 代码 /** public class Tre...

两个链表中的第一个公共节点

题目 输入两个链表,找出它们的第一个公共结点。 分析 最直观的想法是,从链表A的第一个节点开始遍历,去和链表B的每一个节点匹配,对个匹配成功的就是答案。 这个方法的时间复杂度是O(mn)。 我们可以考虑以空间换时间。 题目中给了这个链表是单链表,形式如下: public class ListNode { int val; ListNode next = ...

丑数

求按从小到大的顺序的第N个丑数

题目 把只包含因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序 的第N个丑数。 要判断一个数是不是丑数,最简单的就是用下面这个函数进行遍历: public bool isUglyNumber(int input){ while(input%2==0){ i...

连续子数组的最大和

题目 HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了: 在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。 但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6,-3,-2,7,-15,1,2,2}, 连续子向量的最大和为8(从第0个开始,到第3个为止)。你会不会被他忽悠住...

整数中1出现的次数

题目 求出1~13的整数中1出现的次数,并算出100~1300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字 有1、10、11、12、13因此共出现6次,但是对于后面问题他就没辙了。ACMer希望你们帮帮他,并把问题更加普遍化, 可以很快的求出任意非负整数区间中1出现的次数。 分析 其实就是找规律,从高位到底为或者从低位到高位,一位一位的计算1出现的个数。 举...

面向对象三大特征

封装 继承 多态

面向对象三大特征 面向对象的三大特征包括——封装、继承和多态。 封装 封装指的将事物抽象成类,所以封装的实现主要涉及到类和对象。一个类里面包含了这个类设计到的属性和方法。 这个类只会让自己信任的类或对象进行操作,而对其他类和对象实现信息隐藏。 在iOS需要注意: @interface manager:(Person) { 。 。 。 } 属性封装实例变量,方法封装具体的实现代码。...

排序算法之希尔排序

希尔排序

思想 希尔排序实际上是对插入排序的改进,增加了一个一个间隔X,每次都将间隔X的两个数进行比较,确定位置,然后减小间隔X,直达间隔X=1,也就是原始的插入排序。 举例 借用网友分享的图片进行说明: 步长的确定 间隔也就是步长,那么这个步长怎么确定呢? 一般是这样的: 第一次增量的取法为: d=count/2; 第二次增量的取法为: d=(count/2)/2; 最后一直...

详解TCP协议

概述 TCP协议属于面向连接、可靠的协议。他通过校验和、序列号、确认应答。重发控制等实现可靠的传输。 TCP报文头 TCP的报文段首部最长60字节。其中20字节是固定长度的,40字节是可变长度。 以下是TCP首部的格式: 其中从源端口到紧急指针这一部分是不可变部分,长度是20字节,选项和填充是可变部分,长度最长可达40字节。 源端口和目的端口 表示端口号 序号 序号表示...

计算机网络五层模型

概述 计算机的OSI分为7层,但是目前用的最多的是5层模型,这5层从上到下依次是应用层、传输层、网络层、数据链路层、物理层。下一层永远为上一层提供 服务。 应用层 提供用户与主机的接口,具体来说包括: 功能:1.邮件服务功能 2.文件传输功能 3.访问与控制 协议:FTP SMTP POP3 HTTP等 传输层 负责主机间进程的通信,具体来说: 1.提供端到端的可靠传输服务 ...

排序算法之选择排序

选择排序

思想 选择排序,顾名思义,就是每次从待排数组中选择最大火最小的一个出来,这里我们以升序来举例,每次从待排序的数组中选出最小的放到待排序数组的第一位。 这样原来的数组就会有两部分,前面一部分是已经排好序的,后面一部分是待排序的数组。 由此看来,选择排序的一个优点是不需要开辟额外的存储空间。 再说的简单一点,就是将数列看做一群学生,对着他们说你们最矮的出列,站到最左边,然后这个孩子不动,接...