2025 小米 笔试编程第一题
2025届春招笔试题1-软件开发方向 编程第一题
```
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.Scanner;
/**
* @author Hertz
* @date 2025.3.12
* */
public class Main {
public static void main(String[] args) {
//接收操作
int ans=0;
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
int k=sc.nextInt();
k=k-n;//记录除去好日子剩下的天数
ans=n*2;
int []date=new int[n];
for(int i=0;i<n;i++){
date[i]=sc.nextInt();
}
//记录好日子之间相隔的天数
List<Integer> list=new ArrayList<>();
for(int i=1;i<n;i++){
list.add(date[i]-date[i-1]-1);
}
list.sort(new Comparator<Integer>() { //对记录进行由小到大的排列
@Override
public int compare(Integer o1, Integer o2) {
return o1-o2;
}
});
int j=0;
//判断剩下天数是否足以度过相隔的天数
while(j<list.size()&&k>=list.get(j)){
k-=list.get(j);
j++;
ans-=2;
}
System.out.println(ans);
}
}
```
纯蒻苟,大佬勿喷
#小米##春招##小米笔试#
```
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.Scanner;
/**
* @author Hertz
* @date 2025.3.12
* */
public class Main {
public static void main(String[] args) {
//接收操作
int ans=0;
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
int k=sc.nextInt();
k=k-n;//记录除去好日子剩下的天数
ans=n*2;
int []date=new int[n];
for(int i=0;i<n;i++){
date[i]=sc.nextInt();
}
//记录好日子之间相隔的天数
List<Integer> list=new ArrayList<>();
for(int i=1;i<n;i++){
list.add(date[i]-date[i-1]-1);
}
list.sort(new Comparator<Integer>() { //对记录进行由小到大的排列
@Override
public int compare(Integer o1, Integer o2) {
return o1-o2;
}
});
int j=0;
//判断剩下天数是否足以度过相隔的天数
while(j<list.size()&&k>=list.get(j)){
k-=list.get(j);
j++;
ans-=2;
}
System.out.println(ans);
}
}
```
纯蒻苟,大佬勿喷
#小米##春招##小米笔试#
全部评论
佬,这个第一题你a了?
第一题自己太sb了,对list排序写成了reverse,搞到最后都没发现哪里出问题了
感觉第一题是个二分答案,动态规划过了45%
大佬厉害,我看不懂题目,还以为是每次登山不能在峰上超过k天,连个示例解释都没有。
相关推荐
06-11 12:35
合肥工业大学 Java 牛客刘北:如果暑期实习是27届的话,你要晚一年才会毕业,企业为什么会等你呢?要搞清时间逻辑呀!27届现在实习只能是在暑假实习,这是日常实习,不是暑期实习。所以多去投日常实习吧,暑期实习肯定不会要你的
点赞 评论 收藏
分享