一起是三个编程题,总共80分。
昨天笔试完,顺便记载下。

第一题:

  • 零件组装
  • 小明管理了一家工厂。该工厂生产一种大型机械,需要由四种零件组装完成。我们不妨称这四种零件为A,B,C,D。
  • 由于生产机械需要保证产品的质量,工厂对每个零件会进行检测,量化出每个零件的评分。评分当然有一个合格的分数(我们不妨假设它是x),当零件评分大于x的时候,该零件才是合格的。
  • 四个分别合格的零件A,B,C,D可以组装成一个合格的大型机械。现在小明想知道当前产出的这些零件一共可以组装成多少合格的大型机械?
  • 请注意:每个零件至多只能用于一个大型机械的组装,不能反复组装。

思路:记录每种零件合格的个数,四个零件才能凑一套,所以只能凑合格的四个零件数量中最小的套数。

     Scanner sc = new Scanner(System.in);//1.获取输入int aNum = sc.nextInt();int bNum = sc.nextInt();int cNum = sc.nextInt();int dNum = sc.nextInt();int score = sc.nextInt();//2.记载合格数量int a = 0,b = 0,c =0,d = 0;//3.合格的零件for(int i = 0;i<aNum;i++){int tep = sc.nextInt();if(tep>score){a++;}}//顺便记载最小套数int min = a;for(int i = 0;i<bNum;i++){int tep = sc.nextInt();if(tep>score){b++;}}min = Math.min(min,b);for(int i = 0;i<cNum;i++){int tep = sc.nextInt();if(tep>score){c++;}}min = Math.min(min,c);for(int i = 0;i<dNum;i++){int tep = sc.nextInt();if(tep>score){d++;}}min = Math.min(min,d);System.out.println(min);

第二题:

  • 最佳传送方案:
  • 现在你位于连绵的峰峦之间。你的任务是从1号山峰抵达n号山峰。
  • 你拥有一个传送门可以将你送往后续距离不超过k的山峰中。举例,当k=2时,若你在山峰1,则你可以传送至山峰2或山峰3。这里距离的定义为编号的差值。
  • 使用传送门需要付出金币。付出的规则如下:若当前在山峰u,将要去往的是山峰v,当山峰u的高度高于山峰v时,不需要付出金币;否则,当山峰u的高度低于山峰v时,需要付出(山峰v的高度 - 山峰u的高度)这么多的金币。
  • 举例如下:
  • 当前在山峰1,高度为5,若传送至山峰2,高度为4,因为5>4,本次不花费金币;
  • 当前在山峰1,高度为5,若传送至山峰3,高度为6,因为6>5,本次花费(6-5=1)的金币。
  • 你的任务是从1号山峰恰好传送至n号山峰,询问你最少要花费的金币数量。

思路:明显动态规划,dp[i]为能够到的起跳点中最小的dp[j]+从起跳点到第i个山峰花的金币之和中的最小值。

         Scanner sc = new Scanner(System.in);//山峰数量int n = sc.nextInt();//每次传送的距离int dis = sc.nextInt();//数组接山峰的高度int[] high = new int[n];int count = 0;while(count!=n){high[count++] = sc.nextInt();}//动态规划://dp[i] : 到达第i个山峰的所需要的最小金币数//dp[i] = Math.min (dp[0...i-1]+金币数)int[] dp = new int[n];dp[0] = 0;  //本来就在第一个山峰for(int i = 1;i<n;i++){//能够到的起跳点int tep = i-dis>=0? i-dis : 0;//记载dp[i]的所有起跳点到第i个山峰的金币最小值,每个起跳点中符合条件就更新int min = Integer.MAX_VALUE;for(int j = tep;j>=0&&j<i;j++){//从第一座山峰到起跳点j再到i花的金币int minTep = 0;if(high[j]>=high[i]){//之前的跳点比第i座山峰高:免费minTep = dp[j];}else{//比第i座山峰低:要交钱minTep = dp[j]+high[i]-high[j];}min = Math.min(min,minTep);//注意这里的情况,这里考虑不周只能a一半if(dp[i]==0){//i的第一个起跳点一定要有值,不然会一直是0dp[i] =min;}else{//不是i的第一个起跳点,及时更新最小值dp[i] = Math.min(dp[i],minTep);}}}System.out.println(dp[n-1]);

第三题:
没a出来,题目也来不及记载了。
记忆里是给了个数组,还给了个k,问数组的子区间是否被支配,输出这个数组被支配的区间个数。
被支配就是这个元素是区间的众数,而且这个元素的数量要至少>=k。
暴力肯定超时,时间要求是3000ms(java),暴力出来3400多ms。
写的代码如下,a了34%

     public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n  = sc.nextInt();int k = sc.nextInt();int[] arr = new int[n];int count = 0;while(count!=n){arr[count++] = sc.nextInt();}int res = 0;//把连续子数组往下传,返回是否被支配for(int i = 0;i<n;i++){for(int j = i+2;j<n;j++){if(isMatched(arr,i,j,k)){res++;}else {continue;}}}System.out.println(res);}public static boolean isMatched(int[] arr,int left,int right,int k){Map<Integer,Integer> map = new HashMap<>();//众数的数量int maxCount = 0;for(int i = left;i<=right;i++){map.put(arr[i],map.getOrDefault(arr[i],0)+1);maxCount = Math.max(maxCount,map.get(arr[i]));}for(int i = left;i<=right;i++){int tep = map.get(arr[i]);if(tep>=k && tep==maxCount){return true;}}return false;}

看还有没有改进方法,我写出来了再来改。

小红书2022秋招后端开发编程部分相关推荐

  1. 0814-网易游戏雷火2022秋招Web后端开发工程师

    0814-网易游戏雷火2022秋招Web后端开发工程师 编程题1 这道题恶心的是输入的处理,需要将这个各种方括号的玩意儿读出来,解析为ArrayList,想了一下还是有办法可以解决的,直接根据],分割 ...

  2. 【2022秋招】IC设计/FPGA开发秋招经历总结(2)——公司专题

    接上篇~ [2022秋招]IC设计/FPGA开发秋招经历总结_Richie_L的博客-CSDN博客 笔者的意向岗位是数字IC/FPGA,项目经历有FPGA相关,涉及信号处理以及单片机等.目前笔者的面试 ...

  3. MSRA的2022秋招各大厂SSP+ offer

    大家好,我是对白. 今天给大家介绍一位MSRA朋友,他参加了2022秋招,并拿到了字节.腾讯.阿里等各大厂SSP +offer,希望他的经历能对你有所借鉴与启发,以下为原文. 前言 是安徽985小硕, ...

  4. ​前程无忧公布2022秋招毕业生需求最多的15个行业和10个城市;利安德巴赛尔任命新CEO|美通社头条...

    要闻摘要:前程无忧公布2022秋招毕业生需求最多的15个行业和10个城市.利安德巴赛尔任命Peter Vanacker担任首席执行官.斯凯孚与沃尔沃汽车合作迈向碳中和.百济神州登陆科创板实现三地上市. ...

  5. 【求职】京东 2018 秋招测试开发工程师笔试题

    京东 2018 秋招测试开发工程师笔试题 一.单选题 1.若度为m 的哈夫曼树中,其叶结点个数为 n,则非叶结点的个数为( ) A. n-1 B. n/m-1 C. (n-1)/(m-1) D. n/ ...

  6. 2022秋软件工程第一次结对编程时作业

    软件工程 FZUSDN社区 作业要求 2022秋软件工程第一次结对编程作业 作业目标 使用NABCD进行需求分析并进行原型设计 成员学号 032002217 成员学号 072003403 墨刀链接 墨 ...

  7. 解读小红书2022年母婴行业报告:心智种草的流量密码

    母婴用户代际更迭,90后晋升为母婴消费主力军.新一代宝爸宝妈的关注点在哪里?品牌该如何通过小红书满足ta们的进阶需求,为母婴消费注入新活力? 本文将解读小红书官方发布的<2022年母婴行业人群洞 ...

  8. 【求职】小米 2018 秋招测试开发工程师笔试题

    小米 2018 秋招测试开发工程师笔试题 一.单选题 1.静态变量static 在不同的实例中地址是否一样?他们储存在什么区域?( ) A. 地址一样,在堆栈区. B. 地址不一样,在堆栈区. C. ...

  9. 腾讯 2015秋招笔试题 编程题2:九宫格填数

    腾讯 2015秋招笔试题 编程2:九宫格填数 题目 2: 有下图的题解,请用 C/C++ 代码来列出满足下图 0-100 内的所有答案. 配合加减乘除,使得九宫格横竖都等于4. 智力冲浪 数字推理 请 ...

最新文章

  1. 利用编码特长,我赚取了每月1000美元的额外收入
  2. face key point with 7 points
  3. 【模拟】P1563 玩具谜题
  4. 数据分析学习笔记——数据可视化
  5. SQL触发器实例讲解
  6. 2016-2017 ACM-ICPC Southwestern European Regional Programming Contest (SWERC 2016)
  7. change project compliance and jre to 1.5
  8. 干货来袭!java核心技术卷一pdf
  9. 教大家抖音怎么开通直播功能
  10. sql server 2012 自定义聚合函数(MAX_O3_8HOUR_ND) 计算最大的臭氧8小时滑动平均值
  11. OPNET开发教程合集
  12. springboot集成微信公众号文章推送
  13. 如何将HTML与win10桌面壁纸,如何解决win10桌面背景不显示
  14. 自抗扰控制器-2.非线性状态误差反馈控制律 NLSEF
  15. 分享解决jar包冲突问题的方法:(看了这个你就能解决所有包冲突问题!)
  16. 日期格式化跨年bug,是否与你不期而遇?
  17. 三十岁的男人应该有多少存款?
  18. 夏天CPU温度过高原因及解决办法
  19. 高明领导不说狠话、不画大饼、不灌鸡汤,打造狼性团队就靠这9条
  20. VScode快捷键格式化代码失效,可能解决方法

热门文章

  1. Navicat for MySQL连接使用教程
  2. java-入门 static静态类型(自学笔记)(郝斌)
  3. Apache Durid 数据存储(Hadoop概述 安装 HDFS概述 数据存储遇到的问题)
  4. Twitter开发者账号申请【推特开发者文档系列5】——Response codes和错误代码
  5. ADTK 聚合器(aggregator)方法汇总
  6. ParseObject和ParseArray
  7. 2022年高处安装、维护、拆除考试资料及高处安装、维护、拆除操作证考试
  8. fastadmin 操作栏按钮打开其他控制页面
  9. zcmu 1143: 又是比智力
  10. nodejs 运行CMD命令