题解 | #子群的标签和#

子群的标签和

https://www.nowcoder.com/practice/4058a95b317f4f0e87e5a1bfa6db9aad

  • 题目考察的知识点 : 哈希表运用
  • 题目解答方法的文字分析:
  1. 使用双指针来寻找符合条件的子数组。具体来说,用两个指针 left 和 right 分别表示子数组的左右边界,初始时,left 和 right 都指向数组的第一个元素。然后将右指针 right 不断向右移动,并累加对应元素的值,直到子数组的和等于 k 或者 right 指针移动到数组的末尾。
  2. 如果当前子数组的和等于 k,则将该子数组加入答案集合中;否则,将左指针 left 向右移动一位,并更新子数组的和。
  • 本题解析所用的编程语言: Python
  • 完整且正确的编程代码

#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
#
# @param nums int整型一维数组
# @param k int整型
# @return int整型二维数组
#
class Solution:
    def subarraySum(self, nums: List[int], k: int) -> List[List[int]]:
        res = []
        res_set = set()
        n = len(nums)
        for left in range(n):
            window_sum = 0
            for right in range(left, n):
                window_sum += nums[right]
                if window_sum == k:
                    subarray = nums[left:right + 1]
                    res_tuple = tuple(subarray)
                    if res_tuple not in res_set:
                        res_set.add(res_tuple)
                        res.append(subarray)
                elif window_sum > k:
                    break
        return res
牛客高频top202题解系列 文章被收录于专栏

记录刷牛客高频202题的解法思路

全部评论

相关推荐

肖先生~:先别说工资,现在有个工作就不错了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务