NC61两数之和(哈希法)
NC61两数之和(哈希法)
- 1、题目描述:
- 2、题目链接:
https://www.nowcoder.com/practice/20ef0972485e41019e39543e8e895b7f?tpId=117&&tqId=34983&rp=1&ru=/ta/job-code-high&qru=/ta/job-code-high/question-ranking
-3、 设计思想:
详细操作流程看下图:
-5、代码:
c++版本:
class Solution {
public:
/**
*
* @param numbers int整型vector
* @param target int整型
* @return int整型vector
*/
vector<int> twoSum(vector<int>& numbers, int target) {
vector<int>res;//保存结果
map<int,int>mp;//定义一个哈希表存储numbers[i]和对应的下标
for (int i = 0; i < numbers.size(); i ++) {//进行标记
mp[numbers[i]] = i;
}
for (int i = 0; i < numbers.size(); i++) {
//每遍历一个numbers[i]就去对应的mp里找有没有target - numbers[i]
//如果有就返回结果
//如果没有就找下一个
if(mp.find(target - numbers[i]) != mp.end() && i != mp[target - numbers[i]]){
res.push_back(i + 1);
res.push_back(mp[target - numbers[i]] + 1);
return res;
}
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
Java岗位面试真题宝典 文章被收录于专栏
本面试宝典均来自校招面试题目大数据进行的整理

查看1道真题和解析