LeetCode 1.Two Sum ------------LeetCode 第一题
2016-07-15 17:06
309 查看
<span style="line-height: 30px; color: rgb(51, 51, 51); font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; background-color: rgb(255, 255, 255);">LeetCode 1.Two Sum</span>
<span style="line-height: 30px; color: rgb(51, 51, 51); font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; background-color: rgb(255, 255, 255);">Given an array of integers, return </span><span style="line-height: 30px; color: rgb(51, 51, 51); font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; font-weight: 700; background-color: rgb(255, 255, 255);">indices</span><span style="line-height: 30px; color: rgb(51, 51, 51); font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 14px; background-color: rgb(255, 255, 255);"> of the two numbers such that they add up to a specific target.</span>
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. 用map
<span style="font-size:14px;">class Solution { public: vector<int> twoSum(vector<int>& nums, int target) { map<int, int > mp; for(int i = 0; i < nums.size(); i++){ if(mp.count(nums[i]) == 0){ mp[target-nums[i]] = i; } else{ return {mp[nums[i]], i}; } } return {0,0}; } };</span>
Runtime: 24
ms
解法2. 用数组
<span style="font-size:14px;">class Solution { public: vector<int> twoSum(vector<int>& nums, int target) { int max= nums[0]; int min = max; for(int i = 0; i < nums.size(); i++){ if(max < nums[i]) max = nums[i]; if(min > nums[i]) min = nums[i]; } int f[max-min+1]; fill(f,f+max-min+1,-1); int offset = -min; for(int i = 0; i < nums.size(); i++){ if(f[nums[i] + offset] == -1){ if(target-nums[i] <= max && target-nums[i] >= min){ f[target-nums[i]+ offset] = i; } } else{ return {f[nums[i] + offset], i}; } } return {0,0}; } };</span>
Runtime: 8ms
相关文章推荐
- Android Native 绘图方法
- android Google Map获取地理位置信息的方法
- Spark RDD API详解(一) Map和Reduce
- Python中map()函数浅析
- Android使用Google Map浅谈
- 新注册
- On Error Resume Next 语句
- 简单对比分析Ruby on Rails 和 Laravel
- 四大漏洞入侵博客
- C#中struct和class的区别详解
- VBS ArrayList Class vbs中的数组类
- VBScript中On Error语句用法小结
- 大家看了就明白了css样式中类class与标识id选择符的区别小结
- 解析sql语句中left_join、inner_join中的on与where的区别
- INSERT INTO .. ON DUPLICATE KEY更新多行记录
- 在Ubuntu系统上安装Ghost博客平台的教程
- Erlang中的映射组Map详细介绍
- c++中map的基本用法和嵌套用法实例分析
- win7安装ruby on rails开发环境
- 深入了解PHP类Class的概念