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

建设足球网站的心得和意义免费人脉推广

建设足球网站的心得和意义,免费人脉推广,网站做业务赚钱,兼职做网站编辑题意:给定一个数组求连续的子数组的和为k的有几个 Input: nums [1,1,1], k 2 Output: 2 https://leetcode.com/problems/subarray-sum-equals-k/description/ 首先思考1.因为是subarray sum前缀和很容易想到,那问题就转化成preSum[i] preSum[j] - k…

题意:给定一个数组求连续的子数组的和为k的有几个
Input: nums = [1,1,1], k = 2
Output: 2

https://leetcode.com/problems/subarray-sum-equals-k/description/

首先思考1.因为是subarray sum前缀和很容易想到,那问题就转化成preSum[i] = preSum[j] - k (i < j)求个数的问题,那么hashmap就很容易想到了
思考2: dp,但是dp在这里有个问题,1维dp是没有办法解决这个问题的,这种类型的dp一般是dp[i],意思是以右端点为i的subarray sum,但是dp[i]找不到任何可以递推的等式,所以必须引入左端点做二维dp,那么问题的复杂度就高了
还有一个点是,第二个for循环中,必须要引入preSum[0], 因为preSum[i] - preSum[0]是0-i的数字全包括的情况

class Solution {
public:int subarraySum(vector<int>& nums, int k) {//preSum[j] - preSum[i] = k//preSum[i] = preSum[j] - k (i < j)int m = nums.size();vector<int> preSum(m+1, 0);preSum[0] = 0;for(int i = 1; i < preSum.size(); i++) {preSum[i] = preSum[i-1] + nums[i-1]; }int ret = 0;unordered_map<int, int> mp;for(int i = 0; i < preSum.size(); i++) {if(mp.count(preSum[i]-k) > 0) {ret += mp[preSum[i]-k];}mp[preSum[i]]++;}return ret;}
};

时间O(n), 空间O(n)

http://www.hkea.cn/news/763931/

相关文章:

  • 南通网站定制方案怎么查找关键词排名
  • 权大师的网站是哪个公司做的百度做个人简介多少钱
  • 烟台网站建设设计软文广告经典案例100字
  • 做微信用什么网站广州百度seo代理
  • 网站建设目标 优帮云跨境电商营销推广
  • 郑州华恩科技做网站怎么样竞价排名适合百度吗
  • flask做大型网站开发深圳seo博客
  • 合肥网站建设平台小程序怎么引流推广
  • 做网站被拘留免费找客源软件
  • 门户型网站建设百度seo快速提升排名
  • 印度做杂质的网站如何进行网络推广
  • 建设厅八大员兴安盟新百度县seo快速排名
  • 南京网站建设索q.479185700小说排行榜百度
  • 幼儿做爰网站seo工程师是什么职业
  • 申请空间 建立网站吗西安百度推广运营
  • 做花馍网站百度联盟
  • 沈阳建设企业网站google浏览器官网
  • 毕业论文 网站开发营销qq下载
  • 建网站要多长时间外贸网站优化
  • 苹果网站做的好的点电脑培训网上免费课程
  • 做网站开源互联网优化是什么意思
  • 模仿做网站b站上海热点新闻
  • phpcmsv9网站地图地推的60种方法
  • 湖南手机版建站系统哪个好百度网盘app怎么打开链接
  • asp网站开发的实训报告电商营销推广有哪些?
  • 交互设计流程外贸网站优化公司
  • 网络营销网站策划个人网站seo入门
  • 云南省网站备案要求全渠道营销的概念
  • 装修网站合作平台有哪些torrentkitty磁力猫
  • 大理网站开发长春seo结算