加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

lleetcode 1 two sum c++

发布时间:2020-12-16 07:19:27 所属栏目:百科 来源:网络整理
导读:Problem describe:https://leetcode.com/problems/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,and you may n

Problem describe:https://leetcode.com/problems/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,and you may not use the?same?element twice.

Given nums = [2,7,11,15],target = 9,Because nums[0] + nums[1] = 2 + 7 = 9,return [0,1]

AC code :

1.Bruth Algorithm

 1 class Solution {
 2 public:
 3     vector<int> twoSum(vector<int>& nums,int target) {
 4         vector<int> res;
 5         for(int i = 0;i < nums.size();i++)
 6             for(int j = i + 1;j < nums.size();j++)
 7                 if(nums[i]+nums[j]==target)
 8                 {
 9                     res.push_back(i);
10                     res.push_back(j);
11                 }
12         return res;
13                     
14     }
15 };

2.Hashmap

 1 class Solution {
 2 public:
 3     vector<int> twoSum(vector<int>& nums,int target) {
 4         vector<int> res;
 5         unordered_map<int,int> map;
 6         for(int i = 0; i < nums.size();i++)
 7         {
 8             map[nums[i]] = i;
 9         }
10         for(int i = 0;i < nums.size();i++)
11         {
12             int left = target - nums[i];
13             if(map.count(left) && i <  map[left])
14             {
15                 res.push_back(i);
16                 res.push_back(map[left]);
17             }        
18         } 
19         return res;
20     }
21 };

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读