博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
leetcode twosum
阅读量:4108 次
发布时间:2019-05-25

本文共 1150 字,大约阅读时间需要 3 分钟。

虽说已经刷了很多题了,但是不能坚持每天都刷,时间一长,之前刷的都忘了,最近复习还是总结一下吧,先上一道很水的题。

1. Two Sum

Difficulty: Easy

Given an array of integers, return indices of the two numbers such that they add up to a specific target.

You may assume that each input would have exactly one solution.

Example:

Given nums = [2, 7, 11, 15], target = 9,

Because nums[0] + nums[1] = 2 + 7 = 9,

return [0, 1].

首先要读懂题意,这个题的意思是给一串未排序的数,然后给一个目标数字,找到两个合为目标数字的两个数并返回那两个数的下标。题是在一定存在而且仅仅存在一对满足条件,大大降低难度,就不用我们设置很多边界条件了。先上代码

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

因为要返回的是下标,所以用map来存放已经检查过的数字,从开头一个个判断,比如:判断nums[i],在map里找target-nums[i],如果找到,能返回那个数的小标和i。否则,把nums[i]加入到map,继续判断。

系不系很水啊,可是第一次做的时候还是没有一次想出来。

转载地址:http://rctsi.baihongyu.com/

你可能感兴趣的文章
要想成为牛人,推荐学习哪种编程语言?
查看>>
为什么不推荐C++?
查看>>
C 语言面向对象的封装方式
查看>>
C 语言面向对象的封装方式
查看>>
C 语言面向对象的封装方式(示例)
查看>>
C 语言数据结构的封装方法
查看>>
用C语言实现interface
查看>>
双向链表,还能这么实现
查看>>
内嵌双向链表的设计与实现
查看>>
为什么聪明的程序员会写出糟糕的代码
查看>>
软件工程,其实没有任何工程而言
查看>>
selenium学习笔记第一篇之case1
查看>>
Date函数中一些方法的返回值
查看>>
Bugzilla缺陷跟踪软件的使用
查看>>
python初次接触----安装篇
查看>>
python中Iterable类型调用时包导入时from collections import Iterable执行报错问题解惑
查看>>
App测试方法总结
查看>>
python的pip安装
查看>>
Windows和Linux IO模型简单介绍
查看>>
IOCP 简单的完成端口读写文件
查看>>