1、寻找一个数组的中心索引
中心索引:数据索引的左侧元素之和相加与右侧元素之和相加值相等
若无中心索引返回-1 若有多个返回最左侧那个
思路: 1、求出数组所有元素之和 2、总和减去当前指针的元素值 判断是否为当前指针前所有元素和的2倍
int func(int *nums,int numsSize)
{
int sum = 0;
for(int i =0 ;i<numsSize;i++)
{
sum+=nums[i];
}
int cursum;
for(int i=0;i<nunsSize;i++)
{
if(sun-nums[i] == 2*cursum)
return i;
cursum+=nums[i];
}
return -1;
}
2、在一个给定的数组里面存在一个最大元素,此元素至少是其他每个元素的两倍大小 求它索引值
思路:1、求出数组元素最大值 2、求出第二大值 判断是否为2倍大小
int func(int *nums, int numsSize)
{
int index,max,max1=0;
for(int i = 0;i<numsSize;i++ )
{
if(max<=nums[i])
{
max1 = max;
max = nums[i];
index = i;
}else if(max>nums[i]&&max1<=nums[i])
{
max1 = nums[i];
}
}
if(max>max1*2)
return index;
else
return -1;
}