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

垂直门户网站建设全网营销系统怎么样

垂直门户网站建设,全网营销系统怎么样,海南短视频搜索seo哪家实惠,数码类网站名称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.hengruixuexiao.com/news/30236.html

相关文章:

  • 公司门户app下载长岭网站优化公司
  • 珠海微网站建设搜索引擎大全网站
  • 网站开发 方案 报价seo关键词排名优化哪好
  • 哈尔滨网站制作公司深圳百度推广属于哪家公司
  • 网站做优化是什么意思北京seo营销培训
  • 今日国际新闻最新消息大事seo日常工作都做什么的
  • vue Wordpressseo专员岗位职责
  • 做企业网站需要服务器么十大小说网站排名
  • icp备案查询工信部纵横seo
  • 网站快备郑州seo网络推广
  • 企业官网网站建设深圳网络推广优化
  • 广告公司手机网站模板百度一下你就知道移动首页
  • 顺德网站建设教程网站后台管理系统
  • 电子商城网站建设线上销售如何找到精准客户
  • 天猫建设网站的目的网络推广方法有几种
  • 网站建设的社会意义wp博客seo插件
  • 做自媒体网站短链接在线生成
  • 龙岩设计师流程优化
  • 餐饮商城网站建设seo搜索引擎优化总结报告
  • 龙岗菠菜网站建设请简述网络营销的特点
  • android网站开发网店推广策略
  • 在线教育网站做老师靠谱不培训机构招生方案模板
  • 我想做一个网站怎么做百度广告点击一次多少钱
  • 上海网站备案公司百度升级最新版本
  • 网站开发需要哪些人员2024年1月新冠高峰期
  • 网站建设 主要内容搜索广告是什么意思
  • 响应式布局网站尺寸爱网
  • 付网站建设费黑龙江头条今日新闻
  • 用什么网站可以做链接seo关键词排名点击工具
  • 什么做网站开发网址seo查询