剑指offer(Java实现)
JacobGo
一只热爱健身的程序猿。
展开
-
数据流中的中位数(Java实现)
本题为剑指offer 面试题64牛客网测试地址:https://www.nowcoder.com/questionTerminal/9be0172896bd43948f8a32fb954e1be1[编程题]数据流中的中位数热度指数:24579 时间限制:1秒 空间限制:32768K如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是原创 2017-06-14 14:00:56 · 1693 阅读 · 0 评论 -
构建乘积数组(Java实现)
本题为剑指offer面试题53牛客网测试地址:https://www.nowcoder.com/questionTerminal/94a4d381a68b47b7a8bed86f2975db46[编程题]构建乘积数组热度指数:24957 时间限制:1秒 空间限制:32768K给定一个数组A[0,1,...,n-1],请构建一个数组B[0,1,...,n-原创 2017-05-29 10:30:00 · 1711 阅读 · 0 评论 -
数组中重复的数字(Java实现)
本题为剑指offer面试题51牛客网测试地址:https://www.nowcoder.com/questionTerminal/623a5ac0ea5b4e5f95552655361ae0a8[编程题]数组中重复的数字热度指数:40653 时间限制:1秒 空间限制:32768K在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中原创 2017-05-29 10:03:40 · 4905 阅读 · 1 评论 -
二叉树中和为某一值的路径(Java实现)
该题为剑指offer面试题25.牛客网测试地址为:https://www.nowcoder.com/questionTerminal/b736e784e3e34731af99065031301bca[编程题]二叉树中和为某一值的路径参与人次:74300次时间限制:1秒空间限制:32768K算法知识视频讲解输入一颗二叉树和一个整数,打印出二叉树中结点值原创 2017-04-27 11:51:55 · 715 阅读 · 1 评论 -
不用加减乘除做加法(Java实现)
本题为剑指offer面试题47牛客网测试地址:https://www.nowcoder.com/questionTerminal/59ac416b4b944300b617d4f7f111b215时间限制:1秒空间限制:32768K写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。Java代码:package go.jacob.原创 2017-05-18 10:59:51 · 638 阅读 · 0 评论 -
求1+2+...+n(Java实现)
本题为剑指offer面试题46牛客网测试地址:https://www.nowcoder.com/questionTerminal/7a0da8fc483247ff8800059e12d7caf1时间限制:1秒空间限制:32768K求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A原创 2017-05-18 10:31:34 · 3195 阅读 · 0 评论 -
二叉搜索树的后序遍历序列(Java实现)
牛客网测试地址:https://www.nowcoder.com/questionTerminal/a861533d45854474ac791d90e447bafd[编程题]二叉搜索树的后序遍历序列参与人次:81730次时间限制:1秒空间限制:32768K算法知识视频讲解输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则原创 2017-04-27 10:04:00 · 1293 阅读 · 0 评论 -
第一个只出现一次的字符(Java实现)
本题为剑指offer面试题35牛客网测试地址:https://www.nowcoder.com/questionTerminal/1c82e8cf713b4bbeb2a5b31cf5b0417c时间限制:1秒空间限制:32768K 算法知识视频讲解在一个字符串(1package go.jacob.day509;/* * 字符char的范原创 2017-05-09 13:56:59 · 1189 阅读 · 0 评论 -
2017/4/26阿里实习编程题:后缀表达式(Java实现)
题目:import java.util.ArrayList;import java.util.List;import java.util.Scanner;public class Main { public static void main(String[] args) { ArrayList inputs = new ArrayLi原创 2017-04-26 21:18:38 · 490 阅读 · 0 评论 -
丑数(Java实现)
本题为剑指offer面试题34牛客网链接:https://www.nowcoder.com/questionTerminal/6aa9e04fc3794f68acf8778237ba065b时间限制:1秒空间限制:32768K把只包含素因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含因子7。 习惯上我们把1当做原创 2017-05-09 10:30:06 · 1336 阅读 · 0 评论 -
从上往下打印二叉树(Java实现)
牛客网测试地址:https://www.nowcoder.com/questionTerminal/7fe2212963db4790b57431d9ed259701空间限制:32768K 算法知识视频讲解从上往下打印出二叉树的每个节点,同层节点从左至右打印。package go.jacob.test426;import java.util.ArrayLi原创 2017-04-26 12:42:42 · 933 阅读 · 0 评论 -
包含min函数的栈(Java实现)
牛客网测试地址:https://www.nowcoder.com/questionTerminal/4c776177d2c04c2494f2555c9fcc1e49题目:定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的min函数。在该栈中,调用min,push及pop的时间复杂度都是O(1).看到这个问题,我们的第一反应可能是每次压入一个新元素进栈时,将栈里原创 2017-04-26 11:18:16 · 711 阅读 · 1 评论 -
圆圈中最后剩下的数字(Java实现)
本题为剑指offer面试题45牛客网测试地址:https://www.nowcoder.com/questionTerminal/f78a359491e64a50bce2d89cff857eb6时间限制:1秒空间限制:32768K每年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此。HF作为牛客的资深元老,自然也准备了一些小游戏。其中,有个游戏是这样原创 2017-05-17 10:35:57 · 740 阅读 · 0 评论 -
把数组排成最小的数(Java实现)
本题为剑指offer面试题33牛客网测试地址:https://www.nowcoder.com/questionTerminal/8fecd3f8ba334add803bf2a06af1b993时间限制:1秒 空间限制:32768K输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321原创 2017-05-08 12:44:14 · 729 阅读 · 0 评论 -
数组中的逆序对(Java实现)
本题为剑指offer面试题36牛客网测试地址:https://www.nowcoder.com/questionTerminal/96bd6684e04a44eb80e6a68efc0ec6c5[编程题]数组中的逆序对热度指数:67584 时间限制:1秒 空间限制:32768K在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数原创 2017-05-10 15:13:54 · 2838 阅读 · 1 评论 -
把字符串转换成整数(Java实现)
本题为剑指offer面试题49牛客网测试地址::https://www.nowcoder.com/questionTerminal/1277c681251b4372bdef344468e4f26e时间限制:1秒空间限制:32768K将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0输入描述:输入一个字符原创 2017-05-19 12:26:56 · 2082 阅读 · 0 评论 -
二叉搜索树的第k个结点(Java实现)
本题为剑指offer面试题63牛客网测试地址:https://www.nowcoder.com/questionTerminal/ef068f602dde4d28aab2b210e859150a[编程题]二叉搜索树的第k个结点热度指数:40095 时间限制:1秒 空间限制:32768K给定一颗二叉搜索树,请找出其中的第k大的结点。例如, 5 / \ 3原创 2017-06-13 10:28:29 · 810 阅读 · 0 评论 -
序列化二叉树(Java实现)
本题为剑指offer面试题62牛客网测试地址:https://www.nowcoder.com/questionTerminal/cf7e25aa97c04cc1a68c8f040e71fb84[编程题]序列化二叉树热度指数:34295时间限制:1秒空间限制:32768K 算法知识视频讲解请实现两个函数,分别用来序列化和反序列化二叉树Java c原创 2017-06-12 14:47:58 · 1153 阅读 · 0 评论 -
按之字形顺序打印二叉树(Java实现)
本题为剑指offer面试题61牛客网测试地址:https://www.nowcoder.com/questionTerminal/91b69814117f4e8097390d107d2efbe0[编程题]按之字形顺序打印二叉树热度指数:33419 时间限制:1秒 空间限制:32768K请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第原创 2017-06-12 10:17:31 · 1134 阅读 · 0 评论 -
把二叉树打印成多行(Java实现)
本题为剑指offer面试题60牛客网测试地址:https://www.nowcoder.com/questionTerminal/445c44d982d04483b04a54f298796288热度指数:29586时间限制:1秒空间限制:32768K 算法知识视频讲解从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。Java cod原创 2017-06-11 10:14:54 · 1446 阅读 · 0 评论 -
删除链表中重复的节点(Java实现)
本题为剑指offer面试题58牛客网测试地址:https://www.nowcoder.com/questionTerminal/fc533c45b73a41b0b44ccba763f866ef[编程题]删除链表中重复的结点热度指数:63742 时间限制:1秒 空间限制:32768K在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点原创 2017-06-07 10:37:39 · 4303 阅读 · 0 评论 -
二叉树的下一个节点(Java实现)
本题为剑指offer面试题58牛客网测试地址:https://www.nowcoder.com/questionTerminal/9023a0c988684a53960365b889ceaf5e[编程题]二叉树的下一个结点热度指数:31242 时间限制:1秒 空间限制:32768K给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注原创 2017-06-09 10:28:27 · 1580 阅读 · 0 评论 -
链表中环的入口节点(Java实现)
本题为剑指offer面试题56牛客网测试地址:https://www.nowcoder.com/questionTerminal/253d2c59ec3e4bc68da16833f79a38e4[编程题]链表中环的入口结点热度指数:35630时间限制:1秒空间限制:32768K 算法知识视频讲解一个链表中包含环,请找出该链表的环的入口结点。J原创 2017-06-06 15:58:41 · 1206 阅读 · 0 评论 -
树中两个节点的最低公共祖先(Java实现)
本题为剑指offer面试题50在牛客网没有找到类似的题目,所以笔者自己建了三棵树进行测试如有问题欢迎指正。题目:求树中两个结点的最低公共祖先分析:其实这是一组题目,考官没有说清楚树的结构,那么做法就不尽相同。比如,如果是二叉搜索树的话,我们只需从根结点判断,如果二结点与根的左右子树比较一大一小,那么跟结点就是二者最低公共祖先;如果二结点都比左子结点小,向原创 2017-05-22 09:59:17 · 3780 阅读 · 1 评论 -
机器人的运动范围(Java实现)
本题为剑指offer面试题67测试链接:https://www.nowcoder.com/questionTerminal/6e5207314b5241fb83f2329e89fdecc8来源:牛客网[编程题]机器人的运动范围热度指数:28092 时间限制:1秒 空间限制:32768K地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动,原创 2017-06-16 11:12:50 · 1999 阅读 · 0 评论 -
矩阵中的路径(Java实现)
本题为剑指offer面试题66测试地址:https://www.nowcoder.com/questionTerminal/c61c6999eecb4b8f88a98f66b273a3cc来源:牛客网[编程题]矩阵中的路径热度指数:28891 时间限制:1秒 空间限制:32768K请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的原创 2017-06-16 10:37:22 · 2112 阅读 · 0 评论 -
滑动窗口的最大值(Java实现)
本题为剑指offer面试题65:牛客网测试地址:https://www.nowcoder.com/questionTerminal/1624bc35a45c42c0bc17d17fa0cba788来源:牛客网[编程题]滑动窗口的最大值热度指数:34520 时间限制:1秒 空间限制:32768K给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大原创 2017-06-15 20:44:28 · 1598 阅读 · 0 评论 -
字符流中第一个不重复的字符(Java实现)
本题为剑指offer面试题55牛客网测试地址:https://www.nowcoder.com/questionTerminal/00de97733b8e4f97a3fb5c680ee10720[编程题]字符流中第一个不重复的字符热度指数:26323 时间限制:1秒 空间限制:32768K请实现一个函数用来找出字符流中第一个只出现一次的字符。例如,当原创 2017-05-31 11:57:41 · 611 阅读 · 0 评论 -
表示数值的字符串(Java实现)
本题为剑指offer面试题54牛客网测试地址:https://www.nowcoder.com/questionTerminal/6f8c901d091949a5837e24bb82a731f2[编程题]表示数值的字符串热度指数:27327 时间限制:1秒 空间限制:32768K请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串原创 2017-05-31 10:51:49 · 1736 阅读 · 0 评论 -
顺时针打印矩阵(Java实现)
本题为:剑指offer面试题20牛客网测试地址:https://www.nowcoder.com/questionTerminal/97e7a475d2a84eacb60ee545597a8407时间限制:3秒空间限制:32768K算法知识视频讲解对于一个矩阵,请设计一个算法从左上角(mat[0][0])开始,顺时针打印矩阵元素。给定int矩阵mat原创 2017-04-25 12:23:22 · 1111 阅读 · 0 评论 -
n个骰子的点数(Java实现)
本题为剑指offer面试题43没有找到牛客网的测试例题题目:把n个骰子仍在地上,所有骰子朝上一面的点数之和为s,输入n,打印出s的所有可能的值出现的概率。解法一:基于递归求骰子的点数,时间效率不够高现在我们考虑如何统计每一个点数出现的次数。要向求出n个骰子的点数和,可以先把n个骰子分为两堆:第一堆只有一个,另一个有n-1个。单独的那一个有可能出现原创 2017-05-16 12:47:01 · 3305 阅读 · 0 评论 -
从1到n整数中1出现的次数(Java实现)
本题为剑指offer面试题32牛客网测试地址:https://www.nowcoder.com/questionTerminal/bd7f978302044eee894445e244c7eee6时间限制:1秒 空间限制:32768K求出1~13的整数中1出现的次数,并算出100~1300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有原创 2017-05-07 11:54:37 · 816 阅读 · 0 评论 -
数字在排序数组中出现的次数(Java实现)
本题为剑指offer面试题38牛客网测试地址:https://www.nowcoder.com/questionTerminal/70610bf967994b22bb1c26f9ae901fa2时间限制:1秒空间限制:32768K统计一个数字在排序数组中出现的次数。package go.jacob.day512;public class Demo原创 2017-05-12 13:01:40 · 2983 阅读 · 0 评论 -
打印1到最大的n位数(Java实现)
本题为剑指offer面试题12package offer.day421;public class Demo1 { public static void main(String[] args) { // solve_1(3);// solve_2(3); solve_3(3); } /* * 跳进面试官的陷阱 如果n很大,用int或者l原创 2017-04-21 13:06:01 · 1198 阅读 · 0 评论 -
字符串的排列(Java实现)
本题为剑指offer面试题28牛客网 :https://www.nowcoder.com/questionTerminal/8380c8cf28954a188362206b1991b5d6[编程题]字符串排列热度指数:5371时间限制:3秒空间限制:32768K算法知识视频讲解编写一个方法,确定某字符串的所有排列组合。给定一个string A原创 2017-05-03 12:32:32 · 789 阅读 · 0 评论 -
二叉搜索树与双向链表(Java实现)
本题为剑指offer面试题27牛客网测试地址:https://www.nowcoder.com/questionTerminal/947f6eb80d944a84850b0538bf0ec3a5[编程题]二叉搜索树与双向链表热度指数:51480 时间限制:1秒 空间限制:32768K算法知识视频讲解输入一棵二叉搜索树,将该二叉搜索树转换成一个排序原创 2017-05-03 10:08:13 · 689 阅读 · 0 评论 -
二叉树的遍历(循环及递归实现)——Java
package go.jacob.day502;import java.util.Stack;/** * * @author Administrator 前序遍历:6 3 1 2 5 4 9 7 8 中序遍历:1 2 3 4 5 6 7 8 9 后序遍历:2 1 * 4 5 3 8 7 9 6 */public class Demo3 { public sta原创 2017-05-03 09:34:57 · 670 阅读 · 0 评论 -
二进制中1的个数(Java实现)
[编程题]二进制中1的个数输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。代码如下:/* * 1.右移一位相等于除以2,但是不能用除法替代右移 * 因为除法的效率比移位运算要低得多,在实际编程中应尽可能地用移位算法替代乘除法 * * */public class Demo2 { public static void m原创 2017-04-17 10:50:00 · 441 阅读 · 0 评论 -
两个链表的第一个公共节点(Java实现)
本题为剑指offer面试题37牛客网测试地址:https://www.nowcoder.com/questionTerminal/6ab1d9a29e88450685099d45c9e31e46[编程题]两个链表的第一个公共结点热度指数:42895时间限制:1秒空间限制:32768K 算法知识视频讲解输入两个链表,找出它们的第一个公共结点。Java代原创 2017-05-11 10:30:16 · 1255 阅读 · 0 评论 -
旋转数组的最小数字
把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。该题为剑指offer中面试题8。思路是使用二分查找需要考虑的两个点:1.如果旋转的元素为0,即该数组是一个递增(非递减)怎么办2.如果数组原创 2017-04-16 11:41:46 · 473 阅读 · 0 评论