![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
牛客网
桌面永远乱兮兮的LS
这个作者很懒,什么都没留下…
展开
-
T34 :两个链表公共的第一个节点
题目:输入两个链表,找出它们的第一个公共结点。public class FindFirstCommonNode1 { public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; } } public ...原创 2018-12-08 15:22:27 · 63 阅读 · 0 评论 -
T41:单词的翻转(Java)
t题目:牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“student. a am I”。后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是“I am a student.”。Cat对一一的翻转这些单词顺序可不在行,你能帮助他么?参考:https://b...原创 2018-12-09 15:35:50 · 244 阅读 · 0 评论 -
T42:扑克牌的顺序(Java)
题目:LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张^_^)...他随机从中抽出了5张牌,想测测自己的手气,看看能不能抽到顺子,如果抽到的话,他决定去买体育彩票,嘿嘿!!“红心A,黑桃3,小王,大王,方片5”,“Oh My God!”不是顺子.....LL不高兴了,他想了想,决定大\小 王可以看成任何数字,并且A看作1,J为11,Q为12,K为13...原创 2018-12-10 10:38:09 · 612 阅读 · 0 评论 -
T43:孩子们的游戏(java)
题目:每年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此。HF作为牛客的资深元老,自然也准备了一些小游戏。其中,有个游戏是这样的:首先,让小朋友们围成一个大圈。然后,他随机指定一个数m,让编号为0的小朋友开始报数。每次喊到m-1的那个小朋友要出列唱首歌,然后可以在礼品箱中任意的挑选礼物,并且不再回到圈中,从他的下一个小朋友开始,继续0...m-1报数....这样下去....直...原创 2018-12-10 11:16:04 · 128 阅读 · 0 评论 -
T44:1+2+3......+N(Java)
题目:求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。/* * 求1+2+3+...+n, * 要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。 */public class Sum_Solution1 { public...原创 2018-12-10 11:36:27 · 156 阅读 · 0 评论 -
T45:加法
题目:写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。分析:方法一 将int转换成BigInteger类型 不过先要变成String 类型 然后再使用add方法/* * 写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。 */public class Add1 { public static ...原创 2018-12-10 15:27:17 · 123 阅读 · 0 评论 -
T46:字符串转换成整数(Java)
题目:将一个字符串转换成一个整数(实现Integer.valueOf(string)的功能,但是string不符合数字要求时返回0),要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0。思考:第一 先要将字符串变成一个字符数组 c[] 第二 对第一位进行判断。‘-’则用symbol=-1进行标记 同时让c[0]=0; ...原创 2018-12-11 10:21:35 · 294 阅读 · 1 评论 -
T47:数组中的重复数字(Java)
题目:在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字2。思考:第一想法是和前面某题类似 利用HashSet 时间复杂度:O(n),空间复杂度:O(n)//HashMap ...原创 2018-12-11 11:32:18 · 132 阅读 · 0 评论 -
T61:滑动窗口最大值(Java)
题目:给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值。例如,如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3,那么一共存在6个滑动窗口,他们的最大值分别为{4,4,6,6,6,5}; 针对数组{2,3,4,2,6,2,5,1}的滑动窗口有以下6个: {[2,3,4],2,6,2,5,1}, {2,[3,4,2],6,2,5,1}, {2,3,[4,2,6],2,5,1...原创 2018-12-17 16:26:41 · 980 阅读 · 0 评论 -
T48:构建乘积数组(Java)
题目:给定一个数组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]。不能使用除法。分析:理解题目半天 (汗) 实际上多罗列几项,关系便一目了然 B[0]=A[1]*A[2]*A[3]*.......A[n-1]B[1]=A[0]*A[2]*A[3]*.........原创 2018-12-11 16:23:25 · 247 阅读 · 0 评论 -
T62:矩阵中的路径(Java)
题目:请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。如果一条路径经过了矩阵中的某一个格子,则之后不能再次进入这个格子。 例如 a b c e s f c s a d e e 这样的3 X 4 矩阵中包含一条字符串"bcced"的路径,但是矩阵中不包含"abcb"路径,因为字符串的...原创 2018-12-17 17:18:28 · 123 阅读 · 0 评论 -
T50:
题目:请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100","5e2","-123","3.1416"和"-1E-16"都表示数值。 但是"12e","1a3.14","1.2.3","+-5"和"12e+4.3"都不是。/* * 请实现一个函数用来判断字符串是否表示数值原创 2018-12-11 19:36:36 · 388 阅读 · 0 评论 -
T51:字符流中第一个未重复的字符(Java)
题目;* 请实现一个函数用来找出字符流中第一个只出现一次的字符。 例如,当从字符流中只读出前两个字符"go"时,第一个只出现一次的字符是"g"。 当从该字符流中读出前六个字符“google"时,第一个只出现一次的字符是"l"。 总结???????????????????????public class FirstAppearingOnce1 { int [] count=new ...原创 2018-12-12 11:07:38 · 103 阅读 · 0 评论 -
T40:左旋转字符串
题目: 例如,字符序列S=”abcXYZdef”,要求输出循环左移3位后的结果,即“XYZdefabc”。方法一:str1=abc str1=cbastr2=XYZdefstr2=fedZYX cbafedZYX (翻转)XYZdefabc方法二:复制 str+=str abcXYZdefabcXYZdef subString(n,len+n)即可 具体代码见下参考:h...原创 2018-12-09 14:45:01 · 109 阅读 · 0 评论 -
T39:和为S的两个整数(Java)
题目:输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。思考:i,j分别指向数组收尾,题目要求成绩最小, 根据数学基础知识知道两个数相差越大,他们的乘积就越小。代码如下import java.util.ArrayList;/* * 输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正...原创 2018-12-09 14:06:47 · 132 阅读 · 0 评论 -
T35:统计一个数字在排序数组中出现的次数
思路很简单 :就是利用二分法寻找第一个K出现的地方和最后一个K出现的地方public class GetNumberOfK1 { public int GetNumberOfK(int [] array , int k) { int len=array.length; int count=0; if(array!=null&&len&g...原创 2018-12-08 16:43:02 · 99 阅读 · 0 评论 -
T37:是否是平衡二叉树
平衡二叉树:左右树的高度差不超过1public class TreeDepth { public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val;...原创 2018-12-08 17:15:34 · 115 阅读 · 0 评论 -
T38:数组中只出现一次的数
1.https://blog.csdn.net/blubluhao/article/details/798460422.https://blog.csdn.net/blubluhao/article/details/79846042import java.util.HashSet;import java.util.Iterator;import java.util.Set;/*...原创 2018-12-08 19:33:20 · 96 阅读 · 0 评论 -
T53:删除链表中重复的节点(Java)
/* * 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 * 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5 */public class deleteDuplication1 { public class ListNode { int val; ...原创 2018-12-12 20:33:45 · 132 阅读 · 0 评论 -
T54:二叉树的下一个节点(Java)
题目:给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。分析:此题就是要找后继节点,后继节点就是二叉树中序遍历的下一个节点。中序遍历的顺序是左中右,因此应该判断是否有右子树。1.若有右子树,则该节点的父节点即是所求2.无右子树,就要找到该节点作为哪个节点的左子树的最后一个节点。注意是左子树。。。例子...原创 2018-12-12 20:51:56 · 125 阅读 · 0 评论 -
T55:对称二叉树(Java)
题目: 请实现一个函数,用来判断一颗二叉树是不是对称的。 * 注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。分析:此题比较简单 ,就简单的递归 public class isSymmetrical1 { public class TreeNode { int val = 0; TreeNode left = null; ...原创 2018-12-13 09:41:31 · 141 阅读 · 0 评论 -
T56:之字形打印二叉树(Java)
题目:请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。分析:方法一 建立2个栈,s1放基数层,s2放偶数层 temp为临时存放每一层的数值的链表int level=1; Stack<TreeNode> s1=new Stack<TreeNode>(); s1.a...原创 2018-12-13 10:53:50 · 110 阅读 · 0 评论 -
T57:把二叉树打印成多行(Java)
题目:从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。分析:很明显可以利用队列 先进先出 但题目要求是每一层输出一行 这才是题目的关键。于是应该增加2个变量 来记录队列的长度和当前打印数。int count =0 ,int len =s.size();import java.util.ArrayList;import java.util.LinkedList;im...原创 2018-12-13 16:07:20 · 186 阅读 · 0 评论 -
T58:序列化二叉树(Java)
题目;请实现两个函数,分别用来序列化和反序列化二叉树分析:public class Serialize1 { public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { ...原创 2018-12-13 17:05:12 · 128 阅读 · 0 评论 -
T59:二叉搜素树的第K个节点(Java)
题目:给定一棵二叉搜索树,请找出其中的第k小的结点。例如, (5,3,7,2,4,6,8) 中,按结点数值大小顺序第三小结点的值为4。分析:二叉搜素树就是二叉树的中序遍历import java.util.Stack;public class KthNode2 { public static class TreeNode { int val = 0; Tre...原创 2018-12-14 15:46:24 · 116 阅读 · 0 评论 -
T60:数据流中的中位数(Java)
题目:如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。我们使用Insert()方法读取数据流,使用GetMedian()方法获取当前读取数据的中位数。分析:建立2个大根堆,一个max用于存放数据中较小的部分,一个min存放较大的部分。整体思路是最后若max+...原创 2018-12-14 16:05:35 · 485 阅读 · 1 评论 -
T39:和为S的连续正数序列(Java)
题目:输出所有和为S的连续正数序列。序列内按照从小至大的顺序,序列间按照开始数字从小到大的顺序比如 输入15输出为public class FindContinuousSequence1 { public static ArrayList<ArrayList<Integer> > FindContinuousSequence(int sum) { A...原创 2018-12-09 13:37:46 · 81 阅读 · 0 评论 -
T52:链表中环的入口(Java)
题目:给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null这个题和前面有个题类似public class EntryNodeOfLoop1 { public class ListNode { int val; ListNode next = null; ListNode(int val) { this.va...原创 2018-12-12 11:09:18 · 79 阅读 · 0 评论