![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
OJ题
糯米团子沐沐
只有你想不到的,没有你做不到的
展开
-
【剑指offer】二叉搜索树与双向链表
题目描述:输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。分析:利用二叉树的中序遍历方法来实现排序。首先判断给定的根节点是否为空,如果为空那么就直接返回 null ;如果不为空,那就开始遍历他的每一个节点。定义一个栈stack,用来存放每次遍历(cur)的不为空的根节点。如果cur为空了,栈中不为空的话,那么就将...原创 2019-12-26 13:16:24 · 73 阅读 · 0 评论 -
【牛客网OJ题】小易的升级之路
问题描述:小易经常沉迷于网络游戏.有一次,他在玩一个打怪升级的游戏,他的角色的初始能力值为 a。在接下来的一段时间内,他将会依次遇见n个怪物,每个怪物的防御力为b1,b2,b3...bn. 如果遇到的怪物防御力bi小于等于小易的当前能力值c,那么他就能轻松打败怪物,并 且使得自己的能力值增加bi;如果bi大于c,那他也能打败怪物,但他的能力值只能增加bi 与c的最大公约数.那么问题来了,在一...原创 2019-12-03 16:11:33 · 425 阅读 · 0 评论 -
【牛客网OJ题】最高分是多少
问题描述:老师想知道从某某同学当中,分数最高的是多少,现在请你编程模拟老师的询问。当然,老师有时候需要更新某位同学的成绩.输入描述:输入包括多组测试数据。每组输入第一行是两个正整数N和M(0 < N <= 30000,0 < M < 5000),分别代表学生的数目和操作的数目。学生ID编号从1编到N。第二行包含N个整数,代表这N个学生的初始成绩,其...原创 2019-12-03 15:13:11 · 424 阅读 · 0 评论 -
【牛客网OJ题】数字fenlei
问题描述:给定整数正整数,请按要求对数字进行分类,并输出以下5个数字:A1 =能被5整除的数字中所有偶数的和;A2 =将被5除后余1的数字按赋予依次进行交替求和和,即计算n1-n2 + n3-n4 ...;A3 =被5除后余2的数字的个数;A4 =被5除后余3的数字的平均数,精确到小数点后1位;A5 =被5除后余4的数字中最大数字。输入描述:每个输入包含1...原创 2019-12-03 10:31:57 · 168 阅读 · 0 评论 -
【牛客网OJ题】链式A+B
问题描述:有两个用链表表示的整数,每个结点包含一个数位。这些数位是反向存放的,也就是个位排在链表的首部。编写函数对这两个整数求和,并用链表形式返回结果。给定两个链表ListNode* A,ListNode* B,请返回A+B的结果(ListNode*)。测试样例:{1,2,3},{3,2,1}返回:{4,4,4}分析:1.判断给的a,b链表是否为空...原创 2019-12-02 20:11:41 · 286 阅读 · 0 评论 -
【牛客网OJ题】到底买不买
问题描述:小红想买些珠子做一串自己喜欢的珠串。卖珠子的摊主有很多串五颜六色的珠串,但是不肯把任何一串拆散了卖。于是小红要你帮忙判断一下,某串珠子里是否包含了全部自己想要的珠子?如果是,那么告诉她有多少多余的珠子;如果不是,那么告诉她缺了多少珠子。为方便起见,我们用[0-9]、[a-z]、[A-Z]范围内的字符来表示颜色。例如,YrR8RrY是小红想做的珠串;那么ppRYYGrrYBR2...原创 2019-12-02 19:53:50 · 269 阅读 · 0 评论 -
【牛客网OJ题】合并两个有序链表
问题描述:输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。分析:定义一个新的链表,用来存放合并后的链表,并记录该链表的头结点。1.判断list1是否为空,如果为空直接返回list2。同样,判断list2是否为空,如果为空直接返回list1。2.当list1和list2同时都不为空时,开始循环比较list1和list2的val值...原创 2019-12-02 19:34:43 · 395 阅读 · 0 评论 -
【牛客网OJ题】链表分割
问题描述:编写代码,以给定值x为基准将链表分割成两部分,所有小于x的结点排在大于或等于x的结点之前给定一个链表的头指针 ListNode* pHead,请返回重新排列后的链表的头指针。注意:分割以后保持原来的数据顺序不变。分析:定义四个新的节点,分别用来做头插和尾插。定义一个节点,他指向给定节点的头指针。再用两个节点 s, sl 分别作为小于 x 的节点的头指针和尾指针,...原创 2019-11-28 21:08:11 · 175 阅读 · 0 评论 -
【牛客网OJ题】微信红包
问题描述:春节期间小明使用微信收到很多个红包,非常开心。在查看领取红包记录时发现,某个红包金额出现的次数超过了红包总数的一半。请帮小明找到该红包金额。写出具体算法思路和代码实现,要求算法尽可能高效。给定一个红包的金额数组gifts及它的大小n,请返回所求红包的金额。若没有金额超过总数的一半,返回0。测试样例:[1,2,3,2,2],5返回:2分析:...原创 2019-11-28 20:48:22 · 780 阅读 · 0 评论 -
【牛客网OJ题】子串判断
问题描述:现有一个小写英文字母组成的字符串s和一个包含较短小写英文字符串的数组p,请设计一个高效算法,对于p中的每一个较短字符串,判断其是否为s的子串。给定一个string数组p和它的大小n,同时给定string s,为母串,请返回一个bool数组,每个元素代表p中的对应字符串是否为s的子串。保证p中的串长度小于等于8,且p中的串的个数小于等于500,同时保证s的长度小于等于1000。...原创 2019-11-26 22:26:59 · 463 阅读 · 0 评论 -
【牛客网OJ题】DNA序列
分析:从第一个字符开始,每n个为一组,然后开始计算GC的个数,记录第一个字符开始的下标(最终保存的是GC的个数最多的n个字符串的第一个字符的下标)。当找到全部遍历完字符串后,输出GC的个数最多的字符串。import java.util.Scanner;public class Main { public static void main(String[] args) {...原创 2019-11-25 12:33:42 · 325 阅读 · 0 评论 -
【牛客网OJ题】火车进站
问题描述:给定一个正整数N代表火车数量,0 <N <10,接下来输入火车入站的序列,一共N辆火车,每辆火车以数字1-9编号。序列号。输入描述:有多组测试用例,每一组第一行输入一个正整数N(0 <N <10),第二行包括N个正整数,范围为1到9。输出描述:输出以字典序从小到大排序的火车出站序列号,每个编号以空格替换,每个输出序列换行,具体见s...原创 2019-11-24 14:52:41 · 1416 阅读 · 0 评论 -
【牛客网OJ题】饥饿的小易
问题描述:小易总是感觉饥饿,所以作为章鱼的小易经常出去寻找贝壳吃。最开始小易在一个初始位置x_0。对于小易所处的当前位置x,他只能通过神秘的力量移动到 4 * x + 3或者8 * x + 7。因为使用神秘力量要耗费太多体力,所以它只能使用神秘力量最多100,000次。贝壳总生长在能被1,000,000,007整除的位置(比如:位置0,位置1,000,000,007,位置2,000,000,...原创 2019-11-23 20:30:31 · 408 阅读 · 0 评论 -
【牛客网OJ题】尼科彻斯定理
问题描述:例如:1 ^ 3 = 12 ^ 3 = 3 + 53 ^ 3 = 7 + 9 + 114 ^ 3 = 13 + 15 + 17 + 19接口说明原型:/ *功能:验证尼科彻斯定理,即:任何一个整数m的立方都可以写成m个连续奇数之和和。原型:int GetSequeOddNum(int m,char * pcSequeOd...原创 2019-11-21 09:01:08 · 427 阅读 · 0 评论 -
【牛客网OJ题】组个最小数
问题描述:给定数字0-9各若干个。你可以以任意顺序排列这些数字,但必须全部使用。目标是使得最后得到的数尽可能小(注意0不能做首位)。例如:给定两个0,两个1,三个5,一个8,我们得到的最小的数就是10015558。现给定数字,请编写程序输出能够组成的最小的数。输入描述:每个输入包含1个测试用例。每个测试用例在一行中给出10个非负整数,顺序表示我们拥有数字0、数字1...原创 2019-11-21 08:44:16 · 477 阅读 · 0 评论 -
【牛客网OJ题】跟奥巴马一起编程
问题描述:美国总统奥巴马不仅呼吁所有人都学习编程,甚至以身作则编写代码,成为美国历史上首位编写计算机代码的总统。2014年底,为庆祝“计算机科学教育周”正式启动,奥巴马编写了很简单的计算机代码:在屏幕上画一个正方形。现在你也跟他一起画吧!输入描述:输入在一行中给出正方形边长N(3<=N<=20)和组成正方形边的某种字符C,间隔一个空格。输出描述:输出...原创 2019-11-20 18:00:54 · 1103 阅读 · 0 评论 -
【牛客网OJ题】超长正整数相加
问题描述:请设计一个算法完成两个超长正整数的加法。接口说明/*请设计一个算法完成两个超长正整数的加法。输入参数:Stringaddend:加数Stringaugend:被加数返回值:加法结果*/publicStringAddLongInteger(Stringaddend,Stringaugend){/*在这里实现功能*/...原创 2019-11-20 17:49:02 · 517 阅读 · 0 评论 -
【牛客网OJ题】Fibonacci数列
题目描述:Fibonacci数列就形如:0, 1, 1, 2, 3, 5, 8, 13, ...,在Fibonacci数列中的数我们称为Fibonacci数。给你一 个N,你想让其变为一个Fibonacci数,每一步你可以把当前数字X变为X-1或者X+1,现在给你一个数N求最少需要多少步可以变为Fibonacci数。输入描述:输入为一个正整数N(1 ≤ N ≤ 1,000,00...原创 2019-11-15 22:03:37 · 356 阅读 · 0 评论 -
【牛客网OJ题】机器人走方格
问题描述:有一个X*Y的网格,一个机器人只能走格点且只能向右或向下走,要从左上角走到右下角。请设计一个算法,计算机器人有多少种走法给定两个正整数int x,int y,请返回机器人的走法数目,保证x+y小于等于12分析:我们一开始可以画出一个1 * 1的方格,那么很容易观察得到只有一种走法,我们可以画出1 * 2, 2 * 1, 2* 2的方格...1 * 1: ...原创 2019-11-15 21:53:59 · 432 阅读 · 0 评论 -
【牛客网OJ题】颠倒数字
问题描述:输入一个整数,将这个整体以同轴的形式逆序输出程序不考虑负数的情况,若数字含有0,则逆序形式也含有0,如输入为100,则输出为001输入描述:输入一个int整数输出描述:将这个整体以轴线的形式逆序输出示例1输入1516000输出0006151分析:将int类型的数字用求模(求模得到的数字就是...原创 2019-11-14 20:55:29 · 267 阅读 · 0 评论 -
【牛客网OJ题】末尾与多少个0
问题描述:输入一个正整数n,求n!(即阶乘)末尾有多少个0?比如: n = 10; n! = 3628800,所以答案为2 输入描述: 输入为一行,n(1 ≤ n ≤ 1000) 输出描述: 输出一个整数,即题目所求 示例1: 输入10输出2 分析:十的因子是2和5,求末尾有多少个0,也就是间接的再问他能...原创 2019-11-14 20:46:05 · 239 阅读 · 0 评论 -
【牛客网OJ题】删除公共字符
问题描述:输入两个字符串,从第一字符串中删除第二个字符串中所有的字符。例如,输入”They are students.”和”aeiou”,则删除之后的第一个字符串变成”Thy r stdnts.”分析:有三种办法(我知道的就三种):1. 利用map集合,将要删除的字符串的存进map中,遍历原来的字符串,如果字符串中的字符在map中有,那么就进行下一次循环,否则就直接打印。...原创 2019-11-08 21:38:06 · 317 阅读 · 0 评论 -
【牛客网OJ题】字符串中找出连续最长的数字串
问题描述:读入一个字符串str,输出字符串str中的连续最长的数字串 输入描述: 1个测试输入包含1个测试用例,一个字符串str,长度不超过255。 输出描述: 在一行内输出str中里连续最长的数字串。 示例: 输入abcd12345ed125ss123456789 输出123456789 分析:比较每个数字串...原创 2019-11-08 20:07:25 · 635 阅读 · 0 评论 -
【牛客网OJ题】合法括号序列判断
问题描述:对于一个字符串,请设计一个算法,判断其是否为一个合法的括号串。 给定一个字符串A和它的长度n,请返回一个bool值代表它是否为一个合法的括号串。 测试样例: " ( ( ) ( ) ) " , 6 返回:true " ( ) a ( ) ( ) " , 7返回:false 分析:利用栈来解决这个问题,如果是左括号那...原创 2019-11-08 19:47:58 · 807 阅读 · 0 评论 -
【牛客网OJ题】逆序对
问题描述有一组数,对于其中任意两个数组,若前面一个大于后面一个数字,则这两个数字组成一个逆序对。请设计 一个高效的算法,计算给定数组中的逆序对个数。 给定一个int数组A和它的大小n,请返回A中的逆序对个数。保证n小于等于5000。 测试样例: [1,2,3,4,5,6,7,0],8 返回:7 分析:这个题只需要将数组遍历一遍即可,但是需要有两重循环...原创 2019-11-07 20:01:46 · 800 阅读 · 1 评论 -
【牛客网OJ题】汽水瓶
问题描述有这样一道智力题:“某商店规定:三个空汽水瓶可以换一瓶汽水。小张手上有十个空汽水瓶,她最多可以换多少瓶汽水喝?”答案是5瓶。方法如下:先用9个空瓶子换3瓶汽水,喝掉3瓶满的,喝完以后4个空瓶子,用3 个再换一瓶,喝掉这瓶满的,这时候剩2个空瓶子。然后你让老板先借给你一瓶汽水,喝掉这瓶满的,喝完以后用3个空瓶子换一瓶满的还给老板。如果小张手上有n个空汽水瓶,最多可以换多少瓶汽水喝?...原创 2019-11-07 19:56:00 · 660 阅读 · 0 评论 -
【牛客网OJ题】寻找第 K 大
问题描述:有一个整数数组,请你根据快速排序的思路,找出数组中第K大的数。给定一个整数数组a,同时给定它的大小n和要找的K(K在1到n之间),请返回第K大的数,保证答案存在。测试样例:[1,3,5,2,2],5,3返回:2分析:利用sort方法对数组进行排序,排序完成后直接返回第 n-k 个数。排完序的数组顺序是从小到大的,那么取数只需要从后往前取就好...原创 2019-11-06 15:59:55 · 656 阅读 · 0 评论 -
寻找第K 层的节点个数
问题描述:给定一个二叉树,给出要寻找的层数K,求出第K 层的节点个数示例 1:给定的树 root,k=2: 3 / \ 4 5 / \ 1 2第K 层的节点个数为 2分析:首先需要对给的树先做判断是否为空,如果为空直接返回0;如果不为空而给的k的值是1的话,那么就直接返回1;接着就开始调用这个方法去寻找第k层的节点数。...原创 2019-09-16 21:36:04 · 280 阅读 · 0 评论 -
【力扣OJ题】对称二叉树
问题描述:给定一个二叉树,检查它是否是镜像对称的。示例:二叉树[1,2,2,3,4,4,3] 是对称的。 1 / \ 2 2/ \ / \3 4 4 3但是下面这个[1,2,2,null,3,null,3] 则不是镜像对称的: 1 / \ 2 2 \ \ 3 3分析:把它直接看...原创 2019-09-16 21:23:49 · 204 阅读 · 0 评论 -
【力扣OJ题】相同的树
问题描述:给定两个二叉树,编写一个函数来检验它们是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。示例1:输入: 1 1 / \ / \ 2 3 2 3 [1,2,3], [1,2,3]输出: true示例 2:输入...原创 2019-09-16 21:06:11 · 224 阅读 · 0 评论 -
【力扣OJ题】给定一个二叉树,找出其最大深度
问题描述:给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明:叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回它的最大深度3 。分析:把它直接看成只有三个节点(根节点,左子树,...原创 2019-09-16 20:49:04 · 1547 阅读 · 1 评论 -
【力扣OJ题】给定一个二叉树,返回它的中序遍历。
给定一个二叉树,返回它的 中序遍历。示例:输入: [1,null,2,3] 1 \ 2 / 3输出: [1,2,3]进阶:递归算法很简单,你可以通过迭代算法完成吗?分析:对于这类问题,把它直接看成只有三个节点(根节点,左子树,右子树)的树,不需要展开,直接调用。先建立两个list里面的类型是Integer包装类型,一...原创 2019-09-16 20:42:01 · 1575 阅读 · 0 评论 -
将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成 的。
public ListNode mergeTwoLists(ListNode l1, ListNode l2) { ListNode node = new ListNode(-1); ListNode tmpNode = node; while(l1 != null && l2 != null){ if (l1.data > l2.d...原创 2019-04-19 15:55:47 · 306 阅读 · 0 评论 -
查找val所在节点,没有找到返回null
问题描述:查找val所在节点,没有找到返回null分析:按照根 -> 左子树 -> 右子树的顺序进行查找,一旦找到,立即返回,不需要继续在其他位置查找就对根的左子树来说吧,定义一个left,里面初始值是null,查找的话有两种情况,一种是找到了,那么left中放进去的是val的节点,另一种就是没找到,那么left中放进去的就是null,查找完以后判断下l...原创 2019-09-16 21:43:51 · 105 阅读 · 0 评论 -
判断是否存在val值
问题描述:判断是否存在val值,如果存在返回true,反之则返回false分析:首先先判断这棵树是否是空树,如果是空树直接返回false,否则接着在判断根节点的值是否和val相同,如果相同就返回true;否则就再依次判断左子树,右子树。 boolean find2(Node root,int val){ if(root == null){ ...原创 2019-09-16 21:48:34 · 857 阅读 · 0 评论 -
【力扣OJ题】另一个树的子树
问题描述:给定两个非空二叉树 s 和 t,检验s 中是否包含和 t 具有相同结构和节点值的子树。s 的一个子树包括 s 的一个节点和这个节点的所有子孙。s 也可以看做它自身的一棵子树。示例 1:给定的树 s: 3 / \ 4 5 / \1 2给定的树 t: 4 / \1 2返回 true,因为 t 与 ...原创 2019-09-17 16:22:02 · 205 阅读 · 0 评论 -
【力扣OJ题】平衡二叉树
问题描述:给定一个二叉树,判断它是否是高度平衡的二叉树。本题中,一棵高度平衡二叉树定义为:一个二叉树每个节点的左右两个子树的高度差的绝对值不超过1。示例 1:给定二叉树 [3,9,20,null,null,15,7] 3 / \ 9 20 / \ 15 7返回 true示例 2:给定二叉树 [1,2,2,3...原创 2019-09-17 16:08:21 · 339 阅读 · 0 评论 -
【力扣OJ题】二叉树的最近公共祖先
问题描述:给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”示例:例如,给定如下二叉树:root =[3,5,1,6,2,0,8,null,null,7,4]示例 1:输...原创 2019-09-17 22:55:32 · 251 阅读 · 0 评论 -
【力扣OJ题】从前序与中序遍历序列构造二叉树以及后序与中序遍历序列构造二叉树
问题描述:根据一棵树的前序遍历与中序遍历构造二叉树以及后序与中序遍历序列构造二叉树注意:你可以假设树中没有重复的元素。示例:例如,给出前序遍历 preorder =[3,9,20,15,7]中序遍历 inorder = [9,3,15,20,7]后序遍历 postorder = [9,15,7,20,3]返回如下的二叉树: 3 / \...原创 2019-09-17 23:37:47 · 584 阅读 · 0 评论 -
【力扣OJ题】只出现一次的数字
问题描述:给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:算法应该具有线性时间复杂度,不使用额外空间来实现。示例 1:输入: [2,2,1]输出: 1示例2:输入: [4,1,2,1,2]输出: 4有两种方法:异或规律:相同为0,不同为1。异或同一个数两次,原数不变。i...原创 2019-10-09 21:12:58 · 195 阅读 · 0 评论