数组

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; 
    
  }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值