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

1. 两数之和【简单】

题目

给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。

你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。

你可以按任意顺序返回答案。

示例 1:
输入:nums = [2,7,11,15], target = 9
输出:[0,1]
解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。

示例 2:
输入:nums = [3,2,4], target = 6
输出:[1,2]

示例 3:
输入:nums = [3,3], target = 6
输出:[0,1]

提示:

  • 2 <= nums.length <= 104
  • -109 <= nums[i] <= 109
  • -109 <= target <= 109
  • 只会存在一个有效答案

解码

自己写的

class Solution {
public:vector<int> twoSum(vector<int>& nums, int target) {map<int,int> m ;int half[2]={-1,-1};map<int,int>::iterator iter;for(int i=0;i<nums.size();i++){if(nums[i] *2 == target){//考虑两数相同的情况if(half[0] == -1){half[0]=i;}else{return {half[0], i};}}m[nums[i]]=i;}for(iter = m.begin();iter!=m.end();iter++){if(m.find(target - iter->first) != m.end()){return {iter->second,m.find(target - iter->first)->second};}        }return {-1,-1};}
};

题解

class Solution {
public:vector<int> twoSum(vector<int>& nums, int target) {unordered_map<int,int> m ;for(int i=0; i<nums.size(); i++){auto it = m.find(target-nums[i]);if(it != m.end()){return {it->second, i};}m.insert({nums[i],i});}return {};}
};

笔记

  1. 自己写的是真丑陋啊,官方题解简洁优雅;
  2. 没有必要先存再遍历搜,一边存一边搜就能完成,没考虑到。
  3. 返回vector可以直接使用大括号传递值return {-1, 2}
  4. 默认返回应该为空数组。
  5. 自己写的那种,没考虑到两数相同的情况,所以在前面for循环中打了个补丁,因而才看起来这么怪。
http://www.lryc.cn/news/68469.html

相关文章:

  • 《编码——隐匿在计算机软硬件背后的语言》精炼——第17章(自动操作)
  • 用Colab免费部署AI绘画云平台Stable Diffusion webUI
  • R.I.P,又一位程序员巨佬——左耳朵耗子陨落
  • 捷威信keithley吉时利2410数字源表 销售回收KEITHLEY2470新款源表
  • 第二十九回:如何给ListView添加分隔线
  • 用友 LRP计划维护视图
  • 数组--part 5--螺旋矩阵(力扣59/54)(剑指offer 29)
  • 加密解密软件VMProtect入门使用教程(九)许可制度之许可系统功能
  • MySQL基础-事务详解
  • python 读写csv文件方法
  • 命令行更新Windows
  • lwIP 多线程注意事项
  • 工业革命的本质是动力革命:人类使用能量的水平得到了飞跃(蒸汽动力取代畜力和水力,机械代替人工。)【工业革命的诞生是能量富余的结果】
  • 【Kubernetes】Windows安装kubectl
  • 菜鸟健身-新手使用哑铃锻炼手臂的动作与注意事项
  • 二、LLC 谐振变换器
  • JWT 入门
  • 理解HttpSession
  • SolVES 模型生态系统服务功能社会价值评估(基于多源环境QGIS、PostgreSQL、ArcGIS、Maxent、R语言)
  • 雷鸟Air Plus体验:视觉大幅升级,影视/办公/游戏全能胜任
  • 【Android笔记101】Android之实现搜索界面(搜索弹出框)
  • 架构中如何消除语义的分歧?
  • 「免费版Axure」原型设计工具!
  • OPNET Modeler 例程——ALOHA和CSMA的性能对比
  • kali整体版本更新方法,为啥更新?
  • 微服务之服务容错
  • js 计算日期加减、某某天后的日期、星期几、几月、闰年
  • Vue3迎来升级,助力企业数字化转型
  • Java面试知识点(全)- Java并发- Java并发基础一
  • 淘宝商品详情数据采集,支持高并发请求