力扣每日一题2021.08.29所有奇数长度子数组的和


1588.所有奇数长度子数组的和

题目描述

给你一个正整数数组arr,请你计算所有可能的奇数长度子数组的和。
子数组定义为原数组中的一个连续子序列。
请你返回arr中所有奇数长度子数组的和。


示例1

输入:arr = [1, 4, 2, 5, 3]
输出:58
解释:所有奇数长度子数组的和为1+4+2+5+3+(1+4+2)+(4+2+5)+(2+5+3)+(1+4+2+5+3)=58


示例2

输入:arr = [1, 2]
输出:3
解释:总共只有2个长度为奇数的子数组,和为3。


示例3

输入:arr = [10, 11, 12]
输出:66


提示

  • 1 <= arr.length <= 100
  • 1 <= arr[i] <= 1000

思路:切片求和

应用切片遍历列表求和。
切片求和

class Solution:
    def sumOddLengthSubarrays(self, arr: List[int]) -> int:
        i, sumall = 1, 0
        while i <= len(arr):
            for j in range(len(arr)-i+1):
                sumall += sum(arr[j:j+i])
            i += 2
        return sumall
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值