美文网首页
[数组]724. Find Pivot Index

[数组]724. Find Pivot Index

作者: Reflection_ | 来源:发表于2018-03-06 15:03 被阅读0次

    724. Find Pivot Index
    时间复杂度为o(n),空间复杂度为o(1).

    方法一:Java

    class Solution {
        public int pivotIndex(int[] nums) {
            if(nums.length == 0) return -1;
            //第一次遍历,sum all
            int sum = 0;
            for(int i = 0; i< nums.length ;i++){
                sum+= nums[i];
            }
            
    //         第二次遍历,当 2*(前sum + this )== sum all时,返回this
            int subsum = 0;
            for(int j = 0; j < nums.length; j++){
                if(subsum*2 + nums[j] == sum)return j;
                else subsum += nums[j];
            }
            
            return -1;
        }
    }
    

    方法二:Python

    class Solution(object):
        def pivotIndex(self, nums):
            """
            :type nums: List[int]
            :rtype: int
            """
    #        遍历第一次 计算每个到当前i的subsum
            subsum =[]
            s = 0
            for i in nums:
                s += i
                subsum.append(s)
    #         遍历第二次 当左subsum == 总sum-当前subsum(右subsum)
            for ind in range(1,len(nums)):
                if(subsum[ind-1] == subsum[len(nums)-1] - subsum[ind]):
                    return ind
            
            return -1
                
        
    

    相关文章

      网友评论

          本文标题:[数组]724. Find Pivot Index

          本文链接:https://www.haomeiwen.com/subject/zsqffftx.html