原文链接及题目:
https://leetcode-cn.com/problems/max-consecutive-ones/
我的解法如下:
/*
思路:名词转换:攻击事件序列:相当于开始时间;中毒持续时间:持续时间。
输入格式为:[第一次攻击起始时间,下一次攻击起始时间],每次攻击持续时间。
需要考虑的点:上一次毒没结束,下一次就开始,那就会产生重叠。
所以需要使用不考虑重叠影响情况下算出的数据,减去重叠部分的长度(即前后两个数据求差)
也即,需要考虑前一个与后一个元素之间的距离,是否小于攻击持续时间
2*2-[(1+2)-2]=3 1+2>2,所以使用【数组元素个数*持续时间-重叠部分的总长度】
1+2<4 所以直接就是2*2,直接得出结果。
重叠部分的长度算法:前一个数据+持续时间 与 后一个数据进行比较,如果比后者大,则使用这个和减去后者,所得出的数据