摘要:######以下为64位和32位的hash值计算方法 public class HashUtil { private static final long FNV_64_INIT = 0xcbf29ce484222325L; private static final long FNV_64_PRIME
阅读全文
摘要:/** * 面试题58:二叉树的下一个节点 * 给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。 */ public class _58_next_node { public static void main(St
阅读全文
摘要:####题目:求树中两个结点的最低公共祖先,此树不是二叉树,并且没有指向父节点的指针。 ######树的结点定义 private static class TreeNode { int val; List<TreeNode> children = new LinkedList<>(); public
阅读全文
摘要:/** * 面试题47:不用加减乘除做加法 * 写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。 */ public class _47_sum_no_add { public static void main(String[] args) { Solution47 s
阅读全文
摘要:/** * 面试题46:求1+2+...+n * 求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。 */ public class _46_n_sum { public static void main(S
阅读全文
摘要:/** * 面试题40:数组中只出现一次的数字 * 一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。 */ public class _40_num_one_times { public static void main(String[] args){ S
阅读全文
摘要:/** * 面试题39: * 题目2:平衡二叉树 * 输入一棵二叉树,判断该二叉树是否是平衡二叉树。 */ public class _39_2_avl { public static void main(String[] args){ } } class Solution39_2 { public
阅读全文
摘要:/** * 面试题39:二叉树的深度 * 输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。 */ public class _39_binaryTree_deep { public static void main(String
阅读全文
摘要:/** * 面试题38:数字在排序数组中出现的次数 * 统计一个数字在排序数组中出现的次数。 */ public class _38_sort_num_times { public static void main(String[] args){ Solution38 solution38 = ne
阅读全文
摘要:import java.util.HashMap; /** * 面试题35:第一个只出现一次的字符 * 在一个字符串(1<=字符串长度<=10000,全部由大写字母组成)中找到第一个只出现一次的字符,并返回它的位置 */ public class _35_first_str { public sta
阅读全文
摘要:/** * 面试题34:丑数 * 把只包含因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含因子7。 * 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。 */ public class _34_ugly_number { public
阅读全文
摘要:/** * 面试题33:把数组排成最小的数 * 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。 * 例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。 */ public class _33_min_array { pu
阅读全文
摘要:/** * 面试题27:二叉搜索树与双向链表 * 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。 */ public class _27_tree_to_linked { public static void main(String
阅读全文
摘要:import java.util.Stack; /** * 面试题21:包含min函数的栈 * 定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数。 */ public class _21_min_stack { public static void main(String[] a
阅读全文
摘要:/** * 面试题16:反转链表 * 输入一个链表,反转链表后,输出链表的所有元素。 */ public class _16_linked_reversal { public static void main(String[] args){ Solution16 solution16 = new S
阅读全文
摘要:/** * 面试题14:调整数组顺序使奇数位于偶数的前面 */ public class _14_adjustArray { public static void main(String[] args){ Solution14 solution14 = new Solution14(); int[]
阅读全文
摘要:######如果按照最简单的循环输出,会遇到边界问题,n非常大的话,int甚至long都不能满足需求,所以这里需要用数组或者是字符串来表示要输出的数字。 ######如果面试题给定了一个n位整数,那么就是大数问题,用字符串来解决。 ######给定两个整数相加求结果,也是大数问题。 public s
阅读全文
摘要:/** * 面试题10:二进制中1的个数 *输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。 */ public class _10_binary { public static void main(String[] args){ Solution10 solution10 = ne
阅读全文
摘要:/** * 面试题9:菲波那切数列 * 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。 n<=39 */ public class _09_Fibonacci { public static void main(String[] args){ Solution09 s
阅读全文
摘要:/** * 面试题4:替换字符 * 请实现一个函数,将一个字符串中的空格替换成“%20”。 * 例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。 */ public class _04_String { public static void mai
阅读全文
摘要:/** * 面试题3:二维数组中的查找 * 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。 * 请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 */ public class _03_array { public static
阅读全文