1.题目:
2.解析:
如果暴力解法时间复杂度是O(N^2),定个,i,遍历左边右边; 这里可以优化为前缀和的做法,其实就是个动态规划。
代码:
public int pivotIndex(int[] nums) { int n = nums.length; int[] f = new int[n]; int[] g = new int[n]; //预处理前缀和数组 for(int i = 1; i < n; i++) f[i] = f[i-1] + nums[i-1]; for(int i = n-2; i >= 0; i--) g[i] = g[i+1] + nums[i+1]; //使用前缀和数组 for(int i = 0; i < n; i++) if(f[i] == g[i]) return i; return -1; }