小米-9.5软件开发岗笔试

嵌入式软件工程师-base上海-海笔
总共27题,包括23题单选,2题多选,2题编程。
单选和多选以数据结构的内容居多,难度中等偏简单。
两道编程题分别为:
1.每天要吃a,b两种面包,有n台面包机,第i台面包机制作a面包花费时间ai,b面包花费时间bi,为了尽快吃到面包,可以选择两种方式:
①选择不同面包机x,y分别制作两种面包,制作时间为max(ax,by)
②选择同一个面包机x制作两种面包,制作时间ax+bx
求最短时间,第一行输入整数n,后面两行输入ai与bi的时间。
我的思路是方式一找最小和次小序列号,再遍历方式二,然后疯狂取min就AC啦。

2.给定一个长度为n的序列和一个整数x,每次可以执行两种操作:
①删除序列中的一个元素
②某个元素数值+1
最后保证序列中数字之和是x的倍数(序列为空也算倍数),求最小操作次数
没想出来咋弄,感觉像动态规划硬掰了半个小时没写出来就放弃了,看到有人说直接输出n骗点通过率我咋没想到
唉,又是凉凉的一天~
#通信硬件人笔面经互助#
全部评论
我19号海笔😂😂😂不知道会不会一样的题
1 回复 分享
发布于 2024-09-14 01:34 安徽
第一题咋做的,我就过了73
点赞 回复 分享
发布于 2024-09-05 18:30 上海
第二个同余最短路???
点赞 回复 分享
发布于 2024-09-05 22:13 四川

相关推荐

第一题import java.util.*;public class test {    public static void main(String[] args) {        Scanner in=new Scanner(System.in);        int n=in.nextInt();        int k=in.nextInt();        int[] a=new int[100005];        int ai;        int st=100005,ed=0;        for(int i=0;i<n;i++){             ai=in.nextInt();             a[ai]=1;             if(i==0) st=ai;             if(i==n-1) ed=ai;        }        int moreDay=k-n,ans=0,kDay=0;        TreeMap<Integer,Integer> kDayMap=new TreeMap<>();        for(int i=st-1;i<=ed+1;i++){            if(a[i]==0&&a[i+1]==1) {                ans++;                if(i<=st) continue;                kDay++;                if(kDayMap.containsKey(kDay)){                    kDayMap.put(kDay,kDayMap.get(kDay)+1);                }else kDayMap.put(kDay,1);//                System.out.println("day:"+i+"kDay:"+kDay);                kDay=0;            }            else if(a[i]==1&&a[i+1]==0) {                ans++;            }            else if(a[i]==0) kDay++;        }        Set<Integer> kDaySet=kDayMap.keySet();//        System.out.println(kDaySet+"/"+ans+"/"+moreDay);        for(int key:kDaySet){//            System.out.println(key);//            System.out.println(kDayMap.get(key));            int value=kDayMap.get(key);            if(key*value<=moreDay){                moreDay-=key*value;                ans-=value*2;            }else {                ans-=(moreDay/key)*2;                moreDay=0;            }            if(moreDay==0) break;//            System.out.println("key:"+key+" value:"+value+" moreday:"+moreDay+" ans:"+ans);        }        System.out.println(ans);//        System.out.println(moreDay);//        System.out.println(kDayMap);        in.close();    }}第二题来不及做打表#牛客创作赏金赛#
查看2道真题和解析 投递小米集团等公司10个岗位 牛客创作赏金赛
点赞 评论 收藏
分享
评论
5
21
分享

创作者周榜

更多
牛客网
牛客企业服务