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