今天是 Kevin 的算法之路的第 18 天。为大家讲解 LeetCode 第 1480 题,有读者表示最近几题有点难度,今天就来一道简单的缓一缓叭(我当然不会告诉你其实是我时间匆忙姑且水一道简单题 手动狗头 😄
每日一笑
早起的好处:拥有更多时间,能吃到美味的早饭,头脑清醒,抑郁几率小,改善皮肤,提高免疫力。
赖床的好处:爽。
题目描述
给你一个数组 nums 。数组「动态和」的计算公式为:runningSum[i] = sum(nums[0]…nums[i]) 。
请返回 nums 的动态和。
示例 1:
输入:nums = [1,2,3,4]
输出:[1,3,6,10]
解释:动态和计算过程为 [1, 1+2, 1+2+3, 1+2+3+4] 。
示例 2:输入:nums = [1,1,1,1,1]
输出:[1,2,3,4,5]
解释:动态和计算过程为 [1, 1+1, 1+1+1, 1+1+1+1, 1+1+1+1+1] 。
示例 3:输入:nums = [3,1,2,10,1]
输出:[3,4,6,16,17]提示:
1 <= nums.length <= 1000
-10^6 <= nums[i] <= 10^6来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/running-sum-of-1d-array
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
解题思路
这题很简单粗暴,直接循环就完事!但是也有动态规划的思想
res[0] = nums[0] ( i = 0)
res[i] = res[i-1] + nums[i] ( i > 0)
相信大家都懂,不多解释,直接上代码
代码实现
//go
func runningSum(nums []int) []int {
length := len(nums)
res := make([]int, length)
if length < 1 {
return res
}
res[0] = nums[0]
for i := 1; i < length; i++ {
res[i] = res[i-1] + nums[i]
}
return res
}
//java
class Solution {
public int[] runningSum(int[] nums) {
int res[] = new int[nums.length];
res[0] = res[0];
for(int i = 1;i < nums.length ;i++){
res[i] = res[i-1] + nums[i];
}
return res;
}
}
郑重声明:
所展示代码已通过 LeetCode 运行通过,请放心食用~
在唠唠嗑
很多人都想养成好习惯,但大多数人却是三分钟热度。为了我们能一起坚持下去,决定制定如下计划(福利)
一起学算法,打卡领红包!
参与方式:
关注我的微信公众号「Kevin的学堂」
还可「加群」与众多小伙伴
一起坚持,一起学习,一起更优秀!
打卡规则为:
「留言」“打卡XXX天” ➕「分享」到朋友圈
奖励:
连续打卡
21
天,联系本人获取6.6
元红包一个!连续打卡
52
天,联系本人获取16.6
元红包一个!连续打卡
100
天,联系本人获取66.6
元红包一个!
个人精力不够,内容主要发布在公众号平台,其他平台可能更新不及时,还望见谅~