
算法之旅
文章平均质量分 69
通过不断的练习和阅读高质量代码,一步步提升自己的逻辑思维能力
I believe I can fly~
My Heart Will Go On
展开
-
合并所有重叠的区间
O(nlogn),其中 n 为区间的数量。除去排序的开销,我们只需要一次线性扫描,所以主要的时间开销是排序的 O(nlogn)O(logn),其中 n 为区间的数量。这里计算的是存储答案之外,使用的额外空间。以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [starti, endi]请你合并所有重叠的区间,并返回 一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间。如果我们按照区间的左端点排序,那么在排完序的列表中,可以合并的区间一定是连续的。原创 2023-01-19 18:10:59 · 1755 阅读 · 1 评论 -
搜索插入位置
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。输入: nums = [1,3,5,6], target = 5。输入: nums = [1,3,5,6], target = 2。输入: nums = [1,3,5,6], target = 7。缺点:数值较多时,没有那么高效,因此可以引入二分查找。请必须使用时间复杂度为 O(log n) 的算法。原创 2023-01-18 17:25:57 · 867 阅读 · 0 评论 -
寻找数组的中心下标
记数组的全部元素之和为 total,当遍历到第 i 个元素时,设其左侧元素之和为 sum,则其右侧元素之和为 total−nums[i]−sum。左右侧元素相等即为 sum=total−nums[i]−sum,即 2 × sum + nums[i] = total。当中心索引左侧或右侧没有元素时,即为零个项相加,这在数学上称作「空和」(empty sum)是数组的一个下标,其左侧所有元素相加的和等于右侧所有元素相加的和。如果中心下标位于数组最左端,那么左侧数之和视为。如果数组不存在中心下标,返回。原创 2023-01-18 16:57:05 · 1009 阅读 · 0 评论