LeetCode#1.Two Sum
2016-07-13 19:22
295 查看
题目描述
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].
题目解析
有两种解法:1. 直接两层循环遍历;
2. 使用map,直接找另一个数对应的下标。
代码1
class Solution { public: vector<int> twoSum(vector<int>& nums, int target) { for(int i=0;i<nums.size()-1;++i) { for(int j=i+1;j<nums.size();++j) { if(nums[i]+nums[j]==target) { return {i,j}; } } } return {}; } };
代码2
class Solution { public: vector<int> twoSum(vector<int>& nums, int target) { map<int,int> map_nums; int diff; for(int i=0;i<nums.size();++i) { diff=target-nums[i]; if(map_nums.find(diff)!=map_nums.end()){ return {map_nums[diff],i}; } else{ map_nums[nums[i]]=i; } } return {}; } };
相关文章推荐
- Spring核心组件-IOC的介绍
- java网络爬虫与mysql数据库(一)
- 多级菜单
- 004——struts生成图片验证码
- 【不积跬步_无以至千里】 ccnu_2016_summer_week1(2)_贪心 - C
- 向类询问问题
- HTML5基础学习笔记(七)
- eclipse中properties文件编码问题
- 右键菜单
- 为下拉式菜单(DropDownList)添加第一个选项
- jdbc连接Postgresql出错
- 【NOIP2016A组模拟7.13】亚瑟王之宫
- 带滚动条的右键菜单
- JDK 1.7下载链接
- Emacs常用命令快速参考
- Java 浅析三大特性之一多态
- MPI Maelstrom poj 1502
- 取消事件冒泡
- 【COCI2008】猴子摘桃
- flume配置