目录
小蓝有 n 种糖果,每种数量已知。
小蓝不喜欢连续 2 次吃同样的糖果。问有没有可行的吃糖方案。
输入格式:
第一行是整数 n(0
第二行包含 n 个数,表示 n 种糖果的数量 mi,0
输出格式:
输出一行,包含一个 Yes 或No。
输入样例:
在这里给出一组输入。例如:
3 4 1 1输出样例:
在这里给出相应的输出。例如:
No
题目要求我们在第一行输入n个数,表示有n种糖果,然后在第二行输入n个数,分别表示这n种糖果的数量。然后这n种糖果不可以连续 2 次吃同样的糖果,问有没有可行的方法把所有糖果全部吃完的方法。我们可以很简单的知道数量最多的糖果最难吃完,因为吃完它需要很多其他糖果的帮助,不然就连续2次吃了相同的糖果,就不符合题意了。所有得出
除去数量最多的糖果总和>=最多糖果的数量 即可
- import java.util.Scanner;
-
- public class Main {
- public static void main(String[] args) {
- Scanner sc=new Scanner(System.in);
- int n=sc.nextInt();
- int[] arr=new int[n];
- long sum=0;
- for (int i=0;i
- arr[i]=sc.nextInt();
- }
- Arrays.sort(arr);
- for (int i=0;i
1;i++){ - sum+=arr[i];
- }
- if (sum>=arr[n-1]){
- System.out.println("Yes");
- }else {
- System.out.println("No");
- }
- }}
2你究竟有几个好姐妹
1)题目
小李的QQ列表里有很多联系人,他修改了所有人的备注姓名。其中有些联系人名字的前部或后部被加了诸如"好妹妹"的字样。请你打印出小李的所有的女性"好妹妹"。打印时请按照联系人原始名字升序排列,如果两人名字相同则年龄小的排在前面;如果两人年龄相同,则较早成为好友的排在前面。题目保证好妹妹标志不会同时出现在前缀和后缀,同一天里也不会添加名字相同并且年龄相同的"好妹妹"。
输入格式:
第一行给出标识好妹妹标志的字符串,该字符串内不包含空格,最大长度为6并且不区分大小写。第二行给出QQ列表的所有联系人个数n (1≤ n ≤105),随后n行列出所有联系人信息,每行信息格式如下:
备注姓名 性别 年龄 结交好友日期
其中备注姓名不超过30个字符;性别用字符表示,F表示女性,M代表男性;结交好友日期采用诸如"2001.01.01"的格式表示。
输出格式:
第一行输出好妹妹的数目k,随后k行打印出去掉好妹妹标志的名字、年龄以及结交好友日期。
输入样例:
- hmm
- 10
- Zoehmm F 28 2001.01.01
- hmmBeith F 18 2010.10.21
- Zack M 35 1999.09.18
- hmmAdam F 21 2010.10.21
- Beithhmm F 21 2010.10.21
- Chelse F 45 2005.12.03
- DaisyHMM F 30 2008.08.05
- Eston M 18 2015.03.04
- hmmFrany F 8 2018.07.15
- JackHM F 7 2017.09.11
输出样例:
输出:
- 6
- Adam 21 2010.10.21
- Beith 18 2010.10.21
- Beith 21 2010.10.21
- Daisy 30 2008.08.05
- Frany 8 2018.07.15
- Zoe 28 2001.01.01
2)题目解读
题目要求我们找出有好妹妹的标记的人,并且打印时 按照联系人原始名字升序排列,如果两人名字相同则年龄小的排在前面;如果两人年龄相同,则较早成为好友的排在前面。并且要注意题目保证好妹妹标志不会同时出现在前缀和后缀,同一天里也不会添加名字相同并且年龄相同的"好妹妹"。
好妹妹标志的字符串,不区分大小写。
3)代码
- import java.io.BufferedReader;
- import java.io.IOException;
- import java.io.InputStreamReader;
- import java.util.Arrays;
- import java.util.Comparator;
- //创建一个类来存储输入的数据
- class Friend {
- String name;
- int age;
- String year;
- String month;
- String day;
- public Friend(String n,int a,String y,String m,String d){
- name = n;
- age = a;
- year = y;
- month = m;
- day = d;
- }
- @Override
- //重写toString方法,方便后面结果的输出
- public String toString(){
- return name+" "+age+" "+year+"."+month+"."+day;
- }
- }
- //创建Friend_cmp类并实现Comparator接口,去重写compare方法,
- //后面使用sort方法以便可以传递一个比较器,去进行排序
- class Friend_cmp implements Comparator
{ - public int compare(Friend o1, Friend o2) {
- //1、先进行姓名比较
- if(o1.name.equals(o2.name)){
- //2、再进行年龄比较
- if(o1.age==o2.age){
- //3、最后进行认识时间的比较
- if(o1.year.equals(o2.year)){
- if(o1.month.equals(o2.month)){
- int day1 = Integer.parseInt(o1.day);
- int day2 = Integer.parseInt(o2.day);
- return day1-day2;
- }else{
- int month1 = Integer.parseInt(o1.month);
- int month2 = Integer.parseInt(o2.month);
- return month1-month2;
- }
- }else{
- int year1 = Integer.parseInt(o1.year);
- int year2 = Integer.parseInt(o2.year);
- return year1-year2;
- }
- }else{
- return o1.age-o2.age;
- }
- }else{
- return o1.name.compareTo(o2.name);
- }
- }
- }
- public class Main {
- public static void main(String[] args) throws IOException {
- //数据量过大,使用字符流输入
- BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
- String hmm_flag = br.readLine().toUpperCase();
- int n = Integer.parseInt(br.readLine());
- //创建friend数组储存数据
- Friend friend[]=new Friend[n];
- int index =0;//记录有多少个好妹妹
- for(int i=0;i
- //输入
- String str = br.readLine();
- String[] split = str.split(" ");
-
- String mark_nm = split[0].toUpperCase();
- //判断是不是女人并且有没有好妹妹标志
- if(split[1].equals("F") && mark_nm.contains(hmm_flag)){
- String date[]=split[3].split("\\.");
- //如果字符串前面有好妹妹标志
- if(mark_nm.startsWith(hmm_flag)){
- friend[index++]=new Friend(split[0].substring(hmm_flag.length(), split[0].length()),
- Integer.parseInt(split[2]),
- date[0],
- date[1],
- date[2]);
- }
- //如果后面有好妹妹标志
- if(mark_nm.endsWith(hmm_flag)){
- friend[index++]=new Friend(split[0].substring(0,
- split[0].length()-hmm_flag.length()),
- Integer.parseInt(split[2]),
- date[0],date[1],date[2]);
- }
- }
- }
- System.out.println(index);
- //使用sort并且传Friend_cmp()比较器进行比较
- Arrays.sort(friend,0,index,new Friend_cmp());
- for(int i=0;i
- //重写toString方法进行输出
- System.out.println(friend[i].toString());
- }
- }
-
- }
-
相关阅读:
Linux 中设置静态IP的方法步骤
Zookeeper入门(一)
在域控的Users目录下批量创建用户组,名称来自Excel
【Unity精华一记】特殊文件夹
通过vNode实现给列表字段打标签
PCL 半径滤波剔除噪点(二)
PixiJs学前篇(三):Canvas基础【下篇】
7. 矢量图层数据查询选择和保存
阿里云SLB之:基于HTTPS协议的SLB应用场景(十二)
基于electron+vue+element构建项目模板之【打包篇】
-
原文地址:https://blog.csdn.net/m0_63951142/article/details/128208479