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

LeetCode热题100 两数之和

目录

  • 两数之和
    • 题目解析
      • 方法一暴力求解
        • 代码
      • 方法二哈希
        • 代码

感谢各位大佬对我的支持,如果我的文章对你有用,欢迎点击以下链接
🐒🐒🐒 个人主页
🥸🥸🥸 C语言
🐿️🐿️🐿️ C语言例题
🐣🐣🐣 python
🐓🐓🐓 数据结构C语言
🐔🐔🐔 C++
🐿️🐿️🐿️ 文章链接目录
🏀🏀🏀 笔试练习题
🐯🐯🐯 Git
🚀🚀🚀 leetCode热题100

两数之和

两数之和链接
在这里插入图片描述

题目解析

这道题其实就是让我们在给定的数组中找出两个数,让他们相加的和等于给定的值,但是要注意两个数字是不可以相等的,所以如果遇到相等的数字就应该舍去

这道题给出两种解法
第一种是暴力求解,第二种是哈希

方法一暴力求解

暴力解法其实就是给两层循环
在这里插入图片描述

先用一个count去记录要相加等于的数字
第一次for循环先让count减去 i 位置的数字
在这里插入图片描述
第二层for循环就去找count减去后的值,如果第二层for循环没有找到对应的值,那么就重新让count等于给定的值,然后 i 往后移

在这里插入图片描述
之后重复之前的操作
当遇到 i + j 的值为count时要判断他们 i 和 j 是否指向的是同一个位置,如果位置不同但是值相等的我们也要舍去
在这里插入图片描述

如果位置不同,且值也不同那么就可以将 i 和 j 的值push_back进一个数组中

代码
class Solution {
public:vector<int> twoSum(vector<int>& nums, int target) {vector<int> arr;int count = target;for (vector<int>::iterator it1 = nums.begin(); it1 != nums.end(); it1++){count = count - (*it1);for (vector<int>::iterator it2 = nums.begin(); it2 != nums.end();it2++){if (*it2 == count&&it1!=it2) {arr.push_back(it1 - nums.begin());arr.push_back(it2 - nums.begin());break;}}count = target;if(arr.size()>0)break;}return arr;}
};

方法二哈希

下面的代码我也有点看不懂
我来说说我的想法
就是遍历一遍数组,然后将出现的数字存储在一个哈希表中,哈希表是记录数字出现的次数
在这里插入图片描述
比如target为10,那么我们在给定的数组中的第一个元素是1,后面我们就在哈希表中查找9这个元素是否存在
可以从上图中看到,哈希表中9存储的是1,说明有一个元素的值是9,因此就查找成功了

代码
class Solution {
public:vector<int> twoSum(vector<int>& nums, int target) {unordered_map<int, int> hashtable;for (int i = 0; i < nums.size(); ++i) {auto it = hashtable.find(target - nums[i]);if (it != hashtable.end()) {return {it->second, i};}hashtable[nums[i]] = i;}return {};}
};
http://www.xdnf.cn/news/5206.html

相关文章:

  • SAN 对抗网络搜索,搜索—智能编程—仙盟创梦IDE
  • 手机银行怎么打印流水账单(已解决)
  • vue访问后端接口,实现用户注册
  • MySQL 中 count(*)、count(1) 和 count(字段名) 有什么区别?
  • 居然智家亮相全零售AI火花大会 AI大模型赋能家居新零售的进阶之路
  • springCloud/Alibaba常用中间件之Nacos服务注册与发现
  • 第7次课 栈A
  • 腾讯云低代码实战:零基础搭建家政维修平台
  • [特殊字符]Meilisearch:AI驱动的现代搜索引擎
  • 《全球短剧正版授权通道,助力平台出海与流量变现》
  • 互联网大厂Java面试实录:从基础到微服务的深度考察
  • 51单片机入门教程——AT24C02数据存储
  • QT Creator配置Kit
  • word换行符和段落标记
  • 【具身智能算法入门】VLM/VLA 算法入门指南
  • 基于FPGA的PID控制器verilog实现,包含simulink对比模型
  • Linux系统下安装mongodb
  • 【Python】装饰器在装什么
  • [ctfshow web入门] web70
  • 《深入理解Linux网络》笔记
  • MySQL的Order by与Group by优化详解!
  • [docker基础四]容器虚拟化基础之 LXC
  • Visual Studio Code 前端项目开发规范合集【推荐插件】
  • 单片机-STM32部分:10-1、485
  • 【AI提示词】漏斗思维优化专家
  • RocketMQ Kafka区别
  • upload-labs靶场通关详解:第四关
  • zdir3个人网盘dockerfile打包
  • 202534 | KafKa简介+应用场景+集群搭建+快速入门
  • 大模型微调终极方案:LoRA、QLoRA原理详解与LLaMA-Factory、Xtuner实战对比