[leetcode]1.Two Sum
来源:互联网 发布:02年世界杯黑哨 知乎 编辑:程序博客网 时间:2024/06/05 17:47
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.
Example:
Given nums = [2, 7, 11, 15], target = 9,Because nums[0] + nums[1] = 2 + 7 = 9,return [0, 1].My code(哈希函数)
class Solution {
public: vector<int> twoSum(vector<int>& nums, int target) { vector<int> res(2, -1); unordered_map<int, int> hashmap; // key is the number, val is index for (int i = 0; i < nums.size(); ++i) { auto got = hashmap.find(target - nums[i]); if (got != hashmap.end()) { res[1] = i; res[0] = got->second; break; } hashmap[nums[i]] = i; } return res; }};
Attention:
1.采用一种哈希函数解决冲突的做法:在产生冲突的地方增加一个单链表。
2.笔者自己编写了哈希长度为10,根据余数求解的方式,没有C++自带的hash库的效率高。
Other solution:
<span style="font-family:SimSun;">int* twoSum3(int* nums,int numsSize,int target){int* arr;int i=0,j=1;arr = (int *)malloc(sizeof(int)*100);for(;j<=numsSize-1;j++){<span style="white-space:pre"></span>if(nums[i]+nums[j]==target) { arr[0]=i; arr[1]=j; break; } <span style="white-space:pre"></span>if(j==numsSize-1) { i++; j=i; }}<span style="font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; line-height: 1.42857143;">在讨论区看到的该代码,该code的作者说该代码beat 80%。</span>
- 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
- 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
- Codeforces 676 C Vasya and String【二分查找+预处理】
- 机器学习之分类决策树算法
- 使用 Apache JMeter 测试基于云的应用程序
- Pal5Q-MOD 使用说明
- 如何开启Apache2 Rewrite功能
- [leetcode]1.Two Sum
- Qt程式异常崩溃处理技巧(Win)
- iOS -- block的正确使用
- opencv 读取视频、打开摄像头、写入视频文件
- String,StringBuffer与StringBuilder的区别??
- 自动化测试与持续集成方案--Jmeter 测试接口及性能
- FastClick消除点击延时提高程序的运行效率
- 记录这次空指针的原因
- inode详解