博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode - 1. Two Sum
阅读量:6734 次
发布时间:2019-06-25

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

1. Two Sum 


Mean: 

给定一个数组nums和一个数target,求:id1和id2,id1和id2为数组nums两个不同的下标,使得nums[id1]+nums[id2]=target.

注意:nums中元素可重.

analyse:

如果nums中没有重复元素,那么可以用map做.

由于有重复元素,需要用multimap.

注意:使用map时,需要用count(key)来检测是否存在key值,否则会出现错误.

Time complexity: O(N*logN)

 

view code

 

/*** -----------------------------------------------------------------* Copyright (c) 2016 crazyacking.All rights reserved.* -----------------------------------------------------------------*       Author: crazyacking*       Date  : 2015-01-29-14.24*/#include 
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;typedef long long(LL);typedef unsigned long long(ULL);const double eps(1e-8);class Solution {public: vector
twoSum(vector
& nums, int target) { int cnt=0; vector
ans; multimap
mp; for(auto p:nums) mp.insert(make_pair(p,cnt++)); for(auto p:mp) { if(mp.count(target-p.first)>0) { multimap
::iterator it1,it2; if((p.first==target-p.first)&&(mp.count(p.first)==2)) { it1=mp.find(p.first); ans.push_back((*it1).second+1); mp.erase(it1); it2=mp.find(p.first); ans.push_back((*it2).second+1); break; } it1=mp.find(p.first); it2=mp.find(target-p.first); ans.push_back((*it1).second+1); ans.push_back((*it2).second+1); break; } } sort(ans.begin(),ans.end()); return ans; }};int main(){ int n; while(cin>>n) { vector
ve; for(int i=0,tmp;i
>tmp; ve.push_back(tmp); } int target; cin>>target; Solution a; vector
ans=a.twoSum(ve,target); for(auto p : ans) cout<

<

 

转载于:https://www.cnblogs.com/crazyacking/p/5021958.html

你可能感兴趣的文章
php 关于时区 date gmdate date_default_timezone_set/get 终极答疑
查看>>
dup和dup2函数
查看>>
Java中ArrayList和LinkedList区别及原理分析
查看>>
第十三周项目2-成绩处理
查看>>
Type Conversion
查看>>
GCD Block
查看>>
我的操作系统复习——进程(上)
查看>>
html 复制 有时不显示样式
查看>>
怎么写测试策略
查看>>
2018-2019-1 20165231 《信息安全系统设计基础》第四周学习总结
查看>>
jar包的一天
查看>>
python random模块
查看>>
发布使用了stage3D功能的Air for Android项目到手机上
查看>>
15. 利用ajax jquery 上传文件
查看>>
4.类与结构
查看>>
smartUpload上传文件组件
查看>>
Android系统移植与调试之------->build.prop文件详细赏析
查看>>
SOUI更新到2.0
查看>>
网站速度与性能优化要抓主要矛盾解决—瓶颈法
查看>>
条件编译
查看>>