2021/10/9 力扣数组和字符串第一题

2021/10/9 力扣数组和字符串第一题

	刚开始是想在 数组开头 和 结尾 分别设 两个指针 left 
	right,leftSum rightSum记录两边和,哪边小哪边就加
	一个元素,直到两边和相等或没找到,但是各种出错。
抄袭大神的代码:
int pivotindex( vector<int>& nums ) {
    
    int tempSum = 0;

    for( int i = 0; i < nums.size() ; i++ ) {
        tempSum += nums[i]; //求出所有元素和
    }

	 //错误代码 目的是求中值在最左边或最右边的情况  给个例子就知道为什么错了 2 -1 -1 0 0,正确答案3 这里是4
    /*if( tempSum - nums[0] == 0 ) {
        return 0;
    } else if( tempSum - nums[nums.size() - 1] == 0 ) {
        return nums.size() - 1;
    }*/

    int leftSum = 0; //记录左边元素和

    for( int i = 0; i < nums.size(); i++ ) {
        tempSum -= nums[i]; //tempSum减去左边元素,减去的左边元素是leftSum元素一部分

        if( leftSum == tempSum ) {
            return i;
        }

        leftSum += nums[i]; //leftSum位置不要放错,每次与tempSum要隔开一个元素比较
    }

    return -1;
}```

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值