leetcode-1-two sum
来源:互联网 发布:阿里云系统盘多大合适 编辑:程序博客网 时间:2024/06/06 03:03
#include <iostream>#include <vector>#include <unordered_map>using namespace std;/* 用暴力搜索就要O(n)或者至少是O(nlgn),似乎会超时。 如果用hash的话就能保证O(n),注意要保存元素的下标, 所以用unordered_map,还要注意两个下标要按从小到大 的顺序。 因为结果只可能有一对下标,所以相同的数字最多有两个, 由于存入unordered_map的时候相同数字的下标会覆盖, 所以比较下标的时候保险就是一个用nums的下标,一个用查找 unordered_map返回的下标。 */class Solution {public: vector<int> twoSum(vector<int>& nums, int target) { unordered_map<int, int> mymap; vector<int> inds; for (int i = 0; i < nums.size(); i++) { mymap.insert(make_pair(nums[i], i)); } for (int i = 0; i < nums.size(); i++) { int gap = target - nums[i]; if (mymap.find(gap) != mymap.end()) { if (i > mymap[gap]) { inds.push_back(mymap[gap]); inds.push_back(i); break; } else if (i < mymap[gap]){ //一定是两个不同的下标 inds.push_back(i); inds.push_back(mymap[gap]); break; } } } return inds; }};int main(int argc, const char * argv[]) { Solution s; vector<int> n = {0,4,3,0}; vector<int> result = s.twoSum(n, 0); for (int i = 0; i < result.size(); i++) { cout << result[i] << " "; } cout << endl; return 0;}
更改(去重)
class Solution {public: vector<int> twoSum(vector<int>& nums, int target) { unordered_map<int, int> mymap; vector<int> inds; for (int i = 0; i < nums.size(); i++) { mymap.insert(make_pair(nums[i], i)); } for (int i = 0; i < nums.size(); i++) { int gap = target - nums[i]; if (mymap.find(gap) != mymap.end()) { if (i > mymap[gap]) { inds.push_back(mymap[gap]); inds.push_back(i); break; } } } return inds; }};
0 0
- LeetCode 1 - Two Sum
- leetcode 1 Two Sum
- Leetcode【1】:Two Sum
- [leetcode 1] Two Sum
- 【leetcode-1】Two Sum
- [leetcode 1] Two Sum
- [Leetcode] 1 - Two Sum
- LeetCode (1) Two Sum
- LeetCode 1:《Two Sum》
- LeetCode | #1 Two Sum
- leetcode-1 Two Sum
- Two Sum | LeetCode(1)
- [Leetcode]1Two Sum
- leetcode 1 Two Sum
- leetcode #1 Two Sum
- leetcode 1:Two Sum
- LeetCode 1 Two Sum
- leetcode #1 two sum
- mongodb 3.2 实战(一)非关系型数据库设计,如何进行mongo的数据库设计?
- java并发编程——四 互斥机制(锁) 原理及对比
- EasyDarwin开发出类似于美拍、秒拍的短视频拍摄SDK:EasyVideoRecorder
- Connector of Dynamics CRM and AX: Leads, Opportunity, and Sales quotations
- 如何在maven的pom.xml中添加本地jar包
- leetcode-1-two sum
- canvas小知识
- Ngnix配置问题,图片的security.limit_extensions问题
- Java对存储过程的调用方法
- debian8.3安装为知笔记的两种方式,ppa源和编译安装,
- Android监听屏幕屏幕锁屏与解锁
- RecyclerView使用资源文件作为分割线divider
- zstu 2553 滑雪
- Ubuntu 下 VPN 自动连接