当前位置: 首页 > news >正文

垂直门户网站建设cpu游戏优化加速软件

垂直门户网站建设,cpu游戏优化加速软件,dede响应式网站模板,wordpress免费主题LeetCode 560. 和为 K 的子数组 给你一个整数数组 nums 和一个整数 k ,请你统计并返回 该数组中和为 k 的连续子数组的个数 。 示例 1: 输入:nums [1,1,1], k 2 输出:2示例 2: 输入:nums [1,2,3], k 3 …

LeetCode 560. 和为 K 的子数组

  

给你一个整数数组 nums 和一个整数 k ,请你统计并返回 该数组中和为 k 的连续子数组的个数 

示例 1:

输入:nums = [1,1,1], k = 2
输出:2

示例 2:

输入:nums = [1,2,3], k = 3
输出:2

提示:

  • 1 <= nums.length <= 2 * 104
  • -1000 <= nums[i] <= 1000
  • -107 <= k <= 107

思路

  • 双层循环暴力求解
  • 前缀和,利用空间换时间的思想,参考 LeetCode 大佬题解


    思路类似于【LeetCode 1. 两数之和】。遍历 nums 数组,求每一项的前缀和,并统计对应nums[i]的出现次数,以键值对存入 map。

    边存边检查 map,如果 map 中存在 key 为「当前前缀和 - k」,说明这个之前出现的前缀和,满足「当前i所对应的前缀和 - 之前出现的前缀和 == k」。最后,将「当前前缀和 - k」出现的次数,累加到结果中即可。

    通俗的说,已知当前 i 所对应的前缀和为 prefixSum[i],我们想找出 prefixSum[i] 减去之前的某些连续子数组和之后的差值等于k的这么一些连续子数组,那么满足条件:当前 i 所对应的前缀和 prefixSum[i] - 之前出现的前缀和 x = k,那么这个 x = prefixSum[i] - k,接下来我们要判断这个 x 在之前是否出现过,因此将求得的每一项前缀和,以及对应的出现次数,以键值对形式存入 map中,以便后续判断。

注意:nums中可能存在负数,sum累加和可能更大也可能更小,因此,即使累加和等于k,也不能提前break退出

时间复杂度

  • 双层循环暴力求解:O(n^2)
  • 利用前缀和:O(n)

空间复杂度

  • 双层循环暴力求解:O(1)
  • 利用前缀和:O(n)
// 方法1 双层循环暴力求解
func subarraySum(nums []int, k int) int {res := 0for i := 0; i < len(nums); i++ {sum := 0for j := i; j < len(nums); j++ {sum += nums[j]if sum == k {res++// break // nums中可能存在负数,sum累加和可能更大也可能更小,不能提前break退出}}}return res
}// 方法2 前缀和(推荐)
// 参考:https://leetcode.cn/problems/subarray-sum-equals-k/solution/dai-ni-da-tong-qian-zhui-he-cong-zui-ben-fang-fa-y/
// 思路:类似于【1、两数之和】,遍历 nums 数组,求每一项的前缀和,统计对应的出现次数,以键值对存入 map。
// 边存边检查 map,如果 map 中存在 key 为「当前前缀和 - k」,说明这个之前出现的前缀和,满足「当前前缀和 - 该前缀和 == k」,它出现的次数,累加给 count
func subarraySum(nums []int, k int) int {m := map[int]int{0:1}sum, res := 0, 0for i := 0; i < len(nums); i++ {sum += nums[i]if cnt, ok := m[sum - k]; ok {res += cnt}m[sum] += 1}return res
}
http://www.tj-hxxt.cn/news/58216.html

相关文章:

  • 大型网站架构实战同城广告发布平台
  • 自建网站怎么做二级页跳转独立站怎么搭建
  • 做黄色网站赚钱么2023年中国进入一级战备状态了吗
  • 简单网站制作购买友情链接网站
  • 微网站建设的第一步是进行seo网站优化软件
  • wordpress css js热狗网站关键词优化
  • 双辽做网站深圳 网站制作
  • 如何做网站路径分析营销推广平台
  • wordpress轻物语主题湘潭seo优化
  • 专门做ppt的网站廊坊seo整站优化
  • 世界做诡异的地方网站黑帽seo排名技术
  • 商贸网站建设网站推广服务外包
  • 网站建设与管理实验大众网疫情最新消息
  • 遵义网站优化百度大数据分析
  • 手机网站建设 广州深圳关键词优化软件
  • 邱县手机网站建设seo网站优化经理
  • 推广优化厂商联系方式魔贝课凡seo
  • 仿牌网站空间百度seo和sem
  • 怎么做国外网站seo入门教程网盘
  • 动态网站建设与规划seo页面优化技术
  • 网站顶级导航制作方法便民信息微信平台推广
  • 做壁画在哪个网站比较好的友链平台
  • 开宾馆做独家网站好吗营销策划的六个步骤
  • 呼叫中心系统平台百度seo优化方法
  • 网站运行与维护北京软件开发公司
  • 汕头教育的网站建设免费网站开发平台
  • 有哪些做动图网站关键词优化排名怎么做
  • 安卓手机做网站专业网站优化公司
  • 中国建设银行官网站电话常见的系统优化软件
  • 邢台集团网站建设济宁百度竞价推广