1、题目描述
2、解决方案
2-1、辅助数组进行解题
- class Solution {
- public int[] runningSum(int[] nums) {
- if(nums==null || nums.length == 0) return new int[]{};
- int[] dp = new int[nums.length];
- dp[0]=nums[0];
- for(int i = 1; i < nums.length; i++){
- dp[i]=dp[i-1]+nums[i];
- }
- return dp;
- }
- }
复杂度分析
时间复杂度:O(n),其中 n 是给定数组长度。
空间复杂度:O(n)。 辅助空间dp的长度。
2-2、原地修改,此时的空间复杂度为O(1)
- class Solution {
- public int[] runningSum(int[] nums) {
- for(int i = 1; i < nums.length; i++){
- nums[i]=nums[i-1]+nums[i];
- }
- return nums;
- }
- }
复杂度分析
时间复杂度:O(n),其中 n 是给定数组长度。
空间复杂度:O(1)。我们只需要常数的空间保存若干变量。