euisblue
1480. Running Sum of 1d Array

C++

1/* 2 * Runtime: 12 ms, faster than 13.10% 3 * Memory Usage: 8.9 MB, less than 98.70% 4 */ 5class Solution { 6public: 7 vector<int> runningSum(vector<int>& nums) { 8 vector<int> result; 9 for(int i=0; i<nums.size(); ++i) 10 { 11 int sum = 0; 12 for(int j=0; j<i+1; ++j) 13 { 14 sum += nums[j]; 15 } 16 result.push_back(sum); 17 } 18 return result; 19 } 20}; 21 22/* 23 * Runtime: 4 ms, faster than 84.50% 24 * Memory Usage: 8.9 MB, less than 98.70% 25*/ 26class Solution { 27public: 28 vector<int> runningSum(vector<int>& nums) { 29 int sum = 0; 30 for(int i=0; i<nums.size(); ++i) 31 { 32 sum += nums[i]; 33 } 34 35 int neg = nums[nums.size()-1]; 36 nums[nums.size()-1] = sum; 37 for (int i=nums.size()-2; i>=0; --i) 38 { 39 int val = sum-neg; 40 neg += nums[i]; 41 nums[i] = val; 42 } 43 return nums; 44 } 45};

JavaScript

1/** 2 * Runtime: 80 ms, faster than 66.97% 3 * Memory Usage: 38.7 MB, less than 5.17% 4 */ 5var runningSum = function(nums) { 6 let sum = nums.reduce((a, b) => a + b, 0); 7 let neg = nums[nums.length-1]; 8 nums[nums.length-1] = sum; 9 10 for (let i=nums.length-2; i>=0; --i) { 11 let val = sum - neg; 12 neg += nums[i]; 13 nums[i] = val; 14 } 15 16 return nums; 17};

Ruby

1=begin 2 Runtime: 52 ms, faster than 72.86% 3 Memory Usage: 210.1 MB, less than 81.12% 4=end 5def running_sum(nums) 6 sum = nums.sum 7 nums << sum; 8 9 (nums.size-2).downto(0) do |i| 10 temp = nums[i] 11 nums[i] = sum - nums[i]; 12 sum -= temp 13 end 14 15 nums.shift 16 nums 17end