![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
牛客算法
canmengmeng
这个作者很懒,什么都没留下…
展开
-
字符串的旋转(牛客网)
题目描述对于一个字符串,和字符串中的某一位置,请设计一个算法,将包括i位置在内的左侧部分移动到右边,将右侧部分移动到左边。给定字符串A和它的长度n以及特定位置p,请返回旋转后的结果。测试样例:"ABCDEFGH",8,4返回:"FGHABCDE" import java.util.*;public class StringRotation { publ...原创 2018-09-25 23:38:47 · 455 阅读 · 0 评论 -
空格替换(牛客网)
请编写一个方法,将字符串中的空格全部替换为“%20”。假定该字符串有足够的空间存放新增的字符,并且知道字符串的真实长度(小于等于1000),同时保证字符串由大小写的英文字母组成。给定一个string iniString 为原始的串,以及串的长度 int len, 返回替换后的string。测试样例:"Mr John Smith”,13返回:"Mr%20John%20Smith"...原创 2018-09-29 00:10:14 · 226 阅读 · 0 评论 -
像素翻转(牛客网)
题目描述有一副由NxN矩阵表示的图像,这里每个像素用一个int表示,请编写一个算法,在不占用额外内存空间的情况下(即不使用缓存矩阵),将图像顺时针旋转90度。给定一个NxN的矩阵,和矩阵的阶数N,请返回旋转后的NxN矩阵,保证N小于等于500,图像元素小于等于256。测试样例:[[1,2,3],[4,5,6],[7,8,9]],3返回:[[7,4,1],[8,5,2],[9...原创 2018-09-29 00:12:39 · 117 阅读 · 0 评论 -
翻转子串(牛客网)
题目描述假定我们都知道非常高效的算法来检查一个单词是否为其他字符串的子串。请将这个算法编写成一个函数,给定两个字符串s1和s2,请编写代码检查s2是否为s1旋转而成,要求只能调用一次检查子串的函数。给定两个字符串s1,s2,请返回bool值代表s2是否由s1旋转而成。字符串中字符为英文字母和空格,区分大小写,字符串长度小于等于1000。测试样例:"Hello world","wo...原创 2018-09-29 00:17:35 · 232 阅读 · 0 评论 -
电话号码分身(牛课网)
题目描述继MIUI8推出手机分身功能之后,MIUI9计划推出一个电话号码分身的功能:首先将电话号码中的每个数字加上8取个位,然后使用对应的大写字母代替 ("ZERO", "ONE", "TWO", "THREE", "FOUR", "FIVE", "SIX", "SEVEN", "EIGHT", "NINE"原创 2018-10-15 11:56:35 · 222 阅读 · 0 评论 -
构造MaxTree(牛客网)
题目描述对于一个没有重复元素的整数数组,请用其中元素构造一棵MaxTree,MaxTree定义为一棵二叉树,其中的节点与数组元素一一对应,同时对于MaxTree的每棵子树,它的根的元素值为子树的最大值。现有一建树方法,对于数组中的每个元素,其在树中的父亲为数组中它左边比它大的第一个数和右边比它大的第一个数中更小的一个。若两边都不存在比它大的数,那么它就是树根。请证明这个方法的正确性,同时设计O...原创 2018-10-29 14:46:17 · 153 阅读 · 0 评论 -
拓扑结构相同子树(牛客网)
题目描述对于两棵彼此独立的二叉树A和B,请编写一个高效算法,检查A中是否存在一棵子树与B树的拓扑结构完全相同。给定两棵二叉树的头结点A和B,请返回一个bool值,代表A中是否存在一棵同构于B的子树。 判断A中是否存在一颗子树与B相同。可以先将A和B都转化为同一遍历顺序下的字符串,空指针用#填充再判断A中有没有子字符串是B可以直接调用String中contains方法,也...原创 2018-10-29 15:04:54 · 345 阅读 · 2 评论 -
二叉树平衡检查(牛客网)
题目描述实现一个函数,检查二叉树是否平衡,平衡的定义如下,对于树中的任意一个结点,其两颗子树的高度差不超过1。给定指向树根结点的指针TreeNode* root,请返回一个bool,代表这棵树是否平衡。思路:1、先求出左右两颗子树的高度,再判断是否平衡2、递归大法贴代码:import java.util.*;/*public class TreeNode { ...原创 2018-10-29 15:21:15 · 223 阅读 · 0 评论 -
不用加减乘除做加法(牛课网)
题目描述写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。public class Solution { public int Add(int num1,int num2) { do{ int help1 = num1 ^ num2; int help2 = (num1 & num...原创 2018-10-24 09:20:42 · 115 阅读 · 0 评论 -
二叉树的镜像(牛客网)
题目描述操作给定的二叉树,将其变换为源二叉树的镜像。输入描述:二叉树的镜像定义:源二叉树 8 / \ 6 10 / \ / \ 5 7 9 11 镜像二叉树 8 / \ 10 6 / \ / \ 11 9 7 5...原创 2018-10-24 09:28:13 · 155 阅读 · 0 评论 -
顺时针打印矩阵(牛客网)
题目描述输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.import java.util.ArrayList;public class Solution { ...原创 2018-10-24 10:16:38 · 161 阅读 · 1 评论 -
原串翻转(牛客网)
题目描述请实现一个算法,在不使用额外数据结构和储存空间的情况下,翻转一个给定的字符串(可以使用单个过程变量)。给定一个string iniString,请返回一个string,为翻转后的字符串。保证字符串的长度小于等于5000。测试样例:"This is nowcoder"返回:"redocwon si sihT" import java.util.*;pub...原创 2018-09-29 00:07:30 · 223 阅读 · 0 评论 -
确定字符互异(牛客网)
题目描述请实现一个算法,确定一个字符串的所有字符是否全都不同。这里我们要求不允许使用额外的存储结构。给定一个string iniString,请返回一个bool值,True代表所有字符全都不同,False代表存在相同的字符。保证字符串中的字符为ASCII字符。字符串的长度小于等于3000。测试样例:"aeiou"返回:True"BarackObama"返回:Fa...原创 2018-09-28 23:52:04 · 118 阅读 · 0 评论 -
之字形打印矩阵(牛客网)
题目描述对于一个矩阵,请设计一个算法,将元素按“之”字形打印。具体见样例。给定一个整数矩阵mat,以及他的维数nxm,请返回一个数组,其中元素依次为打印的数字。测试样例:[[1,2,3],[4,5,6],[7,8,9],[10,11,12]],4,3返回:[1,2,3,6,5,4,7,8,9,12,11,10] import java.util.*;publi...原创 2018-09-26 00:06:48 · 275 阅读 · 0 评论 -
顺时针旋转矩阵(牛课网)
题目描述有一个NxN整数矩阵,请编写一个算法,将矩阵顺时针旋转90度。给定一个NxN的矩阵,和矩阵的阶数N,请返回旋转后的NxN矩阵,保证N小于等于300。测试样例:[[1,2,3],[4,5,6],[7,8,9]],3返回:[[7,4,1],[8,5,2],[9,6,3]] import java.util.*;public class Rotate { ...原创 2018-09-26 09:56:40 · 139 阅读 · 0 评论 -
相邻最大差值(牛课网)
题目描述请设计一个复杂度为O(n)的算法,计算一个未排序数组中排序后相邻元素的最大差值。给定一个整数数组A和数组的大小n,请返回最大差值。保证数组元素个数大于等于2小于等于500。测试样例:[9,3,1,10],4返回:6 import java.util.*;public class MaxDivision { public int findMaxD...原创 2018-09-26 10:46:10 · 154 阅读 · 0 评论 -
串的模式匹配(牛课网)
题目描述对于两个字符串A,B。请设计一个高效算法,找到B在A中第一次出现的起始位置。若B未在A中出现,则返回-1。给定两个字符串A和B,及它们的长度lena和lenb,请返回题目所求的答案。测试样例:"acbc",4,"bc",2返回:2 第一种解法:直接调用String中 查找函数import java.util.*;public class Strin...原创 2018-09-26 11:21:23 · 119 阅读 · 0 评论 -
5-血型遗传检测(牛客网)
题目描述血型遗传对照表如下:父母血型 子女会出现的血型 子女不会出现的血型 O与O O A,B,AB A与O A,O B,AB A与A A,O B,AB A与B A,B,AB,O —— A与AB A,B,AB O B与O B,O A,AB B与B B,O A,AB ...原创 2018-09-26 14:39:15 · 982 阅读 · 0 评论 -
字符串替换(牛客网)
题目描述请你实现一个简单的字符串替换函数。原串中需要替换的占位符为"%s",请按照参数列表的顺序一一替换占位符。若参数列表的字符数大于占位符个数。则将剩下的参数字符添加到字符串的结尾。给定一个字符串A,同时给定它的长度n及参数字符数组arg,请返回替换后的字符串。保证参数个数大于等于占位符个数。保证原串由大小写英文字母组成,同时长度小于等于500。测试样例:"A%sC%sE",7...原创 2018-09-26 14:58:44 · 1544 阅读 · 1 评论 -
棋子翻转(牛客网)
题目描述在4x4的棋盘上摆满了黑白棋子,黑白两色的位置和数目随机其中左上角坐标为(1,1),右下角坐标为(4,4),现在依次有一些翻转操作,要对一些给定支点坐标为中心的上下左右四个棋子的颜色进行翻转,请计算出翻转后的棋盘颜色。给定两个数组A和f,分别为初始棋盘和翻转位置。其中翻转位置共有3个。请返回翻转后的棋盘。测试样例:[[0,0,1,1],[1,0,1,0],[0,1,1,0...原创 2018-09-27 14:10:18 · 835 阅读 · 0 评论 -
最高分是多少(牛客网)
题目描述老师想知道从某某同学当中,分数最高的是多少,现在请你编程模拟老师的询问。当然,老师有时候需要更新某位同学的成绩.输入描述:输入包括多组测试数据。每组输入第一行是两个正整数N和M(0 < N <= 30000,0 < M < 5000),分别代表学生的数目和操作的数目。学生ID编号从1编到N。第二行包含N个整数,代表这N个学生的初始成绩,其中第i个...原创 2018-09-27 15:03:30 · 280 阅读 · 0 评论 -
树的高度(牛客网)
import java.util.Scanner;/* * 题目描述现在有一棵合法的二叉树,树的节点都是用数字表示,现在给定这棵树上所有的父子关系,求这棵树的高度输入描述:输入的第一行表示节点的个数n(1 ≤ n ≤ 1000,节点的编号为0到n-1)组成,下面是n-1行,每行有两个整数,第一个数表示父节点的编号,第二个数表示子节点的编号输出描述:输出树的高度,为一个整数示例...原创 2018-10-12 13:50:34 · 244 阅读 · 0 评论 -
句子反转(牛客网)
import java.util.Scanner;/* * 题目描述给定一个句子(只包含字母和空格), 将句子中的单词位置反转,单词用空格分割, 单词之间只有一个空格,前后没有空格。 比如: (1) “hello xiao mi”-> “mi xiao hello”输入描述:输入数据有多组,每组占一行,包含一个句子(句子长度小于1000个字符)输出描述:对于每个测试示例,要求...原创 2018-10-12 13:51:03 · 852 阅读 · 0 评论 -
重建二叉树(牛客网)
从前序遍历和中序遍历重建一个二叉树。步骤如下:1、根据前序遍历的第一个元素建立根节点2、在中序遍历找到这个元素,左边的元素都是根节点的左子树的结点,右边的元素都是右子树的结点3、在前序遍历中找到属于左右子树的前序序列4、左子树重复1235、右子树重复1236、返回根节点 例如前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8...原创 2018-10-24 10:59:15 · 272 阅读 · 0 评论