力扣刷题 day30:09-29

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

给你一个正整数数组 arr ,请你计算所有可能的奇数长度子数组的和。

子数组 定义为原数组中的一个连续子序列。

请你返回 arr 中 所有奇数长度子数组的和 。力扣刷题 day30:09-29_第1张图片

方法一:前缀和+双指针 

#方法一:前缀和+双指针
def sumOddLengthSubarrays(arr):
    preSum=[0 for i in range(len(arr)+1)] #构建前缀和数组
    res=0
    for i in range(1,len(arr)+1):
        preSum[i]=preSum[i-1]+arr[i-1]
    left,right=0,0  #左右指针
    while left

 2.找到最高海拔

有一个自行车手打算进行一场公路骑行,这条路线总共由 n + 1 个不同海拔的点组成。自行车手从海拔为 0 的点 0 开始骑行。

给你一个长度为 n 的整数数组 gain ,其中 gain[i] 是点 i 和点 i + 1 的 净海拔高度差(0 <= i < n)。请你返回 最高点的海拔 。力扣刷题 day30:09-29_第2张图片

 方法一:前缀和

#方法一:前缀和
def largestAltitude(gain):
    preSum=[0 for i in range(len(gain)+1)] #前缀和数组
    for i in range(1,len(gain) +1):
        preSum[i]=preSum[i-1]+gain[i-1]
    return max(preSum)

 3.检查是否区域内所有整数都被覆盖

给你一个二维整数数组 ranges 和两个整数 left 和 right 。每个 ranges[i] = [starti, endi] 表示一个从 starti 到 endi 的 闭区间 。

如果闭区间 [left, right] 内每个整数都被 ranges 中 至少一个 区间覆盖,那么请你返回 true ,否则返回 false 。

已知区间 ranges[i] = [starti, endi] ,如果整数 x 满足 starti <= x <= endi ,那么我们称整数x 被覆盖了。

力扣刷题 day30:09-29_第3张图片

方法一:暴力求解 

#方法一:暴力求解
def isCovered(ranges,left,right):
    for x in range(left,right+1):  #逐个遍历区间
        flag=False  #标记
        for l,r in ranges:
            if l<=x<=r:  #判断该数字是否在ranges里面,有没有被覆盖
                flag=True
                break
        if not flag:   #没有被覆盖直接return
            return False
    return True 

4.找到数组的中间位置

给你一个下标从 0 开始的整数数组 nums ,请你找到 最左边 的中间位置 middleIndex (也就是所有可能中间位置下标最小的一个)。

中间位置 middleIndex 是满足 nums[0] + nums[1] + ... + nums[middleIndex-1] == nums[middleIndex+1] + nums[middleIndex+2] + ... + nums[nums.length-1] 的数组下标。

如果 middleIndex == 0 ,左边部分的和定义为 0 。类似的,如果 middleIndex == nums.length - 1 ,右边部分的和定义为 0 。

请你返回满足上述条件 最左边 的 middleIndex ,如果不存在这样的中间位置,请你返回 -1 。力扣刷题 day30:09-29_第4张图片

方法一:前缀和 

#方法一:前缀和
def findMiddleIndex(nums):
    preSum=[0 for i in range(len(nums)+1)]
    for i in range(1,len(nums) +1):
        preSum[i]=preSum[i-1]+nums[i-1] #前缀和数组
    for i in range(len(nums)):
        if preSum[i] == preSum[len(nums)]-preSum[i+1]:
            return i  #找到了
    return -1 #没找到 

你可能感兴趣的:(力扣刷题,leetcode,算法,数据结构)