牛客网OJ
Mason97
这个作者很懒,什么都没留下…
展开
-
【牛客网】从单向链表中删除指定值的节点
题目不难,但是坑的是换行空格输出格式中,每一个数字后面需要有一个空格,最后一个数字也要有一个空格(真坑),然后加一个换行。原创 2020-05-21 18:52:21 · 221 阅读 · 0 评论 -
【牛客网】成绩排序
我使用LinkedHashMap,但是没有考虑到名字可能重名,然后就导致,被覆盖的问题。发生错误进行了改进:存入数据时:取出数据时:import java.util.*;public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); while (in.hasNext()) { int ...原创 2020-05-20 10:46:01 · 257 阅读 · 0 评论 -
【牛客网】在字符串中找出连续最长的数字串
这道题目有个坑点,题目没有说清楚输出,当有相同最大长度的字符数字子串 怎么输出。如下图就知道了,还需要按顺序,所以不能用HashMap,要用LinkedHashMap原创 2020-05-18 10:03:12 · 261 阅读 · 0 评论 -
【牛客网】放苹果
是一个数学题目:应用了递归的思想。f(m,n) m为苹果数,n为盘子数。如果n>m f(m,n)=f(m,m) 因为一定有n-m个盘子是空的。如果n<=m,f(m,n)=f(m-n,n)+f(m,n-1)。分成了两种情况,每一个盘子都有苹果;至少有一个盘子没有苹果。利用这个递推公式就可以求出答案。import java.util.Scanner;public class Main { public static void main(String[] args) { .原创 2020-05-17 23:03:47 · 249 阅读 · 0 评论 -
【牛客网】称砝码 增强for循环中 修改元素报错
我在代码中,对HashSet进行增强for循环,并在循环中进行添加元素的操作,结果造成报错:所以学到了一个知识点。foreach的底层就是迭代器。在增强for循环中不能修改集合,否则会出现并发修改异常。除非你用迭代器去修改元素,例如可以用:iterator.remove();来删除元素。...原创 2020-05-17 21:04:46 · 241 阅读 · 0 评论 -
【牛客网】字符串合并处理
自己没有仔细读题目,如果是这些字符就一顿操作。意味着不是这些字符,就不操作…以后要认真读题。import java.util.Arrays;import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); while (in.hasNext()) {原创 2020-05-17 11:39:26 · 279 阅读 · 0 评论 -
【牛客网】整数与IP地址间的转换
网址链接第一版答案:package May16;import java.util.*;public class Demo12 { public static void main(String[] args) { Scanner in = new Scanner(System.in); while (in.hasNext()) { String ip = in.next(); String address原创 2020-05-16 23:37:12 · 290 阅读 · 0 评论 -
【牛客网】查找兄弟单词
题目链接一个小坑:题目中要求输出第x个兄弟单词。需要判断一下,如果这个数x太大了,就不输出。package May16;import java.util.*;/** * 有40%的通过率,我考虑可能是 单词书中不储存 相同的单词?试一下 * 不是这个原因,错在,题目中要求输出第x个兄弟单词。需要判断一下,如果这个数x太大了,就不输出。 */public class Demo11 { public static void main(String[] args) {原创 2020-05-16 22:28:44 · 198 阅读 · 0 评论 -
【牛客网】一个输出回车的思考 换行的思考
如你所见,我想输出一定数目的“0”,但是考虑到最后要打印一个换行。所以我采用了错误做法,没有考虑到什么呢,我没有考虑到zero为零的情况。这样我一定会打印一个0,但是事实上不应该打印。正确的做法如正确做法,我在循环外面打印一个换行就ok了~错误做法:正确做法:...原创 2020-05-16 17:10:07 · 333 阅读 · 0 评论 -
【牛客网】密码截取 (即: 找到字符串中对称子串的最大长度)
import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); while (in.hasNext()) { String str = in.next(); int len = str.length(); ...原创 2020-05-16 16:45:36 · 301 阅读 · 0 评论 -
【牛客网】求解立方根 保留小数
我的做法,利用二分法,找方程的根。x^3-input = 0;import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); while (in.hasNext()) { double d = in.nextDouble(); ...原创 2020-05-16 15:05:55 · 670 阅读 · 0 评论 -
【牛客网】输入一行字符,分别统计出包含英文字母、空格、数字和其它字符的个数
题目简单,但是题目最终需要循环输入,但是我看题目,并没有需要循环输入呀看来,以后不管如何,都要循环输入。原创 2020-05-16 14:17:40 · 339 阅读 · 0 评论 -
【牛客网】合唱团
链接转换思维很重要。问出队的最少人数=留下的最多人数继续分析。怎么求出留下的最多人呢。假设第i个人一定留下,作为队伍的“中间个头最高的那个人”。我求出i留下作为最高的人时的最多人数。然后遍历每个人,就知道了可以留下的最多人。然后我怎么知道,第i人一定在,并作为“中心”的情况下,队列的最多人数呢?我求出从左到i的最大增序列人数。求出从右到左的最大增序列人数。这样就知道了i留下,作为“中心”时。队列的最大人数。那我怎么求单方向的,到i为止的增序列最大人数呢。假设我求从左到右方向。假设原创 2020-05-16 13:29:34 · 278 阅读 · 0 评论 -
【牛客网】之间以空格分开
原创 2020-05-16 12:07:35 · 155 阅读 · 0 评论 -
【牛客网】子网掩码题目 Integer.toBinaryString()知识点
输出如图,但是我其实想让16转化为:00010000的形式,但是,没有实现。所以如果位数少于8位的话,需要在前面补全。原创 2020-05-16 11:53:53 · 192 阅读 · 0 评论 -
【牛客网】分组背包客问题 0/1背包问题 完全背包问题
其实所有的背包问题都依赖于0/1背包问题0/1背包问题(每个物品要么选要么不选)背包有上限Limit有一些物品,每个有Cost,有Value问最大的收益举例子吧:Limit为8物品1:cost=2,value=3物品2:cost=3,value=4物品3:cost=4,value=5物品4:cost=5,value=6解法是遍历物品,然后更新你的收获数组。直到遍历了所有的物品。那么你就得到了最终你的收获。cost和value是第i个物品的花费和价值:则有:f(i,v) =原创 2020-05-15 23:34:35 · 977 阅读 · 0 评论 -
【牛客网】单词倒排
敲完了代码,发现只有90%case通过了。百思无解。懂了吧。感觉牛客网的题目,需要你自己去想测试用例。并且题目还时不时给你挖坑。“欸,我没说不存在这样的情况呀,你没想到嘛。”呵呵...原创 2020-05-15 15:01:16 · 136 阅读 · 0 评论 -
【牛客网】判断一个字符串是否有 长度大于2 的重复子串
判断一个字符串是否有 长度大于2 的重复子串以下的三个例子都通过了测试,但是其实是测试用例有漏洞。没有类似含有AAAA的测试用例我的做法:(当然用set就可以了,不必用map,就不改了)你会发现我对比了很多子串的长度。其实是没有必要的。比如我对比出了有两个长度为5的子串重复。其实它一定有长度为3的部分重复。所以只需要保证没有长度为3的子串重复就行了。 public static boolean method(String str) { int len = str.le原创 2020-05-15 12:06:08 · 3373 阅读 · 0 评论 -
【牛客网】删除字符串中出现次数最少的字符后的字符串
这道题的意思是:找到一个字符串中出现次数最少的那个字符或者那些字符。都删掉。我的思路是,建立一个数组,记录每个字符出现的次数。找到最少的那个次数。遍历数组,将次数等于最小值的那些字符的asc码存在一个list中。然后建立一个stringBuffer,遍历原始字符串,每一个循环单元,遍历list,看是否是是那些要被删除的字符。得出结果。感觉有些麻烦。看评论区,改进了一些我的做法。没有必要记录那些位置,因为我建立的数组就是说明了位置。所以不用建立list。只需在遍历字符串的时候,看一下这个字符对应的数..原创 2020-05-15 11:01:09 · 379 阅读 · 0 评论 -
求一个数的质数因子【其实不用判断是不是质数】
注解的地方是我用来判断是不是质数的。然后实际上是不需要判断的。为什么不用判断呢。假设混入了一个合数x,说明它有2~x-1这之间的因数。但是因为是从小到大除过来的,所以不可能留着这个因数,留到现在。所以,不用判断是不是质数。从小到大一路除过来的,一定是质数。package May14;import java.util.Scanner;public class Demo08 { public String getResult(long ulDataInput) { if(ul原创 2020-05-14 23:35:15 · 396 阅读 · 1 评论 -
牛客网的三道算法题目
华为2016校园招聘上机笔试题牛客网网址链接第一题import java.util.Scanner;// 真坑,Q x y x居然可以大于ypublic class Demo11 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); while (scanner.hasNext()) { int to原创 2020-05-14 19:53:27 · 549 阅读 · 0 评论 -
用来熟悉牛客网OJ的一道题目
import java.util.Arrays;import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); while (scanner.hasNextLine()) { String s = scanner.nextLine(); .原创 2020-05-14 12:49:36 · 140 阅读 · 0 评论