程序员代码面试指南
Free188X
我们都曾不堪一击,我们终将刀枪不入…………
展开
-
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 · 117 阅读 · 0 评论 -
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 · 76 阅读 · 0 评论 -
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 · 134 阅读 · 0 评论 -
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 · 304 阅读 · 0 评论 -
003-如何仅用递归函数和栈操作逆序一个栈
package com.my.suanfa;import java.util.Stack;/* * 如何仅用递归函数和栈操作逆序一个栈 * 本题分两个步骤 * 第一步:利用递归拿到并移除栈中的最后一个元素 * 第二步:实现栈的逆序 * */public class Solution01 { //声明变量 private Stack<Integer> stack;...原创 2019-04-24 11:35:15 · 246 阅读 · 0 评论 -
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 · 68 阅读 · 0 评论 -
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 · 66 阅读 · 0 评论 -
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 · 77 阅读 · 0 评论 -
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 · 89 阅读 · 0 评论 -
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 · 237 阅读 · 0 评论 -
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 · 100 阅读 · 0 评论 -
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 · 123 阅读 · 0 评论 -
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 · 262 阅读 · 0 评论 -
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 · 103 阅读 · 0 评论 -
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 · 120 阅读 · 0 评论 -
006-递归实现汉诺塔问题
package com.my.suanfa;/* * 用栈来求解汉诺塔问题的两种方法 * 方法一:递归实现 * 方法二:非递归实现,用栈来模拟递归,因为递归的本质上也是栈 * 前提条件:不能直接从左移动到右,也不能从右直接移动到左,而是必须经过中间 * */public class Solution02 { /* * 方法一:递归实现n层汉诺塔 * 递归的结束条件:只剩一层...原创 2019-04-24 11:38:56 · 69 阅读 · 0 评论 -
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 · 319 阅读 · 0 评论 -
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 · 394 阅读 · 0 评论 -
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 · 249 阅读 · 0 评论 -
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 · 206 阅读 · 0 评论 -
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 · 275 阅读 · 0 评论 -
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 · 88 阅读 · 0 评论 -
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 · 137 阅读 · 0 评论 -
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 · 115 阅读 · 0 评论 -
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 · 114 阅读 · 0 评论 -
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 · 110 阅读 · 0 评论 -
002-由两个栈组成的队列
package com.my.suanfa;import java.util.Stack;/* * 由两个栈组成的队列 * 向stackPop中压入数据的时机有很多。在这里选择出队和查看队头元素时压入 * 但是压入数据要满足两条: * 1.只能在stackPop为空时才能压入数据 * 2.如果需要压入数据,则必须将stackPush中的数据全部压入 * */public cl...原创 2019-04-24 11:34:22 · 168 阅读 · 0 评论 -
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 · 119 阅读 · 0 评论 -
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 · 318 阅读 · 0 评论 -
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 · 173 阅读 · 0 评论