自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(41)
  • 收藏
  • 关注

原创 05-面试题9--用两个栈实现队列

package com.my.offer;import java.util.Stack;/*** * 用两个栈实现队列add(),poll(),peek() * 定义两个栈结构stackPush(只做压入栈),stackPop(只做弹出栈) * 注意两个原则: * 1>如果要将stackPush中的数据压入stackPop,必须将stackPush中的数据全部压入stackP...

2019-05-08 16:32:27 176

原创 04-面试题7--重建二叉树

package com.my.util;/** * 二叉树的节点 * */public class TreeNode { public int value; public TreeNode left; public TreeNode right; public TreeNode(int data) { this.value = data; }}已知先序和中序序列,重建...

2019-05-08 16:31:31 140

原创 03-面试题6--从尾到头打印链表

package com.my.util;/** * 单向链表节点 * */public class SingleNode { public int value; public SingleNode next; public SingleNode(int data){ this.value = data; }}package com.my.offer;import j...

2019-05-07 20:16:52 162

原创 02-面试题5--替换空格

package com.my.offer;/** * 替换空格 * @author asus * */public class Solution02 { public String replaceSpace(StringBuffer str) { //拷贝str1,不改变参数内容 String str1 = str.toString(); if(str1.equals("...

2019-05-07 20:16:12 127

原创 01-面试题4--二维数组中的查找

package com.my.offer;/** * 二维数组的查找 * @author asus * */public class Solution01 { /** * 二维数组的查找: * 从右上角开始查找,因为二维数组每行从左到右递增,每列从上 * 到下递增,因此: * 1.当目标元素小与当前元素,则将小与当前列的所有元素,当前 * 列可以排除 * 2....

2019-05-07 20:15:23 119

原创 十大经典排序算法总结(Java)

排序算法的分类:内部排序:整个排序过程在内存储器中进行.外部排序:由于待排序元素数量太大,以至于内存储器无法容纳全部数据,排序需要借助外部存储设备才能完成实现接口:package com.my.sort;public interface IArraySort { int[] sort(int[] sourceArray) throws Exception;}1.冒泡排序...

2019-05-06 11:00:24 304

原创 020-按照左右半区的方式重新组合单链表

package com.my.util;/** * 单向链表节点 * */public class SingleNode { public int value; public SingleNode next; public SingleNode(int data){ this.value = data; }}package com.my.suanfa;import ...

2019-04-28 15:07:40 139

原创 019-合并两个有序的单链表

package com.my.util;/** * 单向链表节点 * */public class SingleNode { public int value; public SingleNode next; public SingleNode(int data){ this.value = data; }}package com.my.suanfa;import ...

2019-04-28 15:06:57 138

原创 018-向有序的环形单链表中插入新节点

package com.my.util;/** * 单向链表节点 * */public class SingleNode { public int value; public SingleNode next; public SingleNode(int data){ this.value = data; }}package com.my.suanfa;import ...

2019-04-28 15:06:16 166

原创 017-一种怪异的节点删除方式

package com.my.util;/** * 单向链表节点 * */public class SingleNode { public int value; public SingleNode next; public SingleNode(int data){ this.value = data; }}package com.my.suanfa;import ...

2019-04-28 15:05:32 112

原创 016-单链表的选择排序

package com.my.util;/** * 单向链表节点 * */public class SingleNode { public int value; public SingleNode next; public SingleNode(int data){ this.value = data; }}package com.my.suanfa;import ...

2019-04-28 15:04:46 305

原创 015-将搜索二叉树转换成双向链表

package com.my.util;/** * 二叉树的节点 * */public class TreeNode { public int value; public TreeNode left; public TreeNode right; public TreeNode(int data) { this.value = data; }}package com....

2019-04-28 15:04:02 239

原创 014-在单链表中删除指定值的节点

package com.my.util;/** * 单向链表节点 * */public class SingleNode { public int value; public SingleNode next; public SingleNode(int data){ this.value = data; }}package com.my.suanfa;import ...

2019-04-28 15:03:18 292

原创 013-删除无序单链表中值重复出现的的节点

package com.my.util;/** * 单向链表节点 * */public class SingleNode { public int value; public SingleNode next; public SingleNode(int data){ this.value = data; }}package com.my.suanfa;import ...

2019-04-28 15:02:22 428

原创 012-将单链表的每K个节点之间逆序

package com.my.util;/** * 单向链表节点 * */public class SingleNode { public int value; public SingleNode next; public SingleNode(int data){ this.value = data; }}package com.my.suanfa;import ...

2019-04-28 15:01:32 351

原创 011-两个单链表相交的一系列问题

package com.my.util;/** * 单向链表节点 * */public class SingleNode { public int value; public SingleNode next; public SingleNode(int data){ this.value = data; }}package com.my.suanfa;import ...

2019-04-28 15:00:18 151

原创 010-两个单链表生成相加链表

package com.my.util;/** * 单向链表节点 * */public class SingleNode { public int value; public SingleNode next; public SingleNode(int data){ this.value = data; }}package com.my.suanfa;import ...

2019-04-25 13:24:14 206

原创 009-复制含有随机指针节点的链表

package com.my.util;/** * 该节点带有一个rand指针,该指针可以指向链表中任意节点 * */public class RandNode { public int value; public RandNode next; public RandNode rand; public RandNode(int data) { this.value = data...

2019-04-25 13:23:31 120

原创 008-将单向链表按某值划分成左边小,中间相等,右边大的形式

package com.my.util;/** * 单向链表节点 * */public class SingleNode { public int value; public SingleNode next; public SingleNode(int data){ this.value = data; }}package com.my.suanfa;import ...

2019-04-25 13:22:37 293

原创 007-判断一个链表是否为回文结构

package com.my.util;/** * 单向链表节点 * */public class SingleNode { public int value; public SingleNode next; public SingleNode(int data){ this.value = data; }}package com.my.suanfa;import ...

2019-04-25 13:21:34 160

原创 006-环形单链表的约瑟夫问题

package com.my.util;/** * 单向链表节点 * */public class SingleNode { public int value; public SingleNode next; public SingleNode(int data){ this.value = data; }}package com.my.suanfa;import ...

2019-04-25 13:20:49 125

原创 005-反转部分单向链表

package com.my.util;/** * 单向链表节点 * */public class SingleNode { public int value; public SingleNode next; public SingleNode(int data){ this.value = data; }}package com.my.suanfa;import ...

2019-04-25 13:19:46 273

原创 004-反转单向和双向链表

package com.my.util;/** * 单向链表节点 * */public class SingleNode { public int value; public SingleNode next; public SingleNode(int data){ this.value = data; }}package com.my.util;/** * 双向链...

2019-04-25 13:18:52 115

原创 003-删除链表的中间节点和b分之a处的结点

package com.my.util;/** * 单链表结点 * */public class LinkNode { public int value; public LinkNode next; public LinkNode(int value) { this.value = value; }}package com.my.suanfa;import com.m...

2019-04-25 13:18:01 100

原创 002-在单链表和双链表中删除倒数第k个结点

package com.my.util;/** * 链表结点 * */public class LinkNode { public int value; public LinkNode next; public LinkNode(int value) { this.value = value; }}package com.my.util;/** * 双链表结点 * ...

2019-04-25 13:16:49 92

原创 001-打印两个有序链表的公共部分

package com.my.util;/** * 链表结点 * */public class LinkNode { public int value; public LinkNode next; public LinkNode(int value) { this.value = value; }}package com.my.suanfa;import com.m...

2019-04-25 13:15:54 91

原创 010-最大值减去最小值小于或等于num的子数组数量

package com.my.suanfa;import java.util.LinkedList;/** * 最大值减去最小值小于或等于num的子数组数量 * 使用两个双端队列来统计每个子数组中的最大值和最小值* 时间复杂度为O(N),额外空间复杂度为O(N) * */public class Solution06 { public int getNum(int[] arr,...

2019-04-24 11:41:53 336

原创 009-求最大子矩阵的大小

package com.my.suanfa;import java.util.Stack;/** *如果矩阵大小为O(N * M),那么时间复杂度为O(N * M) * 求最大子矩阵的大小 * 关键有两个步骤: * 步骤1:以每一行做切割,使用高度数组height,来记录以当前行为底,每个位置往上的连续1的个数 * 步骤2:每切割一行,统计以该行切割所获得的最大子矩阵中1的个数...

2019-04-24 11:41:12 161

原创 008-构造数组的Max Tree

package com.my.util;public class Node { public int value; public Node left; public Node right; public Node(int value) { this.value = value; }}package com.my.suanfa;import java.util.Hash...

2019-04-24 11:40:29 111

原创 007-生成窗口最大值的数组

package com.my.suanfa;import java.util.LinkedList;/* * 生成窗口最大值数组 * */public class Solution03 { public int[] getMaxWindow(int[] arr, int w) { //边界条件判断 if(arr == null ||w < 1 || arr.lengt...

2019-04-24 11:39:48 148

原创 006-递归实现汉诺塔问题

package com.my.suanfa;/* * 用栈来求解汉诺塔问题的两种方法 * 方法一:递归实现 * 方法二:非递归实现,用栈来模拟递归,因为递归的本质上也是栈 * 前提条件:不能直接从左移动到右,也不能从右直接移动到左,而是必须经过中间 * */public class Solution02 { /* * 方法一:递归实现n层汉诺塔 * 递归的结束条件:只剩一层...

2019-04-24 11:38:56 104

原创 005-用一个栈实现另一个栈的排序

package com.my.suanfa;import java.util.Stack;/* * 用一个栈实现另一个栈的排序 * 实现栈中元素从栈顶到栈底依次递减 * */public class SortStack { public static void sortStackByStack(Stack<Integer> stack) { //申请一个辅助栈 ...

2019-04-24 11:38:11 345

原创 004-猫狗队列

package com.my.util;public class Pet { private String type; public Pet(String type) { this.type = type; } public String getPetType() { return this.type; }}package com.my.util;public c...

2019-04-24 11:37:13 149

原创 003-如何仅用递归函数和栈操作逆序一个栈

package com.my.suanfa;import java.util.Stack;/* * 如何仅用递归函数和栈操作逆序一个栈 * 本题分两个步骤 * 第一步:利用递归拿到并移除栈中的最后一个元素 * 第二步:实现栈的逆序 * */public class Solution01 { //声明变量 private Stack<Integer> stack;...

2019-04-24 11:35:15 275

原创 002-由两个栈组成的队列

package com.my.suanfa;import java.util.Stack;/* * 由两个栈组成的队列 * 向stackPop中压入数据的时机有很多。在这里选择出队和查看队头元素时压入 * 但是压入数据要满足两条: * 1.只能在stackPop为空时才能压入数据 * 2.如果需要压入数据,则必须将stackPush中的数据全部压入 * */public cl...

2019-04-24 11:34:22 194

原创 001-设计一个有getMin功能的栈

package com.my.suanfa;import java.util.Stack;/* * 设计一个有getMin功能的栈 * 方法一: * */public class MyStack1 { //声明变量 private Stack<Integer> stackData; private Stack<Integer> stackMin; /...

2019-04-24 11:33:16 138

原创 排序算法之:冒泡排序和快速排序(java)

排序算法的分类:内部排序:整个排序过程在内存储器中进行。 外部排序:由于待排序元素数量太大,以至于内存储器无法容纳全部数据,排序需要借助外部存储设备才能完成。冒泡排序与快速排序效率:类别 排序方法 时间复杂度 空间复杂度 排序方式 稳定性 平均时间复杂度 最好情况 最坏情况 交换排序 冒泡排序 ...

2019-02-01 16:24:24 271

原创 排序算法之:直接插入排序和希尔排序(java)

排序算法的分类:内部排序:整个排序过程在内存储器中进行。 外部排序:由于待排序元素数量太大,以至于内存储器无法容纳全部数据,排序需要借助外部存储设备才能完成。直接插入排序与希尔排序效率:类别 排序方法 时间复杂度 空间复杂度 排序方式 稳定性 平均时间复杂度 最好情况 最坏情况 插入排序 直接插入排序 ...

2019-02-01 16:05:55 197

原创 Leetcode:155.最小栈(java)

设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。push(x) -- 将元素 x 推入栈中。 pop() -- 删除栈顶的元素。 top() -- 获取栈顶元素。 getMin() -- 检索栈中的最小元素。示例:MinStack minStack = new MinStack();minStack.push(-2);minStack.pus...

2019-01-30 10:00:24 528

原创 Leetcode:232.用栈实现队列(java)

使用栈实现队列的下列操作:push(x) -- 将一个元素放入队列的尾部。 pop() -- 从队列首部移除元素。 peek() -- 返回队列首部的元素。 empty() -- 返回队列是否为空。示例:MyQueue queue = new MyQueue();queue.push(1);queue.push(2); queue.peek(); // 返回 1qu...

2019-01-29 01:02:52 724

空空如也

空空如也

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

TA关注的人

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