我是靠谱客的博主 单薄微笑,这篇文章主要介绍LeetCode-1,现在分享给大家,希望可以做个参考。

  1. 两数之和
    给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 的那 两个 整数,并返回它们的数组下标。
    你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。
    你可以按任意顺序返回答案。

我的题解:
两层循环遍历寻找对应答案,找到之后返回

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

题解中hash做法:

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class Solution { public: vector<int> twoSum(vector<int>& nums, int target) { map<int,int> a;//建立hash表存放数组元素 vector<int> b(2,-1);//存放结果。b中初始值为两个-1 for(int i=0;i<nums.size();i++) a.insert(map<int,int>::value_type(nums[i],i)); for(int i=0;i<nums.size();i++) { if(a.count(target-nums[i])>0&&(a[target-nums[i]]!=i)) //判断是否找到目标元素且目标元素不能是本身 { b[0]=i; b[1]=a[target-nums[i]]; break; } } return b; }; };

在这里插入图片描述

最后

以上就是单薄微笑最近收集整理的关于LeetCode-1的全部内容,更多相关LeetCode-1内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(402)

评论列表共有 0 条评论

立即
投稿
返回
顶部