美团-测试工程师面试202106

 

一、算法

  1. 做项目的最大收益问题

    给定两个整数W和K,W代表你拥有的初始资金,K代表你最多可以做K个项目。再给定两个长度为N的正数数组costs[]和profits[],代表一共有N个项目,costs[i]和profits[i]分别表示第i号项目的启动资金与做完后的利润(注意是利润,如果一个项目的启动资金为10,利润为4,代表该项目最终的收入为14)。你不能并行只能串行地做项目,并且手里拥有的资金大于或等于某个项目的启动资金时,你才能做这个项目。该如何选择做项目,能让你最终的收益最大?返回最后能获得的最大资金

    [要求]

    时间复杂度为O(klogn),空间复杂度为O(n)

  2. 无序数组第K大的数  (可以用快排)

二、sql

T1  user    name, age, depart

T2  sales    name, sale, date

1、 输出8月份销售额的Top10的部门,按销售额降序排列

select top 10 depart

from user,sales

where user.name=sales.name and date between '2021-08-01' and '2021-08-31'

order by sale desc 

2、分段统计各年龄段产生的销售额,如: 20~25, 26~30, 31~35, 35以上 

(没找到标准答案,可能不对~)

select

case when age between 20 and 25 then '20-25'

when age between 26 and 30 then '26-30'

when age between 31 and 35 then '31-35'

when age>35 then '35以上'

end as age_bracket,sum(sale) as sum_sale

from user,sales

where user.name=sales.name

group by age_bracket

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值