摘要:
先把区间按照左端点排序,这样排完序之后的列表中的可以合并的区间就都是连续的了。 将列表中第一个区间(最左的区间)加入到结果数组res中,并按顺序依次考虑之后的每个区间: 如果当前区间的左端点大于res数组末尾区间的右端点,则当前区间去前面的区间不重合,直接将这个区间加入res数组中; 否则,表示当前 阅读全文
posted @ 2020-06-26 23:30
machine_gun_lin
阅读(36)
评论(0)
推荐(0)
摘要:
这题是典型的贪心。 我们用一个变量canReach表示最远能到达的距离,canReach的初始值为0。 遍历数组,当遍历到位置x时,如果x小于等于canReach,说明当前位置可以从起点经过若干步跳跃到达, 因此我们可以用canReach = max(canReach, x + nums[x])更新 阅读全文
posted @ 2020-06-26 22:49
machine_gun_lin
阅读(27)
评论(0)
推荐(0)
摘要:
题意是,输入一个二维数组,从数组左上角开始,沿着顺时针慢慢地“遍历”每一个元素且每一个元素只遍历一次, 在一个新的一维数组中记录遍历的顺序,最终的返回值就是这个数组。 思路:可以考虑用方向来模拟“一个指针的移动”,指针指向的元素如果合法(不越界且未被访问过),就将这个元素压入结果数组。 这里的核心是 阅读全文
posted @ 2020-06-26 19:15
machine_gun_lin
阅读(66)
评论(0)
推荐(0)
摘要:
要求一个最大子序和,思路是:假设每个以第i个元素结尾的子数组的最大值为f(i),那么我们要求的最大子序和就是遍历所有的i, 得到以i结尾的最大的f(i), 显然f(i) = max{f(i - 1), nums[i]},也就是说以第i个元素结尾的子数组的最大值为 以第i-1元素结尾的子数组的最大值加 阅读全文
posted @ 2020-06-26 18:43
machine_gun_lin
阅读(25)
评论(0)
推荐(0)

浙公网安备 33010602011771号