摘要:
/** * 面试题67:机器人的运动范围 * 地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格, * 但是不能进入行坐标和列坐标的数位之和大于k的格子。 例如,当k为18时,机器人能够进入方格(35,37),因为3+5+3+7 = 18。 阅读全文
摘要:
import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; /** * 面试题65:滑动数组的最大值 * 给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值。例如,如果输入数组{2,3 阅读全文
摘要:
/** * 面试题66:矩阵中的路径 * 请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。 * 路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。 * 如果一条路径经过了矩阵中的某一个格子,则该路径不能再进入该格子。 * 例如 a 阅读全文
摘要:
import java.util.ArrayList; import java.util.Collections; /** * 面试题64:数据流中的中位数 * 如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。 * 如果从数据流中读出偶数个数 阅读全文
摘要:
/** * 面试题63:二叉搜索树的第k个结点 * 给定一颗二叉搜索树,请找出其中的第k大的结点 * 例如, 5 / \ 3 7 /\ /\ 2 4 6 8 中,按结点数值大小顺序第三个结点的值为4。 */ public class _63_binary_k_num { public static 阅读全文
摘要:
/** * 面试题62:序列化二叉树 * 请实现两个函数,分别用来序列化和反序列化二叉树 */ import java.lang.StringBuilder; public class _62_seriailze_binaryTree { public static void main(String 阅读全文
摘要:
import java.util.ArrayList; import java.util.Collections; import java.util.LinkedList; import java.util.Queue; /** * 面试题61:按之字形顺序打印二叉树 * 请实现一个函数按照之字形打 阅读全文
摘要:
import java.util.ArrayList; import java.util.LinkedList; import java.util.Queue; /** * 面试题60:把二叉树打印成多行 从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。 */ public clas 阅读全文
摘要:
/** * 面试题59:对称的二叉树 请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。 */ public class _59_symmetry { public static void main(String[] args) { } } 阅读全文
摘要:
/** * 面试题58:二叉树的下一个节点 * 给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。 */ public class _58_next_node { public static void main(St 阅读全文
摘要:
/** * 面试题57:删除链表中重复的结点 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 * 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5 */ public class _57_linked_remove_repe 阅读全文
摘要:
/** * 面试题56:链表中环的入口结点 * 一个链表中包含环,请找出该链表的环的入口结点。 */ public class _56_hoop_start { public static void main(String[] args) { } } class Solution56 { publi 阅读全文
摘要:
/** * 面试题55:字符流中第一个不重复的字符 * 题目描述 请实现一个函数用来找出字符流中第一个只出现一次的字符。例如,当从字符流中只读出前两个字符"go"时,第一个只出现一次的字符是"g"。 当从该字符流中读出前六个字符“google"时,第一个只出现一次的字符是"l"。 输出描述: 如果当 阅读全文
摘要:
/** * 面试题54:表示数值的字符串 * 请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100","5e2","-123","3.1416"和"-1E-16"都表示数值。 * 但是"12e","1a3.14","1.2.3","+-5"和"12e+4.3"都不是。 阅读全文
摘要:
/** * 面试题53:正则表达式匹配 * 请实现一个函数用来匹配包括'.'和'*'的正则表达式。模式中的字符'.'表示任意一个字符,而'*'表示它前面的字符可以出现任意次(包含0次)。 * 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"ab*ac*a"匹 阅读全文
摘要:
/** * 面试题52:构建成绩数组 * 给定一个数组A[0,1,...,n-1],请构建一个数组B[0,1,...,n-1], * 其中B中的元素B[i]=A[0]*A[1]*...*A[i-1]*A[i+1]*...*A[n-1]。不能使用除法。 */ public class _52_arra 阅读全文
摘要:
import java.util.ArrayList; /* * 面试题51:数组中重复的数字 * 在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。 * 也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 * 例如,如果输入长度为 阅读全文
摘要:
####题目:求树中两个结点的最低公共祖先,此树不是二叉树,并且没有指向父节点的指针。 ######树的结点定义 private static class TreeNode { int val; List<TreeNode> children = new LinkedList<>(); public 阅读全文
摘要:
/** * 面试题49:把字符串转换为整数 * 将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0 */ public class _49_str_to_num { public static void main(String[] args 阅读全文
摘要:
public class FinalClass { /* * 不能被继承的类 */ public static FinalClass getInstance() { return new FinalClass(); } public static void deleteInstance(FinalC 阅读全文