算法分析:寻找数组的中心下标

前言

  • 题目网址:https://leetcode-cn.com/problems/find-pivot-index/submissions/
    在这里插入图片描述

解法

  • 这道题很简单,意思就是一个数组分成两个部分,左边的部分和大于右边的部分和,找出这个界限,当然还有个问题可能界限在数组两边,例子里有写。

  • 一开始我的想法收到的双指针的影响,想要在左右两边都设置一个指针然后开始累加,后面想想有界限在数组两端这种情况就很麻烦。

  • 然后通过题解,我理解了这个解法

  • 第一步,首先将数组都加起来,设置为sum

  • 第二步,将索引0设置为界限,左边total加上这个界限,跟sum比,如果相等就返回,不相等就接着遍历,并且,total加上数组 的值,sum减去数组的值
    在这里插入图片描述

  • 第三步,当两边相等,返回索引
    在这里插入图片描述

  • 这道题还是相当简单的,不说了上代码


class Solution {
    public int pivotIndex(int[] nums) {
    	//累加
        int sum = Arrays.stream(nums).sum();
        //左边
        int total = 0;
        int l = nums.length;
        //循环遍历
        for(int i=0;i<l;i++){
            //加上当下的索引
            total += nums[i];
            if(total == sum){
                return i;
            }
            //减去当下的索引
            sum -= nums[i];
        }
        //没有合适的返回
        return -1;
    }
}

总结

题目相当简单

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值