博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
leetcode 1.TwoSum--hashmap
阅读量:2377 次
发布时间:2019-05-10

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

/*leetcode 001 TwoSum题目大意:从给定的一组数中找到两个数的和为target.返回两个数的序号,假设每次输入只有一组解解题思路:1、暴力搜索:对于每个数去找后面和它的和为target的数,如果找到了就返回我好像第一次提交用暴力搜索竟然过了。2、hash:先进行hash映射,
,对于每一个数,可以在O(1)的时间找到*/#include
#include
#include
#include
using namespace std;class Solution {public: //暴力搜索 vector
twoSum(vector
& nums, int target) { vector
index; for (size_t i = 0; i < nums.size(); ++i) { for (size_t j = i+1; j < nums.size(); ++j) { if ((nums[i] + nums[j]) == target) { index.push_back(i); index.push_back(j); return index; } } } } //hash vector
twoSum1(vector
& nums, int target) { unordered_map
mapping; //hash map vector
result; //result for (size_t i = 0; i < nums.size(); ++i) //O(n):进行hash { mapping[nums[i]] = i; } for (size_t i = 0; i < nums.size(); ++i) { const int gap = target - nums[i]; //找到这个数 if (mapping.find(gap) != mapping.end() && mapping[gap]!=i) //找到了,O(1) { result.push_back(i + 1); //index 1 result.push_back(mapping[gap] + 1); //index 2 break; } } return result; }};void test_twoSum(){ Solution sol; vector
index; vector
nums{ 4,71,15,3,9,17,13,25,1,33,0}; int target = 30; index = sol.twoSum(nums, target); //输出 for (auto i : index) { cout << i << " "; } cout << endl;}void test_twoSum1(){ Solution sol; vector
index; vector
nums{ 4,71,15,3,9,17,13,25,1,33,0 }; int target = 30; index = sol.twoSum1(nums, target); //输出 for (auto i : index) { cout << i << " "; } cout << endl;}int main(){ test_twoSum(); return 0;}

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

你可能感兴趣的文章
C++并发数据结构的内存回收
查看>>
转发与重定向
查看>>
隐式对象简介(转载)
查看>>
使用了request.setCharacterEncoding()方法却解决不了中文乱码原因(转载)
查看>>
读取Properties文件读取,路径,空格,中文问题
查看>>
转发与重定向的路径问题(转)
查看>>
Integer.parseInt(s) 和 Integer.valueOf(s)详细区别(转)
查看>>
Cookie 跨域访问转自(http://qingfeng825.javaeye.com/)
查看>>
深入Java核心 Java内存分配原理精讲(转)
查看>>
全面分析Java的垃圾回收机制(转)
查看>>
Struts 与 dojo 整合研究 (一)
查看>>
Servlet线程,工作原理及3.0新特性
查看>>
成为Java高手的25个学习目标
查看>>
IE6下使用JS获取路径中包含汉字的URL的一个问题(转载)
查看>>
为什么我们要对url进行encode (转载)
查看>>
浅析Android线程模型一 (转)
查看>>
mybatis的环境搭建
查看>>
C++中static的作用
查看>>
C++,C,java之间的区别
查看>>
Spring容器
查看>>