阿里算法笔试模拟题
明伟华
这个作者很懒,什么都没留下…
展开
-
阿里笔试模拟题-74.钱庄
概述:钱庄每天能够收到很多散钱,第i个散钱的值2wi。为了便于管理,钱庄每天都会向中央银行申请兑换钱币,假设钱庄有一些散钱使得2k1+2k2+…+2km=2^x(x为非负整数),那么就可以将这些散钱兑换成一个大钱币,问在钱庄收到的这些散钱最终最少能变成几个钱币。输入一个整数n,表示一共有n个钱币(1 <= n <= 106);再输入n个整数wi,表示有价值2wi(0 <= wi <= 10^6)的钱币。输出兑换后最少的钱币数示例1输入:4[1, 1, 2, 3]输出:原创 2021-03-22 10:59:32 · 176 阅读 · 0 评论 -
阿里笔试模拟题-66.Bob的花束
概述:Bob和Alice是青梅竹马。今天,Bob终于要鼓起勇气向Alice表白了!说到表白,自然是少不了买花了。Bob来到了花店,花店一共提供了9种花,每一种花都有对应的价钱。但是Bob的零花钱有限,不能把所有的花都买下来送给Alice。为了方便挑选,Bob给这9种花分别标号1-9,Bob希望买到的花按照编号可以排出尽可能大数字,请问Bob能够排出的最大的数字是多少?输入一个正整数value,代表Bob拥有的零花钱。(0<=value<=10^6)和有9个数字的数组a,ai代表第i种原创 2021-03-18 10:38:16 · 213 阅读 · 1 评论 -
阿里笔试模拟题-68.一的个数
概述:给你两个数字l、r,问在区间[l,r]内的所有数中,二进制表示下“1”的个数最多的一个数是多少,如果有多个相同的,输出所有符合条件的数中最小的一个数。输入一个整数l,和一个整数r。(1<=l<=r<=10^9)输出一个数字表示[l,r]内二进制下“1”的个数最多的数。如果有多个,输出符合条件的数中最小的。示例1输入:510输出:7题目地址68.一的个数题目解题方法有文档解释,文档下载地址为以下程序员面试宝典这边我解释一下我的解题思路。就是一个二进制数(0原创 2021-03-18 10:26:09 · 220 阅读 · 0 评论 -
阿里笔试模拟题-49.吃奶酪
概述:Tom和Jerry都很喜欢吃奶酪,现在有n块奶酪散落在坐标轴上(1<=n<=100000),他们分别在a1,a2,a3…an(1<=ai<=100000,一个点可以有多块奶酪)上,Tom和Jerry分别在1和100000两个点上,他们每走一步需要花费1s,问他们拿到所有的奶酪至少要花费多少时间输入奶酪数量n,和n个奶酪的坐标输出一个数,表示他们拿到所有奶酪所用的最短时间示例1输入:4[350,2000,80000,99999]输出:20000题目地址49.原创 2021-03-15 09:52:12 · 263 阅读 · 1 评论 -
阿里笔试模拟题-56.Tom爱吃巧克力
概述:Tom非常喜欢巧克力,他上次买的巧克力吃完了,所以他打算再去买k块巧克力回来(1<=k<=1e5),他又是一个非常节俭的一个人,所以他想花最少的钱去买巧克力,现在有n家卖巧克力的店(1<=n<=1e5),每个店的巧克力都限购bi块(最多只能买bi块,1<=bi<=1e5),每块的价格是ai(1<=ai<=1e9),请问Tom买k块巧克力最少要花多少钱。题目保证n个bi的总和大于等于k。输入卖巧克力的店的个数n(1<=n<=1e5);打算去原创 2021-03-15 09:49:36 · 208 阅读 · 1 评论 -
阿里笔试模拟题-37.最强的团队
概述:有一个阵营,里面有n个小队(1<=n<=100),每个小队都有他们的能力值ai(0<=i<n)。现在有一个紧急情况,需要从这些小队中选出连续的几个小队,组成一个最强的团队。最强的团队的定义为这个团队的所有小队的平均能力值最高。如果有多个最强团队,则选包含小队最多的一个。现在请你写个程序,输出这个最强的团队包含的小队的个数。输入小队的数量n,和n个数,分别代表各小队的能力值ai输出一个数表示这个最强团队包含的小队的个数示例1输入:6[1,2,3,3,2,1]输原创 2021-03-15 09:45:40 · 241 阅读 · 0 评论 -
阿里笔试模拟题-44.最大边权和
概述:现在有n个点(1<=n<=1000),每个点都有一个值称为点权ai(ai为偶数,1<=ai<=1000),现在可以将任意两个点相连,连起来以后这条边也有一个值称为边权,这个边的边权为这两个点的点权之和的一半。现在需要你添加n-1条边,问将这n个点连通以后(连通是指任意两个点都能互相到达)的最大的边权和是多少。输入点的数量n;和n个数,表示点权的值输出最大的边权和示例1输入:5[2,4,6,8,10]输出:30题目地址44.最大边权和题目解题方法有文档解释原创 2021-03-15 09:27:36 · 203 阅读 · 0 评论 -
阿里笔试模拟题-43.打怪兽
概述:现在有3只怪兽,他们的都有自己的血量a,b,c(1<=a,b,c<=100),当Tom打死第一怪兽的时候花费的代价为0,其余的怪兽的代价为当前的怪兽的血量减去上一个怪兽的血量的绝对值。问Tom打死这些怪兽所需要的最小代价分别输入三只怪兽的血量输出打死三只怪兽的最小代价示例1输入:258输出:6题目地址43.打怪兽题目解题方法有文档解释,文档下载地址为以下程序员面试宝典但是官方只有解题思路,没有具体代码,所以这边我就附上我的解题代码,具体思路可以参照上面的解释原创 2021-03-15 09:21:56 · 509 阅读 · 0 评论 -
阿里笔试模拟题-110.数组变换
概述:给出一个长度为 n 的数组,和一个正整数 d。你每次可以选择其中任意一个元素 a[i] 将其变为 a[i] + d 或 a[i] - d,这算作一次操作。你需要将所有的元素全部变成相等元素,如果有解,请输出最小操作次数,如果无解请输出-1。输入数字n、数字d,和一个长度为n的数组a。1 <= n <= 100000,1 <= d <= 100, 1 <= a[i] <= 100000。输出一个数字,表示最小的操作次数,如果无解输出-1。题目地址110.数原创 2021-03-15 09:17:41 · 842 阅读 · 1 评论