問題
原文
Given an array
nums
. We define a running sum of an array asrunningSum[i] = sum(nums[0]…nums[i])
.Return the running sum of
nums
.
Example 1:
123 Input: nums = [1,2,3,4]Output: [1,3,6,10]Explanation: Running sum is obtained as follows: [1, 1+2, 1+2+3, 1+2+3+4].Example 2:
1 Input: nums = [1,1,1,1,1]
内容
配列numsが与えられます。配列runningSumを以下の通り定義します。
→runningSumのi番目の要素はnum[0]からnums[i]までの合計値
配列numsのrunningSumを返してください。
※正しくない可能性があります。
解答
解答1:Python
1 2 3 4 5 6 7 |
class Solution: def runningSum(self, nums: List[int]) -> List[int]: answer = [0]*len(nums) for i in range(len(nums)): answer[i] = sum(nums[:i+1]) return answer |
配列answerが問題文で言うrunningSum。numsと同じ数だけ要素を0にして用意する。
numsをfor文で一巡走査し、i番目のanswerの要素を、i番目までのnumsの要素の合計に変更する。
解答2:Python
1 2 3 4 5 6 7 8 |
class Solution: def runningSum(self, nums: List[int]) -> List[int]: answer = [nums[0]] for i in range(1,len(nums)): answer.append(answer[i-1] + nums[i]) return answer |
配列answerにnumsの1番目の要素だけを入れて用意する。
for文でnumsの2番目から最後の要素まで一巡走査し、
その中でanswerのi-1番目までの要素とnumsのi番目の要素の合計をanswerのi番目の要素として追加する。
メモ・参考・感想
前:1491. Average Salary Excluding the Minimum and Maximum Salary
コメント