- 中心下标查找程序。
v1.0版本
该版本最基础,分别计算第
i个下标左、右的元素和进行比较。思路简单,但是遍历下标需要重复计算,运算时间太长。
class Solution {
public:
int pivotIndex(vector<int>& nums)
{
int midnum=-1;
for (int i=0;i<nums.size();i++)
{
int sum_left=0;
int sum_right=0;
for (int j=0;j<i;j++)
{
sum_left=nums[j]+sum_left;
}
for (int k=i+1;k<nums.size();k++)
{
sum_right=nums[k]+sum_right;
}
if (sum_left==sum_right)
{
midnum=i;
break;
}
}
return midnum;
}
};
v2.0版本
该版本改进了一点点,首先计算一个所有元素之和,每次遍历左边元素之和,右边元素和直接作差得到。时间上好了一点,但还是很长,算法还是太麻烦。想想每次遍历求和是最费时间的,如果可以简化这个步骤会快很多。
执行用时:716 ms。内存消耗:30.2 MB。
class Solution {
public:
int pivotIndex(vector<int>& nums)
{
int sum_all=0;//数组元素和
for (int p=0;p<nums.size();p++
优化算法:中心下标查找与有序数列搜索插入

本文介绍了中心下标查找算法的三个版本优化过程,从v1.0的基础实现到v3.0的时间复杂度大幅降低。同时,还探讨了有序数列搜索插入位置的两种实现,分析了它们的逻辑改进和效率提升。通过对算法的不断优化,实现了更快的执行速度和更少的内存消耗。
最低0.47元/天 解锁文章
1050

被折叠的 条评论
为什么被折叠?



