ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

【Leetcode】和为 K 的子数组

【Leetcode】和为 K 的子数组 1 题目给你一个整数数组 nums 和一个整数 k ,请你统计并返回 该数组中和为 k 的子数组的个数 。子数组是数组中元素的连续非空序列。示例 1:输入:nums = [1,1,1], k = 2输出:2示例 2:输入:nums = [1,2,3], k = 3输出:22 分析这种求子数组的和,首先考虑前缀和,如果数num能参与目标和的计算,那么一定存在某些数组的和等于k-num。通过这种累加能规避重复计算。另一方面,要寻找的是连续序列,这意味着不能有元素的跳过,那么就需要记录中间元素的和,仅仅使用字典很难,需要使用多维数组。如果定义sums[0][i]为从nums[0]到nums[i-1]的元素和,那么可以定义nums[i][j]=nums[0][j]-nums[0][i],即从nums[i]到nums[j-1]的元素和。我们的目标就是找到有多少个nums[i][j]。最简单的方案就是双重遍历,但这种方法会超出内存限制。defsubarraySum(nums,k):n=len(nums)sums=[[0]*nfor_inrange(
返回列表