动态规划问题,刚开始想直接写个二维数组,然后存下所有sum[i,j],后来发现测试案例有1W,然后RUN TIME ERROR了
后来发现其实只需要一维数组就可以解决,sum[i]存储i之前所有值的和,求解sum[i,j]=sum[j]-sum[i-1]
还有就是数组为空时返回0,感觉这个测试案例并没有什么卵用
class NumArray { public: int*sum; NumArray(vector<int> &nums) { if (nums.size() == 0) sum = NULL; else { sum = new int[nums.size()]; sum[0] = nums[0]; for (int i = 1; i < nums.size(); ++i) sum[i] = sum[i - 1] + nums[i]; } } int sumRange(int i, int j) { if (!sum) return 0; else if (i == 0) return sum[j]; else return sum[j] - sum[i - 1]; } };