首页 > 代码库 > [LeetCode #1] Two Sum
[LeetCode #1] Two Sum
1. Two Sum
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].
解法一: brute force
/** * Note: The returned array must be malloced, assume caller calls free(). */int* twoSum(int* nums, int numsSize, int target) { int *ret = NULL; for (int i = 0; i < numsSize; i++){ for (int j = i + 1; j < numsSize; j++){ if ((nums[i] + nums[j] == target)){ ret = (int *) malloc(2 * sizeof(int)); ret[0] = i; ret[1] = j; break; } } } return ret;}
解法二: hash table
class Solution {public: vector<int> twoSum(vector<int>& nums, int target) { unordered_map<int, int> map; vector<int> ret; for (int i = 0; i < nums.size(); i++){ int complement = target - nums[i]; if (map.count(complement)){ ret.push_back(map[complement]); ret.push_back(i); break; } map[nums[i]] = i; } return ret; }};
[LeetCode #1] Two Sum
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。