LeetCode 1. Two Sum
Problem: 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].
该题最容易想到的暴力解法就是两层循环,逐对相加与target比较。其代价过大,代码为:
 class Solution {
 public:
     vector<int> twoSum(vector<int>& nums, int target) {
         vector<int> result;
         unordered_map<int,int> hash;
         for(int i = ; i < nums.size(); i++)
         {
             int num_to_find = target - nums[i];
             if(hash.find(num_to_find) != hash.end())
             {
                 result.push_back(hash[num_to_find]);
                 result.push_back(i);
                 return result;
             }
             else
             {
                 hash[nums[i]] = i;
             }
         }
         return result;
     }
 };
时间复杂度为O(n)的做法是只遍历一次vector,然后用hash表的find快速查找存储的数字。其代码如下:
 class Solution {
 public:
     vector<int> twoSum(vector<int>& nums, int target) {
         vector<int> result;
         unordered_map<int,int> hash;
         for(int i = ; i < nums.size(); i++)
         {
             int num_to_find = target - nums[i];
             if(hash.find(num_to_find) != hash.end())
             {
                 result.push_back(hash[num_to_find]);
                 result.push_back(i);
                 return result;
             }
             else
             {
                 hash[nums[i]] = i;
             }
         }
         return result;
     }
 };
已遇到多题巧用hash table(unordered_map)简化算法的方法,注意hash table的使用!
LeetCode 1. Two Sum的更多相关文章
- Java for LeetCode 216 Combination Sum III
		
Find all possible combinations of k numbers that add up to a number n, given that only numbers from ...
 - LeetCode 1 Two Sum 解题报告
		
LeetCode 1 Two Sum 解题报告 偶然间听见leetcode这个平台,这里面题量也不是很多200多题,打算平时有空在研究生期间就刷完,跟跟多的练习算法的人进行交流思想,一定的ACM算法积 ...
 - [leetCode][013] Two Sum 2
		
题目: Given an array of integers that is already sorted in ascending order, find two numbers such that ...
 - [LeetCode] #167# Two Sum II : 数组/二分查找/双指针
		
一. 题目 1. Two Sum II Given an array of integers that is already sorted in ascending order, find two n ...
 - [LeetCode] #1# Two Sum : 数组/哈希表/二分查找/双指针
		
一. 题目 1. Two SumTotal Accepted: 241484 Total Submissions: 1005339 Difficulty: Easy Given an array of ...
 - [array] leetcode - 40. Combination Sum II - Medium
		
leetcode - 40. Combination Sum II - Medium descrition Given a collection of candidate numbers (C) an ...
 - [array] leetcode - 39. Combination Sum - Medium
		
leetcode - 39. Combination Sum - Medium descrition Given a set of candidate numbers (C) (without dup ...
 - LeetCode one Two Sum
		
LeetCode one Two Sum (JAVA) 简介:给定一个数组和目标值,寻找数组中符合求和条件的两个数. 问题详解: 给定一个数据类型为int的数组,一个数据类型为int的目标值targe ...
 - [leetcode]40. Combination Sum II组合之和之二
		
Given a collection of candidate numbers (candidates) and a target number (target), find all unique c ...
 - [LeetCode] 437. Path Sum III_ Easy tag: DFS
		
You are given a binary tree in which each node contains an integer value. Find the number of paths t ...
 
随机推荐
- Android常用组件之ListView
			
使用ListAdapter是ListView的适配器. 使用ListView.setAdapter()方法来设置ListView的适配器. 简单的使用 adapter = new ArrayAdapt ...
 - 用Python生成测试数据
			
转载自:http://blog.csdn.net/caz28/article/details/45972109 有时我们需要大量的数据,一般编个程序生成一堆随机数据,Python很适合文本处理,干这个 ...
 - xml读取节点
			
<?xml version="1.0" encoding="utf-8"?> <tplcd type=" product=" ...
 - hosts 屏蔽百度
			
127.0.0.1 localhost cpro.baidu.com vie.baidu.com cpro.baidu.com ubmcmm.baidustatic.com uumcmm.ba ...
 - ".NET Compact Framework v2.0 could not be found."
			
参考: http://blog.csdn.net/godcyx/article/details/7348431 问题原因: That's a known issue where VS can't di ...
 - python 使用pymssql连接sql server数据库
			
python 使用pymssql连接sql server数据库 #coding=utf-8 #!/usr/bin/env python#------------------------------ ...
 - Angular2 Http
			
1. 使用Http 绝大部分应用程序都会和后台服务打交道,Http是浏览器和服务器之间通讯的主要协议,通过Http调用来访问远程服务器上相应的 Web API. HttpModule 并不是 Angu ...
 - java 简单使用redis
			
1.配置文件 <bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig" ...
 - Android Studio accelerator key(shortcut)& Basic knowledge
			
shift + F6 重构(选文件,ok->下面的控制台,do refactor option + return 快速修复 Activity@Extra() Intent: @FragmentA ...
 - DataTable导出到Excel
			
简单的导出到Excel中: 代码如下: using System; using System.Collections.Generic; using System.Data; using System. ...