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

怎样做网贷网站深圳龙岗区律师

怎样做网贷网站,深圳龙岗区律师,怎么查看一个网站是不是伪静态,无忧中英繁企业网站系统 完整【问题描述】[第560题][和为K的子数组][中等] 给定一个整数数组和一个整数 k#xff0c;你需要找到该数组中和为 k 的连续的子数组的个数。示例 1 :输入:nums [1,1,1], k 2 输出: 2 , [1,1] 与 [1,1] 为两种不同的情况。 说明 :数组的长度为 [1, 20,000]。 数组中元素的范围…【问题描述】[第560题][和为K的子数组][中等] 给定一个整数数组和一个整数 k你需要找到该数组中和为 k 的连续的子数组的个数。示例 1 :输入:nums [1,1,1], k 2 输出: 2 , [1,1] 与 [1,1] 为两种不同的情况。 说明 :数组的长度为 [1, 20,000]。 数组中元素的范围是 [-1000, 1000] 且整数 k 的范围是 [-1e7, 1e7]。 【解答思路】 1. 暴力 时间复杂度O(N^2) 空间复杂度O(1) public int subarraySum(int[] nums, int k) {int count 0;int len nums.length;for (int left 0; left len; left) {int sum 0;// 区间里可能会有一些互相抵销的元素for (int right left; right len; right) {sum nums[right];if (sum k) {count;}}}return count;} 2.前缀和 构建前缀和数组以快速计算区间和注意在计算区间和的时候下标有偏移。 时间复杂度O(N^2) 空间复杂度O(N) public class Solution {public int subarraySum(int[] nums, int k) {int len nums.length;// 计算前缀和数组int[] preSum new int[len 1];preSum[0] 0;for (int i 0; i len; i) {preSum[i 1] preSum[i] nums[i];}int count 0;for (int left 0; left len; left) {for (int right left; right len; right) {// 区间和 [left..right]注意下标偏移if (preSum[right 1] - preSum[left] k) {count;}}}return count;} } 3. 前缀和 哈希表优化 时间复杂度O(N) 空间复杂度O(1) 由于只关心次数不关心具体的解我们可以使用哈希表加速运算 由于保存了之前相同前缀和的个数计算区间总数的时候不是一个一个地加时间复杂度降到了 O(N)O(N)。 preSumFreq.put(0, 1)数组中有些数直接就等于k import java.util.HashMap; import java.util.Map;public class Solution {public int subarraySum(int[] nums, int k) {// key前缀和valuekey 对应的前缀和的个数MapInteger, Integer preSumFreq new HashMap();// 对于下标为 0 的元素前缀和为 0个数为 1preSumFreq.put(0, 1);int preSum 0;int count 0;for (int num : nums) {preSum num;// 先获得前缀和为 preSum - k 的个数加到计数变量里if (preSumFreq.containsKey(preSum - k)) {count preSumFreq.get(preSum - k);}// 然后维护 preSumFreq 的定义preSumFreq.put(preSum, preSumFreq.getOrDefault(preSum, 0) 1); //getOrDefault 有就是get preSum的对应的值 不存在就为0}return count;} } public class Solution {public int subarraySum(int[] nums, int k) {// 记录区间和为 k 的个数和数组前缀元素和。int ans 0, curr 0;// 创建 hashMap 记录数组前缀和以及当前和对应的前缀个数。HashMapInteger, Integer map new HashMap();// 遍历前初始化前缀和为 0 的个数为 1 。map.put(0, 1);for (int num : nums) {// 依次遍历并累加数组元素。curr num;int pre curr - k;// 如果之前有前缀和等于 curr - k 表示从该前缀之后到当前元素区间和为 k 。if (map.containsKey(pre)) {// 叠加和为 k 的区间个数。ans map.get(pre);}// 遍历完每个元素后记录当前前缀和以及个数。if (map.containsKey(curr)) {map.put(curr, map.get(curr) 1);} else {map.put(curr, 1);}}return ans;} } 【总结】 1. 暴力优化 2.哈希表 关于次数的优化 3.HashMap 1 插入键值对数据 public V put(K key, V value) 2根据键值获取键值对值数据 public V get(Object key) 3获取Map中键值对的个数 public int size() 4判断Map集合中是否包含键为key的键值对 public boolean containsKey(Object key) 5判断Map集合中是否包含值为value的键值对 boolean containsValue(Object value) 6判断Map集合中是否没有任何键值对 public boolean isEmpty() 7清空Map集合中所有的键值对 public void clear() 8根据键值删除Map中键值对 public V remove(Object key) 遍历hashMap for (Integer key : map.keySet()) { if (map.get(key) 1) {return key;}原文链接https://leetcode-cn.com/problems/subarray-sum-equals-k/solution/bao-li-jie-fa-qian-zhui-he-qian-zhui-he-you-hua-ja/ 参考链接https://leetcode-cn.com/problems/subarray-sum-equals-k/solution/560ti-he-wei-kde-zi-shu-zu-by-iceblood/
http://www.zqtcl.cn/news/633333/

相关文章:

  • 网站推广机构我的世界怎么做赞助网站
  • 做网站的公司图sae wordpress storage
  • 做塑料的网站有哪些东道设计公司待遇如何
  • 烟台做网站哪家好网站加速器下载
  • 哪些网站是响应式河北省住房和城乡建设厅信用网站
  • 彩票网站html模板新闻html网页设计代码范文
  • 建网站视频怎么建网站卖产品
  • 做翻糖的网站深圳做购物网站
  • 国外界面设计网站海淘网站
  • 全国住房城乡建设厅网站wordpress 宽版
  • 网站建设实训意见中国建设人才信息网站
  • 如何给网站做301跳转中国做机床的公司网站
  • 网站建设课程体系济南建站详情
  • jsp网站空间网站开发北京 广告 手机网站
  • 郑州网站建设推广爱站网seo综合查询工具
  • 2017年网站开发用什么语言手游排行榜
  • 鞍山百度网站怎么制作建设部网站建造师公示
  • 建设部网站业绩补录营销型网站制作的方法
  • 建设网站的功能及目的是什么意思兰州网络优化seo
  • 用ps软件做ppt模板下载网站有哪些内容广州seo服务外包
  • 毕业设计论文网站开发需要多少湛江建站免费模板
  • 做豆制品的网站集团网站建设策划方案
  • 燕郊网站制作哈尔滨企业网站建站推荐
  • 本地网站做通用会员卡建立电子商务网站目的
  • ftp网站地图怎么做网站模板出售
  • 用rp怎么做网站导航菜单手机app制作入门教程
  • 国外创意网站市场营销在线课程
  • 怎么做点图片链接网站网站建设云解析dns有什么用
  • 重庆网站建设哪家公司哪家好企业 网站规划与网页设计word
  • 手机必备软件100个网站建设和优化排名