3439. 重新安排会议得到最多空余时间 I
此题灵神说的很好,你需要思考,安排n个会议产生的数组,里面假设每场会议之间都有间隔,即使为0也认为间隔为0,那么就有 n+1个间隔会产生,就如上面图中可看出生成的间隔,而k为安排次数,那么你想你每安排一次,就要挪动两个间隔,那么安排k次,就要挪动n+1个间隔,此时创立一个数组大小为n+1,记录间隔时间。
下一个开始的时间减去上一场结束的时间可得中间间隔时间。
之后开始滑动,注意此时滑动细节,当 i>k 时才执行后面的代码。因为k为1时,会使两个间隔合并,那么k为k时,使得k+1个间隔合并,此时从0到k才满足要求,加到了相应的间隔数,之后往后面滑,统计出最大的k个时间间隔的和即为所求
python版:
c++版: