前缀和、差分数组
颜值博主
这个作者很懒,什么都没留下…
展开
-
阿里3.22笔试
第一题:简单的0/1背包问题给定N个体积,及容量M,问是否能存在一个选择够成功填满背包。int main(){ int N, M; while (cin >> N >> M) { int dp[10001]; int weight[1001] = { 0 }; for (int i = 0; i < N; ++i) { cin >> weight[i]; } fill(dp, dp + 10001, 6001); dp[原创 2021-03-22 20:45:52 · 262 阅读 · 0 评论 -
面试题 17.24. 最大子矩阵(二维前缀和)
难度困难61收藏分享切换为英文接收动态反馈给定一个正整数、负整数和 0 组成的 N × M矩阵,编写代码找出元素总和最大的子矩阵。返回一个数组[r1, c1, r2, c2],其中r1,c1分别代表子矩阵左上角的行号和列号,r2,c2分别代表右下角的行号和列号。若有多个满足条件的子矩阵,返回任意一个均可。注意:本题相对书上原题稍作改动示例:输入:[ [-1,0], [0,-1]]输出:[0,1,0,1]解释:输入中标粗的元素即为输出所表示的矩阵说...原创 2021-03-11 15:00:56 · 233 阅读 · 0 评论 -
差分数组(解决区间+a问题)
面试题 16.10. 生存人数难度中等27给定 N 个人的出生年份和死亡年份,第i个人的出生年份为birth[i],死亡年份为death[i],实现一个方法以计算生存人数最多的年份。你可以假设所有人都出生于 1900 年至 2000 年(含 1900 和 2000 )之间。如果一个人在某一年的任意时期处于生存状态,那么他应该被纳入那一年的统计中。例如,生于 1908 年、死于 1909 年的人应当被列入 1908 年和 1909 年的计数。如果有多个年份生存人数相同且均为最大值,输出...原创 2021-02-27 11:13:19 · 276 阅读 · 0 评论