精选文章 阿里2020/8/3笔试题(一)

阿里2020/8/3笔试题(一)

作者:DebugMyself 时间: 2021-02-05 09:43:13
DebugMyself 2021-02-05 09:43:13
【摘要】第二题地址:阿里2020/8/3笔试题(二) 
阿里笔试共一个小时,两道编程题目,平台为牛客网。 
没做出来,重在参与了。第一题有思路,但是后来经验证还是有漏洞,遂去牛客找大佬的思路,因此用本博客来记录一下打怪生涯。 
第一题:有n个人,每人有对应的钱币,有m个房子,每个房子有对应的价值和舒适度。 
每个人只能买一个房子,每个房子只能被一个人买,求最大的舒适度和。 
思路:贪心算法,让每个人...

第二题地址:阿里2020/8/3笔试题(二)

阿里笔试共一个小时,两道编程题目,平台为牛客网。

没做出来,重在参与了。第一题有思路,但是后来经验证还是有漏洞,遂去牛客找大佬的思路,因此用本博客来记录一下打怪生涯。

第一题:有n个人,每人有对应的钱币,有m个房子,每个房子有对应的价值和舒适度。

每个人只能买一个房子,每个房子只能被一个人买,求最大的舒适度和。

思路:贪心算法,让每个人买能够买范围内舒适度最高的房子。需注意要让钱少的人优先买,不然可能会造成钱多的人把价格低但舒适度高的房子买走,导致钱少的人没钱买房子的现象。

Talk is cheap, show me the code.

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Scanner;

public class ALiTest1 { public static void main(String[] args) { //读取数据 Scanner sc = new Scanner(System.in); int n = sc.nextInt();   //n为朋友的数量 int m = sc.nextInt();   //m为房子的数量 int[] moneyPerFriend = new int[n];  //记录每个朋友的金币数 for (int i = 0; i < n; i++) { moneyPerFriend[i] = sc.nextInt(); } List houseAttr = new ArrayList<>();  //使用ArrayList来添加房子的属性 for (int i = 0; i < m; i++) { int[] house = new int[2]; house[0] = sc.nextInt(); //第一个属性为房子的价格 house[1] = sc.nextInt(); //第二个属性为房子的舒适度 houseAttr.add(house); } long comfortSum = 0; //舒适度和,数据很大,用long来存储 Arrays.sort(moneyPerFriend); //按朋友的金币数排序 for (int i = 0; i < n; i++) { int comfort = 0; //对每个朋友来说,初始化舒适度为0 int index = -1; //用一个index来记录这个朋友最终买了哪套房子 for (int j = 0; j < houseAttr.size(); j++) { if (moneyPerFriend[i] >= houseAttr.get(j)[1] && houseAttr.get(j)[0] >= comfort){ comfort = houseAttr.get(j)[0]; index = j; } } if (index != -1){ houseAttr.remove(index); } comfortSum+=comfort; } sc.close(); System.out.println(comfortSum); }
}

笔试题第二题会在之后记录。

代码还有很多可以优化的地方,只是将思路展现给大家,也用来记录自己打怪升级的过程。

勿删,copyright占位
分享文章到微博
分享文章到朋友圈

上一篇:Java设计模式 - 模板模式

下一篇:第9章,软件管理

CSDN

CSDN

中国开发者社区CSDN (Chinese Software Developer Network) 创立于1999年,致力为中国开发者提供知识传播、在线学习、职业发展等全生命周期服务。

您可能感兴趣 换一换

  • 出现频率最高的笔试题

    出现频率最高的笔试题     关键字:C++,strcpy,字符串,复制,拷贝,copy,笔试,试题     题目:    已知strcpy函数的原型是:        char * strcpy(char * strDest,const char * strSrc);    1.不调用库函数,实现strcpy函数。    2.解释为什么要返回char *。     解说:    1.str...

  • 200703 新员工培训试题

    2007年3月12日考试1.选择题(1)、SYS C:  命令不会产生的文件是:___?A: IO.sys   B:COMMAND.COM  C:MSDOS.SYS  D:MSCONFIG.SYS(2)、以下文件缺少了,会导致WinXP系统无法引导的是:___?A:PAGEFILE.SYS  B:ntldr  C:boot.ini  D:Winxp.exe(3)、以下会造成MSN的无法登陆说...

  • 06上半年网络工程师试题分类精讲.第一部分:计算机与网络知识(上午考试科目).第一章:计算机系统知识...

    二、操作系统知识 1、 基本概念: 操作系统定义、特征、功能及分类(批处理、分时、实时、网络、分布式); 多道程序; 内核和中断控制; 2、 处理机管理、存储管理、设备管理、文件管理、作业管 理: 进程的状态及转换; 进程调度算法(分时轮换、优先级、抢占); 死锁; 存储管理方案(分段与分页、虚存、页面置换算法); 设备管理的有关技术(SPOOLING、缓冲、DMA、总线、即插即用技术); ...

  • Linux试题与答案

    一.填空题: 1. 在Linux系统中,以 文件 方式访问设备 。 2. Linux内核引导时,从文件 /etc/fstab 中读取要加载的文件系统。 3. Linux文件系统中每个文件用 i节点 来标识。4. 全部磁盘块由四个部分组成,分别为引导块 、专用块 、 i节点表块 和数据存储块。 5. 链接分为: 硬链接 和 符号链接 。 6. 超级块包含了i节点表 和 空闲块表 等重要的文件系...

  • 转载试题

    转自http://blog.chinaunix.net/u3/93463/showart_1959905.html 其中有部分题,之前遇到过 1.解释冷备份和热备份的不同点以及各自的优点   答:热备份针对归档模式的数据库,在数据库仍旧处于工作状态时进行备份。而冷备份指的是在数据库关闭后,进行备份,适用于所有模式的数据库。热备份的优点在于当备份时,数据库仍旧可以被使用并且可以将数据库恢复到任...

  • 金山招聘机试题(第6题)

    题目如下:1.在程序设计和运行中,有时候我们希望一个类有且只有一个实例,请用C++语言写一个这样的示例类。2. 请实现一个具有以下功能的函数,但不能使用任何形式条件判断、分支、跳转等类型的语句或指令:int sign(INT32 x) {   if (x > 0) return 1;   else if (x == 0) return 0;   else return -1;}3. 请实现以...

  • ibm笔试题

    ibm Java笔试题 1. 如下代码 class A { A() { } } class B extends A { } 哪两个说明是正确的? A. B类的构造器应该是 public. B. B类的构造器应该是没有参数 C. B类的构造器应该调用this(). D. B类的构造器应该调用super(). 答案:BD解析:默认构造器的修饰符只跟当前类的修饰符有关。 比如B如果是publi...

  • 网络综合试题

    选择题(针对以下题目,请选择最符合题目要求的答案。针对每一道题目,所有答案都选对,则该题得分,所选答案)错误或不能选出所有答案,则该题不得分。其中第1—40题每题1.5分,第41—60题每题2分,共100分) (1) 在安装Windows Server 2008的过程中显示器突然蓝屏,最可能是以下( D )原因导致的。 (选择一项) A 硬盘空间不足 B 版本差异 C 用户权限不够 D ...

华为云40多款云服务产品0元试用活动

免费套餐,马上领取!
阿里2020/8/3笔试题(一)介绍:华为云为您免费提供阿里2020/8/3笔试题(一)在博客、论坛、帮助中心等栏目的相关文章,同时还可以通过 站内搜索 查询更多阿里2020/8/3笔试题(一)的相关内容。| 移动地址: 阿里2020/8/3笔试题(一) | 写博客