博客
关于我
1.两数之和(c++ 数组)
阅读量:284 次
发布时间:2019-03-03

本文共 782 字,大约阅读时间需要 2 分钟。

1 问题

给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。

你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素.

2 解决

使用查找表来解决。因为题中说明:你可以假设每种输入只会对应一个答案。

设置一个 map 容器nums_Map,nums_Map存储的数据类型为<int,int>,第一个元素是nums数组中的值,第二个元素是该值在数组中的下标。如上图示例中 nums_Map.insert( make_pair(2,1) );即向容器中插入第一个元素2,2在数组中的下标为1。

首先遍历数组 nums。每次遍历时查找  target-nums[i]的值是否在nums_Map中,如果在,那么就找到了答案,返回两者的下标。如果未找到,则向nums_Map插入该元素与下标 i。

class Solution {public:    vector
twoSum(vector
& nums, int target) { map
numsMap;//存储nums中元素及下标的容器 vector
ret_V;//返回的答案 map
::iterator it; int size = nums.size(); for(int i=0;i
second);//第一元素下标 ret_V.push_back(i);//该元素下标 break;//跳出 } } return ret_V;//返回答案 }};

 

转载地址:http://tiql.baihongyu.com/

你可能感兴趣的文章
eclipse中server location灰色解决
查看>>
idea 写web项目图片不显示
查看>>
实用网站推荐
查看>>
idea中写mybatis报错
查看>>
RestFul 风格
查看>>
CSS浮动属性
查看>>
HTML+CSS基础
查看>>
SVM多类识别
查看>>
Failed to load OpenCL runtime解决
查看>>
svn 撤销已提交的错误修改
查看>>
算法工程师数学理论提高札记(improving)
查看>>
Failed to recurse into submodule path 'third_party/onnx'
查看>>
CLRS 22.3-2,7 邻接表实现
查看>>
仿微信--主要版本说明
查看>>
Android存储
查看>>
Retrofit学习
查看>>
Android卡顿优化--界面秒开
查看>>
Android网络优化--工具
查看>>
Android网络优化--精准获取流量消耗
查看>>
Android进程的启动流程
查看>>