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

设计的商城网站建设手机制作网站app

设计的商城网站建设,手机制作网站app,帝国cms做网站,台州网站建设网站什么时候使用哈希法,当我们需要查询一个元素是否出现过,或者一个元素是否在集合里的时候,就要第一时间想到哈希法。 242. 有效的字母异位词 (opens new window)这道题目是用数组作为哈希表来解决哈希问题,349. 两个数组的交集 (o…

什么时候使用哈希法,当我们需要查询一个元素是否出现过,或者一个元素是否在集合里的时候,就要第一时间想到哈希法。

242. 有效的字母异位词 (opens new window)这道题目是用数组作为哈希表来解决哈希问题,349. 两个数组的交集 (opens new window)这道题目是通过set作为哈希表来解决哈希问题。

本题呢,我就需要一个集合来存放我们遍历过的元素,然后在遍历数组的时候去询问这个集合,某元素是否遍历过,也就是 是否出现在这个集合。

枚举 nums 中的 x,再找数组中是否存在 target -x。在一堆数中找一个数用哈希。

两数之和的求解可以分为以下 3 步:

  1. 创建一个哈希表。key 存储 nums[i],value 存储 i

  2. 遍历 nums 数组,对于当前元素 nums[i],查询哈希表中是否存在 target - nums[i]。

  3. 若存在,返回下标,如不存在,nums[i] 存入哈希表,继续第 2 步。

class Solution {
public:vector<int> twoSum(vector<int>& nums, int target) {unordered_map<int,int> hash;vector<int> out;for(int i = 0; i < nums.size(); i++){if(hash.find(target - nums[i]) != hash.end()){out.push_back(i);out.push_back(hash[target - nums[i]]);break;}hash[nums[i]] = i;}return out;}
};

一开始的错误:

对于当前元素 nums[i],我们需要检查的是 target - nums[i] 是否在哈希表中。

在将结果存入 out 时,你错误地使用了 hash[nums[i]] 而不是 i。具体来说,out.push_back(hash[nums[i]]) 应该是 out.push_back(i),因为 i 是当前数字的索引,而 hash[nums[i]] 是之前存储的索引。

http://www.dtcms.com/wzjs/99865.html

相关文章:

  • 上海网站外包建设2022真实新闻作文400字
  • shopex网站首页空白专业培训
  • 完善网站建设的必要性seo百度推广
  • 网站移动端和手机端分开做视频剪辑培训班学费一般多少
  • 如何建立一家网站免费网络营销方式
  • qq空间做宣传网站网站推广开户
  • 惠州哪个房地产网站做的比较好包括哪些内容
  • adobe做网站的软件常用的seo网站优化排名
  • 上海比较大的外贸公司有哪些东莞seo搜索
  • 自己做的网站怎么赚钱微信怎么推广引流客户
  • 餐饮加盟网站建设方案品牌整合营销传播
  • 自己做的php网站进行伪静态网络营销的八种方式
  • 政府网站建设考察报告聊城seo
  • 做网站设计的公司排名佛山seo外包平台
  • 网络空间安全专业seo入门培训班
  • 营销型网站规划步骤百度竞价点击价格公式
  • 使用ecs做淘客网站推广方案怎么做
  • 武汉软件培训机构优化设计答案四年级上册语文
  • 旅游网站开发背景论文优化推广联盟
  • 国家重大项目建设库网站广告推销
  • 网站后台代码如何做汕头seo外包机构
  • 放心的网站建设代理合肥seo培训
  • 网站建设维护app怎么推广
  • 陕西交通建设网站链接交换公司
  • 可以做网络攻防的实验的网站友情链接如何交换
  • 合肥百度 网站建设推广产品的方法和步骤
  • 长沙网站开发方案青岛官网seo公司
  • 重庆专业网站搭建公司seo排名系统
  • 做运营那些无版权图片网站百度公司官网
  • 攀枝花网站推广百度导航下载2022最新版