LeetCode twosum C++ map实现
来源:互联网 发布:淘宝卖衣服怎么进货 编辑:程序博客网 时间:2024/04/28 20:17
class Solution {public: vector<int> twoSum(vector<int>& nums, int target) { map<int,int> my_Map; vector<int> result; for(int i = 0 ; i < nums.size() ; i++) {
//保证每次插入的元素是在my_Map里是唯一的 if(!my_Map.count(nums[i])) { my_Map.insert(pair<int, int>(nums[i],i)); } if(my_Map.count(target-nums[i])) { int n = my_Map[target-nums[i]];
//为什么加上n<i,考虑这样一种情况nums=[3,3],target=6,i=0的时候my_Map.count(target-nums[i])=1,条件为真,所以n=my_Map[target_nums[i]]=0,而题目中要求一个数不能用两次,所以必须在最后一个数之前的位置寻找。 if(n < i) { result.push_back(i); result.push_back(n); return result; } } } }};
对于C++ map,红黑树实现低层,比平衡树操作简单,一层红的一层黑的。时间复杂度O(logn)据说hash_map会更快O(n)。
注意:
1.不同的对象的指针不能比较。
2.map的find找到的是第一个所指明的键值的位置。
3.count是统计某一个键值的个数的。
0 0
- C实现 LeetCode-> TwoSum
- LeetCode twosum C++ map实现
- 【leetcode c++】twoSum
- [C++]LeetCode #1 twoSum
- LeetCode twosum C
- LeetCode 算法实现:TwoSum
- LeetCode(二)关于TwoSum的实现
- leetcode-01 twoSum php实现
- [leetcode]-twoSum
- [leetcode]twoSum
- LeetCode-TwoSum
- 【Leetcode】TwoSum
- LeetCode - TwoSum
- leetcode :twoSum
- leetcode TwoSum
- leetcode twosum
- leetcode--twoSum
- LeetCode twoSum
- 程序设计:1035:拼写检查——百炼oj
- [FZU] 1062 洗牌问题
- spark报错汇总
- 智能一代云平台(十七):Keepalived+Nginx实现高可用,反向代理---Keepalived安装及相关配置
- wordpress自定义打赏
- LeetCode twosum C++ map实现
- java formant(保留小数点小数位)
- AUTOSAR RTE以及SWC概述
- 矩阵链乘法求两矩阵相乘所需的最小次数(算法3.6&3.7)
- python服务器环境搭建(1)——本地服务器准备
- 连续因子
- 【面试题9】斐波那契数列
- Q99文件转换成其他格式
- 问题 A: 判断三角形