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

东莞石龙镇疫情最新消息今天优化大师绿色版

东莞石龙镇疫情最新消息今天,优化大师绿色版,订餐网站怎么做,flash做ppt的模板下载网站有哪些这道题我用的是暴力法,当然也是不断的提交不断发现问题改出来的,比如我之前是算到和大于目标值就break,其实不行因为后面还可以有负数,我把break删了。后面和为目标之后就答案1然后break然后下一次遍历,测试用例中就出…

 这道题我用的是暴力法,当然也是不断的提交不断发现问题改出来的,比如我之前是算到和大于目标值就break,其实不行因为后面还可以有负数,我把break删了。后面和为目标之后就答案+1然后break然后下一次遍历,测试用例中就出现了合理的子串后面还有一个0,于是我改成直到遍历完最后一个才结束循环;所以我把两个break都删了,我以为会超时,没想到还是过了,以下是我的代码:

class Solution {public int subarraySum(int[] nums, int k) {int ans =0;int n = nums.length;int sum=0;for(int i=0;i<n;i++){sum =0;for(int j=i;j<n;j++){sum+=nums[j];if(sum == k){ans++;}}}return ans;}
}

就是最简单的暴力法,用i,j两个指针作为子串的起点和终点,然后把子串的所有数的和加起来,如何等于k,ans++。这里就需要注意我前面提到的无论sum=k还是sum>k都不能break,要遍历到最后一个数自动结束,外层循环每次sum归0。

题解的方法一和我的是一样的暴力枚举,方法二是用HashMap来存前缀和,key是前缀和,value值这个前缀和出现的次数,pre[i]表示前i个数的和,pre[j-1]表示前j-1个数的和,当pre[i]-pre[j-1]=k时,我们就找到了这个子串的起始位置j,所以我们只需要一遍遍历即可(算出pre[i]放入hashmap,如果有这个key,就value+1),同时我们看hashmap中有没有pre[i]-k这个key,如果有答案就加上这个key的value,以下时哈希优化的代码:

public class Solution {public int subarraySum(int[] nums, int k) {int count = 0, pre = 0;HashMap < Integer, Integer > mp = new HashMap < > ();mp.put(0, 1);for (int i = 0; i < nums.length; i++) {pre += nums[i];if (mp.containsKey(pre - k)) {count += mp.get(pre - k);}mp.put(pre, mp.getOrDefault(pre, 0) + 1);}return count;}
}
http://www.yidumall.com/news/43102.html

相关文章:

  • 静态网页模板源代码关键词优化如何做
  • 做报纸能经常更新网站外贸商城建站
  • 门户网站建设存在的问题如何获取热搜关键词
  • wordpress如何给主题加密seo 百度网盘
  • 郑州网站优化软件seo 优化顾问
  • 网站建设素材鄂尔多斯seo
  • 用哪个程序做网站收录好2345网址导航官网下载安装
  • 珠海斗门建设局官方网站百度问答平台入口
  • 无锡哪里有做网站友情链接有哪些
  • 免费申请网站永久域名兰州seo关键词优化
  • 如何建造网站链接网站访问量
  • 做网站是干嘛的2022最新小学生新闻
  • 网站快速优化排名快手推广网站
  • 如何在谷歌做网站外链全球网站访问量排名
  • 手机网站开发视频教程百度官方网站下载
  • 济南外贸网站建设公司排名网络推广公司收费标准
  • 做科普网站惠州百度推广排名
  • 百度开放云制作网站中国法律服务网app最新下载
  • 无锡网站建设方案维护威海seo优化公司
  • 做网站业务员应该了解什么福建seo网站
  • 上海app开发网站建设百度主页面
  • 东莞天助网的网站百度指数电脑版
  • 免费推广网站大全黄色做优化的网站
  • 想做外贸做哪些网站好网站seo关键词排名查询
  • 德阳建设公司网站哪些平台可以发布软文
  • 网站程序怎么做关键词歌曲
  • 物流公司怎么做网站加强网络暴力治理
  • t.cn这种网站怎么做的知识营销成功案例介绍
  • 网站验证码代码百度seo点击工具
  • 郑州做网站的企业现在疫情怎么样了最新消息