欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

求数组左右平衡值得索引

程序员文章站 2024-03-18 09:55:22
...

求数组左右平衡值得索引

方法一,很土的办法,逐个遍历然后求和,再比较

int pivotIndex(int* nums, int numsSize) {
    int left_sum=0;
    int right_sum=0;
    int j=0;
    int i=0;
    for(int i=0;i<numsSize;i++)
    {
        for(j=0;j<numsSize;j++)
        {
            if(j==i)
            {
                continue;
            }
            if(j<i){
            left_sum+=nums[j];
            }
            if(j>i){
                right_sum+=nums[j];
            }
        }
        if(left_sum==right_sum) 
            return i;
        left_sum=0;
        right_sum=0;
       
    }
        return -1;
}



方法二,来自评论区某个用户的

int pivotIndex(int* nums, int numsSize) {
    int i = 0, sum = 0, result = -1, left = 0, right = 0;
    int *arrsum = (int *)malloc(sizeof(int) * numsSize);
    for(; i < numsSize; i++)
    {
        sum += *(nums + i);
        *(arrsum + i) = sum;
    }
    for(i = 0; i < numsSize; i++)
    {
        left = *(arrsum + i) - *(nums + i);
        right = sum - *(arrsum + i);
        if(left == right)
        {
            result = i;
            break;
        }
    }
    return result;
}



相关标签: 要面试啦 数组