Array -- Leetcode problem1. Two Sum
来源:互联网 发布:java遍历list删除元素 编辑:程序博客网 时间:2024/05/01 09:28
- 描述: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, and you may not use the same element twice.
Example:
Given nums = [2, 7, 11, 15], target = 9,
Because nums[0] + nums[1] = 2 + 7 = 9,
return [0, 1].
- 分析:作为leetcode编号为1的题,当然要做一下-_-题目本身非常简单,求出和为target的值的下标。
- 思路一:用multimap解决。先将数组中的值存入multimap中,然后通过使用迭代器来寻找可以凑成target的两个数,存入vector输出。(9ms)
class Solution {public: vector<int> twoSum(vector<int>& nums, int target) { vector<int> my_vec; multimap<int, int> my_map; multimap<int , int>::iterator iter; multimap<int , int>::iterator iter1; for (int i = 0; i < nums.size(); i++) { my_map.insert(pair<int, int>(nums[i], i)); } for (iter = my_map.begin(); iter != my_map.end(); iter++) { iter1 = my_map.find(target - (iter -> first)); if (iter1 != my_map.end() && iter1 != iter) { my_vec.push_back(iter1 -> second); my_vec.push_back(iter -> second); my_map.erase(iter -> first); my_map.erase((target - (iter -> first))); break; } } return my_vec; }};
思路二:使用unordered_map求解,思路和multimap差不多,只是设计更为简介,这种做法不需要存储全部数字,只是在求解的过程中如果找到符合条件的数字就直接进行输出,节省时间和空间。(6ms)
class Solution {public: vector<int> twoSum(vector<int>& nums, int target) { vector<int> my_vec; unordered_map<int, int> my_map; for (int i = 0; i < nums.size(); i++) { int need_num = target - nums[i]; if (my_map.find(need_num) != my_map.end()) { my_vec.push_back(my_map[need_num]); my_vec.push_back(i); break; } my_map[nums[i]] = i; } return my_vec; }};
阅读全文
0 0
- Array -- Leetcode problem1. Two Sum
- leetcode Problem1 two sum
- Leetcode - Pointers/Array - Two sum
- 1.Two Sum leetcode(array)
- LeetCode-Array-1. Two Sum
- LeetCode刷题【Array】 Two Sum
- leetcode.array--1. Two Sum
- LeetCode(Array)---------Two Sum
- LeetCode刷题【Array】 Two Sum II
- [Week 2] [Leetcode][Array] Two Sum
- [Array]Two Sum
- array-Two Sum
- leetcode 167: Two Sum II - Input array is sorted
- Leetcode NO.167 Two Sum II - Input array is sorted
- LeetCode-Two Sum II - Input array is sorted
- [Leetcode]Two Sum II - Input array is sorted
- leetcode--Two Sum II - Input array is sorted
- LeetCode 题解(274) : Two Sum II - Input array is sorted
- 通过Scanner从控制台获取数据
- Java数组
- 面向对象编程(封装、继承、多态)
- mysql 生成UUID 存储过程的基本概念
- Python pygame 接球的小游戏
- Array -- Leetcode problem1. Two Sum
- 《机器学习实战》第十五章 MapReduce
- 1759:最长上升子序列(记忆化递推)
- 交叉编译时主机使用目标机的库文件的一种方法mount
- 接口文档
- 1.线性回归的推导--梯度下降法
- Windows10 15063文件名第二行不居中
- LinuxStudyNote(13)-Linux常用命令(2)-文件处理命令(8)rm文件删除命令
- 十分钟搞定pandas