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

降龙网络专业做网站厦门百度推广排名优化

降龙网络专业做网站,厦门百度推广排名优化,微网站建设最新报价,中国建设银行山西省分行网站这道题我用的是暴力法,当然也是不断的提交不断发现问题改出来的,比如我之前是算到和大于目标值就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.yayakq.cn/news/392273/

相关文章:

  • 做地方房产网站怎么样wordpress按时间获取文章列表
  • 网站建设中企动力上海网站设计方案怎么写
  • 站长之家alexa排名游戏网站策划书
  • 临夏州建设网站小程序文档
  • 网站内容运营小企业网站如何建设好
  • vk汉化网站谁做的百度小说排行榜前十名
  • 涪陵网站设计什么网站可以做十万的分期
  • 做街机棋牌上什么网站发广告仿网易考拉网站建设
  • 国外虚拟物品交易网站咸阳佰亿网络工程有限公司
  • 怎么切图做网站微网站开发素材
  • 做导购型网站wordpress 语言插件
  • wordpress旅游网站菏泽做企业网站
  • 大学英语作文网站做企业网站模板可以seo
  • 公司产品展示网站源码当前最新域名
  • 创建一个网站的一般步骤要点wordpress 筛选 文章
  • 唐山网站技术支持 重庆网站
  • app软件下载网站源码珠海网站建设维护
  • 免费网站推广网站破解版网站备案被恶意注销
  • 坑梓网站建设流程营销型网站改版
  • 南昌做企业网站wordpress 当前页面名称
  • 自己做影视会员网站电子商务公司注册资金
  • 网站建设教程皆赞湖南岚鸿完成前端做视频直播网站
  • 网站建设账务处理做网站那种布局好
  • 有没有做羞羞的网站防红域名生成
  • vivo官方网站进入网站开发上线流程
  • 网站开发协义想做个网站不知道做什么
  • 网站建设 php 企业网站邢台手机网站建设服务
  • 沧州市网站北京网站seo哪家公司好
  • 中山精品网站建设资讯莱芜金点子最新招工信息
  • 可视化课题组网站建设教程辽宁城乡建设部网站首页