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

it彩票网站建设维护工程师wordpress插件写在模板里

it彩票网站建设维护工程师,wordpress插件写在模板里,做网站用什么语言比较简单,凡客网上购物商城文章目录一. 题目描述二. 解法① 暴力破解② 静态哈希表1. 为什么用哈希表来做2. 特殊情况#xff1a;两数相同#xff0c;map映射覆盖③ 动态哈希表④ 未解之谜诶嘿#xff0c;经典开头题目 一. 题目描述 数组中同一个元素不能使用两遍#xff1a; 见实例2#xff0c;实… 文章目录一. 题目描述二. 解法① 暴力破解② 静态哈希表1. 为什么用哈希表来做2. 特殊情况两数相同map映射覆盖③ 动态哈希表④ 未解之谜诶嘿经典开头题目 一. 题目描述 数组中同一个元素不能使用两遍 见实例2实际过程可能出现输出为[0,0]的情况就是同一元素使用了两遍要注意判断 二. 解法 ① 暴力破解 看到题干首选暴力。 只需要遍历数组对于数组中的每一个元素都和后面的所有元素进行一次匹配即可。 class Solution {public int[] twoSum(int[] nums, int target) {for(int i0;;i){for(int ji1;jnums.length;j){if(nums[i]nums[j]target)return new int[]{i,j};}}} }时间复杂度为O(n2n^2n2)空间复杂度为O(1) 现在题目解出来了但是要怎么优化呢 看到上述的时空复杂度可以这么想时间复杂度和空间复杂度不太均衡可不可以试一下把时间上的负担分一点到空间上呢 ② 静态哈希表 class Solution {public int[] twoSum(int[] nums, int target) {MapInteger, Integer hashtable new HashMapInteger, Integer();// 先构建哈希表for(int i0;inums.length; i)hashtable.put(nums[i],i);// 再遍历数组结合哈希表进行查找for(int i0;inums.length; i){if(hashtable.containsKey(target - nums[i])){// 这边这个判断不能少否则出现同一元素使用两次的情况if(hashtable.get(target - nums[i])!i)return new int[]{hashtable.get(target - nums[i]),i};}}return new int[0];} }时间复杂度O(n)空间复杂度O(n) 1. 为什么用哈希表来做 暴力法的时间复杂度由来n(遍历数组元素* n(查找能和当前数组组合成target的元素。 而这个查找的O(n)如果是用哈希表来实现则是O(1)。 而由于需要构建出哈希表我们需要付出O(n)的空间复杂度代价。 2. 特殊情况两数相同map映射覆盖 描述使用两个数据值相同下标不同的元素。而我们在建立映射表时使用的键值是数据值因此下标大的元素会覆盖之前的元素变成新的映射导致有些映射会丢失。 理解考虑了好久。。。其实这样子不会出问题。 首先保留的是下标大的元素的映射然后我们在遍历时使用的是数组而且是先遇到下标小的元素。 对这个小的元素进行哈希表查找刚好可以找到下标大的元素。就可以得到正确的结果 ③ 动态哈希表 class Solution {public int[] twoSum(int[] nums, int target) {MapInteger, Integer hashtable new HashMapInteger, Integer();for (int i 0; i nums.length; i) {if (hashtable.containsKey(target - nums[i])) {return new int[]{hashtable.get(target - nums[i]), i};}hashtable.put(nums[i], i);}return new int[0];} }时间复杂度O(n)空间复杂度O(n)目前了解的最好的方法在②的基础上会比较好理解在②之上的优化 不需要进行相同元素的判断当出现与之前值相同并且可以组成target的值时就直接满足return条件了。 比如实例3先存储30映射到nums[1]的时候不需要覆盖31映射而是满足if判断直接返回[01]。占用的时间空间会更小因为是一边建哈希表一边找answer的所以很大概率在完全建表之前就找到answer。 ④ 未解之谜 这一块是无伤大雅但是想弄明白的地方 增强型for循环溢出 这个解决了应该把nums改成nums.length还是用得不够熟悉。 // 正常for循环不会出错 for(int i0;inums.length; i)hashtable.put(nums[i],i); // 增强型for循环会出现越界错误 for(int i : nums)hashtable.put(nums[i],i);需要额外写return // ②③如果只有if的return编译器会报错“missing return statement”但是①却不需要 return new int[0];
http://www.zqtcl.cn/news/329579/

相关文章:

  • 电子商务企业网站的推广方式外贸长尾关键词挖掘网站
  • 靓号网建站网站商城html模板
  • 广东顺德网站建设wordpress 我爱搜罗网
  • 基金网站建设需求书昆明网站制作工具
  • 京东网上购物商城官方网站国外网站页头设计图片
  • 芯片设计公司排名安卓优化大师app
  • 如何进行网站域名解析网站开发的工作方法
  • 专门做衣服的网站有哪些南宁企业官网seo
  • 网站 建设 内容中铁建设集团有限公司招聘官网
  • 个人电脑做服务器网站cn域名注册流程
  • 网站开发的思维导图哪些网站是react做的
  • 住房和城乡建设部网站注册进度常德建设局网站
  • 网站导购话术怎么做免费的产品图片网站
  • 网站设计外文文献建建设网站公司
  • 打开网站说建设中是什么问题网站开发收税
  • 海口建设厅网站grimhelm wordpress
  • 如何快速提升网站pr淮北房产网
  • 微网站和微信广州营销型网站建设团队
  • 企业网站制作托管微信建站网站
  • h5网站如何做排名济南网站建设选聚搜网络
  • 网站建设 手机wordpress 仿煎蛋主题
  • 织梦可以仿所有网站吗电子商务网站建设臧良运课后答案
  • 怎样创建个人购物网站wordpress没有外观
  • 衡水手机网站建设公司计算机大专学历有用吗
  • 有哪些网站做的很好桐乡市建设局官方网站
  • 做公众号和网站一样吗免费正能量网站下载ww
  • 使用帝国做软件下载网站源码顺义区做网站的公司
  • 网站用什么颜色成都网站建设公司服务
  • 重庆手机网站方案设计凡科建站网站怎么保存发给别人
  • 北京住房建设官方网站xampp wordpress服务器