本文题目转载自 :https://blog.csdn.net/qq_45915803/article/details/124637118题目一:
小团饲养了一小缸鱼,并且买了A、B、C三类饲料来喂养它们,小团的饲养计划如下:
—— 在每周一、五、六,喂8粒A类饲料;
—— 在每周二、日,喂5颗B类饲料;
—— 在每周三、四,喂7颗C类饲料。
假设在某个周一,小团一次性购买了A、B、C三类饲料各a、b、c颗,并在当天开始饲养,请问如果小团按照它的饲养计划进行喂食,
请问这批饲料可以吃多少天(周一当天也算一天)?样例输入
8 6 6
样例输出
2

分析:

每周一、五、六:喂投8颗A类饲料;

每周二、日:喂投5颗B类饲料;

每周三、四:喂投7颗C类饲料;

由此可得序列:8-5-7-7-8-8-5 该序列每七天一循环。

-8 -5 -7 -7 -8 -8 -5
0 1 2 3 4 5 6

将该序列存入一数组中,对应下标加一代表其对应每周的哪一天,例如下标为0 则0+1=1代表星期一,-8表示那一天A饲料剩余总值减去8;

[0]-[4]-[5]存储A饲料的剩余数

[1]-[6]存储B饲料的剩余数

[2]-[3]存储C饲料的剩余数

public class TestDemo1 {//8 5 7 7 8 8 5 为一周期//标记A饲料为8 B饲料为5 C饲料为7public static void main(String[] args) {/*** 针对条件选择相应的测试用例*/int day = days(8,5,7);  //3天int day2 = days(8,6,6);  //2天int day3 = days(8,3,8);  //1天int day4 = days(7,5,7);  //0天int day5 = days(8,5,14);  //4天int day6 = days(16,5,14);  //5天int day7 = days(100,100,100);  //28天int day8 = days(23,65,43);  //5天System.out.println(day);System.out.println(day2);System.out.println(day3);System.out.println(day4);System.out.println(day5);System.out.println(day6);System.out.println(day7);System.out.println(day8);}public static int days(int a, int b, int c) {if (a < 8) {return 0;}int day = 0;int[] index = new int[7];int a1 = a / 8;  //计算A饲料一共可以吃多少天int b1 = b / 5;  //计算B饲料一共可以吃多少天int c1 = c / 7;  //计算C饲料一共可以吃多少天int periodicity = 0;  //周期数while (true){a1-=3;  //计算A饲料一共可以吃多少周b1-=2;  //计算B饲料一共可以吃多少周c1-=2;  //计算C饲料一共可以吃多少周if (a1<0||b1<0||c1<0){break;}periodicity++;  //最后得出一共吃了几个星期}index[5] = a;  //将A饲料的总数存入index[5]中index[6] = b;  //将B饲料的总数存入index[6]中index[3] = c;  //将C饲料的总数存入index[3]中for (int j = 0; j <= periodicity; j++) {for (int i = 0; i < index.length; i++) {if (i == 0 || i == 4 || i == 5) {if(i == 4){index[4] = index[0];}if(i == 5){index[5] = index[4];}if(i == 0){index[0] = index[5];}index[i] -= 8;} else if (i == 1 || i == 6) {if(i == 1){index[1] = index[6];}if(i == 6){index[6] = index[1];}index[i] -= 5;} else if (i == 2 || i == 3) {if(i == 2){index[2] = index[3];}if(i == 3){index[3] = index[2];}index[i] -= 7;}if(index[i] < 0){break;}day++;}}return day;}
}

题目二:

小美得到了一个只包含’0’和’1’两种字符的字符串,现在她可以往这个字符串的任意位置添加任意个字符’1’,请问她至少需要添加多少个字符’1’才能使添加后的字符串是一个回文串?
输入描述
第一行一个整数T,表示有T组数据。
接下来T行,第i行是一个只包含’0’和’1’两种字符的字符串si。
1<=T<=10, 1<=字符串si的长度<=100000
输出描述
T行,每行一个整数,其中第i行表示输入描述中的字符串si至少需要添加多少个字符’1’使其变成回文串。
样例输入
4
10101
00001
01001101
1110
样例输出
0
1
2
3
样例解释
添加的字串用[]示意:
10101=>10101,无需添加即是回文串。
00001=>[1]00001
01001101=>[1]01[1]001101
1110=>1110[1][1][1]
public class TestDemo2 {public static void main(String[] args) {//判断回文/*** 测试用例*/
//        String str = "101010";  //至少添加1个
//        String str = "10101";   //至少添加0个
//        String str = "00001";   //至少添加1个
//        String str = "001001101";   //至少添加4个 [1]001001101-->[1]0[1]01001101-->[1]0[1][1]01001101-->[1]0[1][1]010[1]01101
//        String str = "1110";   //至少添加3个
//        String str = "0010";   //至少添加1个
//        String str = "01001101";   //至少添加2个Scanner sc = new Scanner(System.in);System.out.println("输入要判断的行数:");int n = sc.nextInt();for (int i = 1; i <= n; i++) {System.out.println("请输入字符串:");add(sc.next());}
//        System.out.println("请输入字符串:");
//        String str = sc.nextLine();
//        add(str);}public static void add(String str){LinkedList<Character> linkedList = new LinkedList<Character>();for (int i = 0; i < str.length(); i++) {linkedList.add(str.charAt(i));}int count = 0;int i = 0;int j = linkedList.size()-1;while (i<=j){for (i = 0,j = linkedList.size()-1; i < linkedList.size(); i++,j--) {if(linkedList.get(i)==linkedList.get(j)){continue;}else {if(linkedList.get(j).equals('0')){linkedList.add(j+1, '1');count++;break;} else if (linkedList.get(i).equals('0')) {if(i==0){linkedList.addFirst('1');}else {linkedList.add(i,'1');}count++;break;}}}}for (int k = 0; k < linkedList.size(); k++) {System.out.print(linkedList.get(k));}System.out.println("至少需要添加"+count+"个1");}
}

题目三:

时间限制: 3000MS
内存限制: 589824KB
题目描述:
小团在一个无限长的一维坐标轴上玩一个探险游戏,初始时他位于原点,并有k点体力。每往正方向走一格(无法往反方向移动)需要消耗一点体力。要求小团在任何时刻体力都不能小于零。已知坐标轴上有n个坐标上有体力药水,到达这些坐标时,可以恢复一定量的体力。小团想知道,他所能到达的最远坐标是多远?
<p>
输入描述
第一行两个正整数k、n,分别表示小团初始有k点体力,以及坐标轴上有n个坐标上有体力药水。
接下来一行n个正整数,第i个数xi表示在xi这个坐标上有体力药水。(xi互不相同)
接下来一行n个正整数,第i个数ti表示在xi这个坐标上的体力药水可以恢复ti点体力。
1<=k <=2000000, 1<=n<=20000,1<=xi<=100000000,1<= ti<=10000
输出描述
一行一个正整数,表示小团所能到达的最远坐标。
样例输入
5 2
6 3
1 2
样例输出
8
提示
样例解释1
初始有5点体力,到达坐标3时还剩余2点体力,补充2点,共余4点;
到达坐标6时还剩下1点,补充1点,共余2点;
耗尽体力时处于坐标8。
输入样例2
2 1
2
1
输出样例2
3
样例解释2
初始有2点体力,在坐标2补充1点体力到达坐标3。
输入样例3
2 1
3
1
输出样例3
2
样例解释3
初始有2点体力,到达坐标2耗尽体力停止。
public class TestDemo3 {public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println("请输入初始体力和药水总数:");int initialValue = sc.nextInt();;   //初始体力int liquidMedicine = sc.nextInt();     //坐标上药水的总数int[] x = new int[liquidMedicine];  //每瓶药水所在坐标int[] t = new int[liquidMedicine];  //对应坐标上每瓶药水的恢复体力值System.out.println("请输入每瓶药水所在坐标:");for (int i = 0; i < liquidMedicine; i++) {x[i] = sc.nextInt();}System.out.println("请输入对应坐标上每瓶药水的恢复体力值:");for (int i = 0; i < liquidMedicine; i++) {t[i] = sc.nextInt();}HashMap<Integer, Integer> coord = new HashMap<Integer, Integer>();if(liquidMedicine>0){for (int i = 0; i < liquidMedicine; i++) {coord.put(x[i], t[i]);}}Set<Integer> set = coord.keySet();int count=0;while (initialValue>0){count++;for (Integer integer : set) {if(count==integer){             //到达药水位置initialValue+=coord.get(integer);   //获得体力}}initialValue--;}System.out.println(count);}
}

2022Java后端之美团笔试题相关推荐

  1. Java后端之美团笔试题

    更新的时间:2022-5-7笔试 今天下午考的笔试,好难,我把题目贴这里,会做的大佬贴一下思路吧!!! 题目一: 小团饲养了一小缸鱼,并且买了A.B.C三类饲料来喂养它们,小团的饲养计划如下: -- ...

  2. 美团笔试题 淘汰分数

    美团笔试题 淘汰分数 某比赛已经进入了淘汰赛阶段,已知共有n名选手参与了此阶段比赛,他们的得分分别是a_1,a_2-.a_n,小美作为比赛的裁判希望设定一个分数线m,使得所有分数大于m的选手晋级,其他 ...

  3. 2018 java 美团笔试题

    想进美团的同学注意了,这里是修真院面试笔记整理,那么这里就给大家分享一下 [2018 java 美团笔试题] 技术一面 1.我们先聊聊java基础知识吧,说出Object类的常用方法? 2.刚刚说到o ...

  4. 美团笔试题2021.8.29(第四题求大佬解答)

    美团笔试题2021.8.29 又再帮同学写,推了这周的周赛,侥幸都有点思路 丁香树 题目描述 思路 因为芳香值最大为30,所以用一个数组存储已走过的芳香值,然后走到第i个点,找比当前芳香值小的有多少个 ...

  5. 美团笔试题之查找幸运星

    美团笔试题之查找幸运星 题目其实很简单,特别简单,当时看一眼题目我心中就有思路了,问题就是我卡在了如何循环输入上了,简直是不可思议, 当时我想复杂了,现在看来如此简单的问题我卡了这么久,实在是不应该啊 ...

  6. 美团笔试题 小美的跳方格

    看到一道美团(不知道什么时候)的笔试题,问题描述如下: 在网上查到过其他网友的解法,感觉和我的理解不太一样, 这里写一下我自己对题目的理解. 我比较疑惑的是小美跳方格的方式,是每次移动一格,还是可跳到 ...

  7. [笔试题目] 美团2015年9月后端开发工程师笔试题

    由于题目是我通过草稿回顾,可能表述不清,但是内容大致一样.希望该博客内容对你有所帮助,题目所有权归美团公司所有,我只是想分享给大家学习,还望贵公司海涵~ 面试职位 应聘职位:后端开发工程师 岗位描述: ...

  8. 【web后端开发】笔试题收集

    4399Web后端开发笔试题 题目来源:牛客网 1.linux中,用mkdir命令创建新的目录时,如果需要在其父目录不存在时先创建父目录的选项是   D A  -h B -d C  -f D -p [ ...

  9. 字节跳动2019春招后端开发工程师-笔试题解析

    一.简介 字节跳动2019春招第三批在线笔试(后端开发工程师)已结束,结果也是凉凉.本文主要是分析这次的题目,并给出代码,以供大家参考和讨论,如有错误之处,还望帮忙指正,谢谢每位优秀的程序员. 二.题 ...

  10. 美团笔试题:股票交易日

    在股市的交易日中,假设最多可进行两次买卖(即买和卖的次数均小于等于2),规则是必须一笔成交后进行另一笔(即买-卖-买-卖的顺序进行).给出一天中的股票变化序列,请写一个程序计算一天可以获得的最大收益. ...

最新文章

  1. bugku 杂项 就五层你能解开吗_你能解开这个和数字有关的逻辑解谜游戏吗? | 每日一考...
  2. Gamma阶段第一次scrum meeting
  3. 轻断食是一种科学的减肥方法吗?
  4. 我们破解了几乎所有智能手机的人脸识别,唯独没有iPhone
  5. [WC2018]通道——边分治+虚树+树形DP
  6. Xamarin Anroid开发教程之验证环境配置是否正确
  7. java B2B2C 源码多租户电子商城系统-Spring Cloud组件详解...
  8. 常用代码生成工具介绍
  9. 用函数计算搭建页面的前端CICD系统,提升访问体验
  10. Frame - 快速创建高品质的 Web 应用原型
  11. mysql内外三种连接_mysql之内连接,外连接(左连接,右连接),union,union all的区别...
  12. 蓝桥杯 入门训练 A+B问题进阶版(两个3000位数的加法)
  13. html5 crop,HTML5内联SVG autocrop空格
  14. windows使用命令或批处理文件打开远程桌面
  15. 19清明假前一周安排
  16. OneRel: Joint Entity and Relation Extraction with One Module in One Step
  17. 学习笔记——STM32摄像头OV7725(一)
  18. 南京市城乡地籍信息一体化管理的几点思考
  19. 《Java修炼指南:高频源码解析》阅读笔记一Java数据结构的实现集合类
  20. 使用gatekeeper限制kubernetes创建特定类型的资源

热门文章

  1. java获取上个月15号_java获取当前上一周、上一月、上一年的时间
  2. SQL Server 索引 之 书签查找 第十一篇
  3. 计算机学报latex模板\renewcommand\figurename失效
  4. 林语堂的《武则天传》读后感
  5. linux 搜狗输入法显示繁体字,搜狗输入法繁体字切换
  6. 跨平台显示MMD模型
  7. Codeforces1336A Linova and Kingdom (思维)
  8. 将Ubuntu中文目录改为英文目录
  9. 英雄无敌Ⅲ之游戏修改器DIY
  10. 微信公众号跳转微信小程序,自定义微信跳转标签