自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

洛城一别的博客

学习记录

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

原创 第N个丑数

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

2018-05-06 10:14:09 405

原创 子网掩码的意义,网络号,主机号,广播地址

ip地址一共4*8位子网掩码分为A,B,C三类,A类即255.0.0.0 B类255.255.0.0,C类255.255.255.0,为255的意思是这写位置都已经是安排好的,你不能使用,你只能使用为0的那些位置。子网掩码的作用即表示安排ip地址中的前多少位。比如255.255.255.128代表安排了8+8+8+1位,剩下的7位可以自己定。注意安排好不代表ip地址的对应位置为1,子网掩码写成2进...

2018-04-26 21:43:58 1626

原创 最大连续子数组

这题不难写出,问题是够不够简洁。import java.util.ArrayList;public class Solution { public int FindGreatestSumOfSubArray(int[] array) { int res = Integer.MIN_VALUE; int sum = 0; for(int i = 0; i < array.length; ...

2018-04-25 10:18:15 146

原创 打印数组中数量过半的数字

题目:数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。java模版:public class Solution {    public int MoreThanHalfNum_Solution(int [] array) {       ...

2018-04-23 15:24:16 2078

原创 去重复的字典排序的全排列

题目:输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。模版:java:import java.util.ArrayList;public class Solution {    public ArrayList<String> Permutation(Strin...

2018-04-22 23:18:38 574

原创 二查搜索树与中序遍历

题目:输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向模版:public class Solution {    public TreeNode Convert(TreeNode pRootOfTree) {            //...    }}分析:二叉搜索树中序遍历的结果就是一个排好的数列。想连成链表只要把当前节点跟之前的...

2018-04-21 18:02:04 301

原创 所有节点和为target的所有路径集合

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

2018-04-18 11:05:52 800

原创 java递归时,如果参数是数组需要拆分时

输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。给定的模版是:public class Solution {    public boolean VerifySquenceOfBST(int [] sequence) {            }}思路很简单,所谓二叉搜索树即对根节点即其左右子树,其左子树的所...

2018-04-17 13:45:48 453

原创 根据一个栈的输入序列判断另一个序列是否可能是其一个可能的弹出序列

因为可能没全部压入就弹出一部分,所以我们可以模拟这个过程。for循环压入是一定的,在每个循环里面根据弹出序列的头部是不是栈顶元素来判断是否弹出了,每次判断后序列往下走一步,栈也弹出一个,最后根据栈是否为空判断是否可能。代码如下:import java.util.ArrayList;import java.util.Stack;public class Solution {    public bo...

2018-04-14 11:30:07 235

原创 顺时针打印矩阵

计算层数,每层四个动作:左上到右上,右上到右下,右下到左下,左下到左上。层数计算:矩阵中宽高最小值记为i,则层数为i/2+i%2。理解这个需要画图,按i为奇数和偶数考虑。为偶数,则每层需要所占空间都是两格,所以偶数直接除二就是层数。为奇数则还会剩一层(画个图就明白了),而这一层也会是一层,所以奇数还要加一。故有上式。先用变量表示出矩阵宽高,界定别出错。还有就是打好补丁, 发现3*n(n>4)...

2018-04-11 23:47:48 79

转载 TCP的连接和释放

TCP的连接TCP连接的建立采用客户服务器方式。TCP连接可分为通信双方一方发起连接和双方同时发起连接。一方发起连接        假设A方为客服端,B为服务器端,由A向B发起建立连接请求。        B的服务器进程创建传输控制块TCB,准备接受客户进程的连接请求。然后服务器进程处于LISTEN状态,等待客服端的连接请求。        A打的TCP客服端进程创建控制块TCB,然后向B发送连接...

2018-04-11 00:41:39 904

原创 三次握手,四次挥手

SYN是该协议中的一个标志位。如果该位被置为1,则表示这个报文是一个请求建立连接的报文。ACK也是该协议的一个标志位。如果该位被置为1,则表示这个报文是一个用于确认收到数据的报文。seq是数据包本身的序列号。发送数据自然要使序列号加一,而带SYN和FIN的报文不携带数据但也消耗一个序列号。ack:确认号,其值是想要收到的数据的序列号。三次握手:1.客户端发送带SYM的报文,告知自己随机生成的初始序...

2018-04-11 00:40:57 96

原创 二叉树的按数组创建

首先空的节点在数组中用#号表示。思路:1.把树从根左右的顺序从0开始标号。那么第i号节点的左孩子的标号是2*i+1,右孩子是2*i+2。2.程序上实现标号:即创建一个TreeList类型的List记作nodeList,List<TreeNode> nodeList = new ArrayList<TreeNode>();再把数组中的元素按顺序放进去:for(int i = ...

2018-04-10 12:13:44 1491

原创 static和final

static函数中不能使用this和super指针,因为其和类其实没有任何关系,这个函数可以给所有类用,只不过是其挂载的那个类调用它时不用类名打点就是了。final用于修饰类名表示不能被继承。final修饰方法名的时候表示只能重载不能重写。final修饰变量是,表示是常量。比如final String c = 'final'即编译阶段就会被当成是一个final字符串即一格常量,而不是变量。编译阶段...

2018-04-09 23:57:19 91

原创 判断树是否为二叉树的子树

给定的结构是HasSubtree(root1,root2)即判断root1做根的树中是否含有root2节点做根的树。二叉树的问题基本可以确定是用递归了,肯定是先递归遍历前者找到与右边树的根相等的节点,然后再判断对应子树。即遍历前树,找到一个节点和root2相等,那么就把其作为根的子树列为考虑对象,接下来用另一个方法判断是不是。是就直接结束了,不是还要继续向下找下一个考虑对象而这里很显然用递归就可以...

2018-04-09 17:24:14 646 1

原创 java堆排序

堆排序实际上是把数组当成一个完全二叉树来处理。堆排序的目的是构建根永远大于等于其所有子节点的树,当然这个例子里没有树,只是数组按照完全二叉树的结构模拟的树。堆排序的一部分可以用来实现找数组中的最大元素(sort函数内只用第一个for循环),两个for循环都用的话就是排序了,而且这个排序能实现只要最小或最大的几个而不是全部都排好。完全二叉树定义:只有最后一行或倒数第二行才有叶结点,并且最后一行的叶结...

2018-03-24 15:56:43 178

原创 java两个堆栈实现队列

package exercise1;import java.util.Stack;public class Solution {    Stack<Integer> stack1 = new Stack<Integer>();    Stack<Integer> stack2 = new Stack<Integer>();        public...

2018-03-13 16:59:09 199

原创 利用前序遍历和中序遍历还原二叉树以及涉及的分治法思想

思路:前序遍历中根永远是在最前,所以用来找根节点中序遍历根永远在中间,只要知道哪个是根,那么其左边是这个根的左子树,右边是右子树。也就是说我们只需要重复这个过程直到根节点是叶节点就可以了(实际判定是在这下一步即前序数组为空),这种明显就是递归。有点像分治法,每次递归设计的变量都变少(本题中是前序数组),直到最后少到一定条件(本题中是前序数组为null)就能结束递归,本题中是(return null...

2018-03-13 12:28:11 443

原创 js在自己给定的大框里实现拖拽

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> &

2018-03-11 10:54:35 168

空空如也

空空如也

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

TA关注的人

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