|
|
<!DOCTYPE html>
|
|
|
<html lang="zh-Hans">
|
|
|
<head>
|
|
|
<meta charset="UTF-8">
|
|
|
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=2">
|
|
|
<meta name="theme-color" content="#222">
|
|
|
<meta name="generator" content="Hexo 4.2.0">
|
|
|
<link rel="apple-touch-icon" sizes="180x180" href="/images/apple-touch-icon-next.png">
|
|
|
<link rel="icon" type="image/png" sizes="32x32" href="/images/favicon-32x32-next.png">
|
|
|
<link rel="icon" type="image/png" sizes="16x16" href="/images/favicon-16x16-next.png">
|
|
|
<link rel="mask-icon" href="/images/logo.svg" color="#222">
|
|
|
<meta name="google-site-verification" content="2X6S9P7CAjXjVvw8YyQR8pCu-B0oEu7O9quLgxXuWyA">
|
|
|
<meta name="baidu-site-verification" content="dV8JGNzi0c">
|
|
|
<meta name="chinaz-site-verification" content="500A176AA29CFB31">
|
|
|
|
|
|
<script data-ad-client="ca-pub-7480618470784058" async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
|
|
|
|
|
|
<link rel="stylesheet" href="/css/main.css">
|
|
|
|
|
|
<link rel="stylesheet" href="//fonts.loli.net/css?family=Lato:300,300italic,400,400italic,700,700italic|M+ 2p:300,300italic,400,400italic,700,700italic&display=swap&subset=latin,latin-ext">
|
|
|
<link rel="stylesheet" href="/lib/font-awesome/css/font-awesome.min.css">
|
|
|
<link rel="stylesheet" href="//cdn.jsdelivr.net/gh/fancyapps/fancybox@3/dist/jquery.fancybox.min.css">
|
|
|
<link rel="stylesheet" href="/lib/pace/pace-theme-minimal.min.css">
|
|
|
<script src="/lib/pace/pace.min.js"></script>
|
|
|
|
|
|
|
|
|
<script id="hexo-configurations">
|
|
|
var NexT = window.NexT || {};
|
|
|
var CONFIG = {
|
|
|
hostname: new URL('https://nicksxs.me').hostname,
|
|
|
root: '/',
|
|
|
scheme: 'Pisces',
|
|
|
version: '7.7.0',
|
|
|
exturl: false,
|
|
|
sidebar: {"position":"left","display":"post","padding":18,"offset":12,"onmobile":false},
|
|
|
copycode: {"enable":true,"show_result":false,"style":null},
|
|
|
back2top: {"enable":true,"sidebar":false,"scrollpercent":false},
|
|
|
bookmark: {"enable":false,"color":"#222","save":"auto"},
|
|
|
fancybox: true,
|
|
|
mediumzoom: false,
|
|
|
lazyload: true,
|
|
|
pangu: false,
|
|
|
comments: {"style":"tabs","active":null,"storage":true,"lazyload":false,"nav":null},
|
|
|
algolia: {
|
|
|
appID: '',
|
|
|
apiKey: '',
|
|
|
indexName: '',
|
|
|
hits: {"per_page":10},
|
|
|
labels: {"input_placeholder":"Search for Posts","hits_empty":"We didn't find any results for the search: ${query}","hits_stats":"${hits} results found in ${time} ms"}
|
|
|
},
|
|
|
localsearch: {"enable":false,"trigger":"auto","top_n_per_article":1,"unescape":false,"preload":false},
|
|
|
path: '',
|
|
|
motion: {"enable":true,"async":false,"transition":{"post_block":"fadeIn","post_header":"slideDownIn","post_body":"slideDownIn","coll_header":"slideLeftIn","sidebar":"slideUpIn"}}
|
|
|
};
|
|
|
</script>
|
|
|
|
|
|
<meta name="description" content="problemGiven an array of integers, find two numbers such that they add up to a specific target number. The function twoSum should return indices of the two numbers such that they add up to the target,">
|
|
|
<meta property="og:type" content="article">
|
|
|
<meta property="og:title" content="two sum">
|
|
|
<meta property="og:url" content="https://nicksxs.me/2015/01/14/Two-Sum/index.html">
|
|
|
<meta property="og:site_name" content="Nicksxs's Blog">
|
|
|
<meta property="og:description" content="problemGiven an array of integers, find two numbers such that they add up to a specific target number. The function twoSum should return indices of the two numbers such that they add up to the target,">
|
|
|
<meta property="article:published_time" content="2015-01-14T07:39:31.000Z">
|
|
|
<meta property="article:modified_time" content="2020-01-12T13:08:27.015Z">
|
|
|
<meta property="article:author" content="Nicksxs">
|
|
|
<meta property="article:tag" content="leetcode">
|
|
|
<meta property="article:tag" content="c++">
|
|
|
<meta name="twitter:card" content="summary">
|
|
|
|
|
|
<link rel="canonical" href="https://nicksxs.me/2015/01/14/Two-Sum/">
|
|
|
|
|
|
|
|
|
<script id="page-configurations">
|
|
|
// https://hexo.io/docs/variables.html
|
|
|
CONFIG.page = {
|
|
|
sidebar: "",
|
|
|
isHome: false,
|
|
|
isPost: true
|
|
|
};
|
|
|
</script>
|
|
|
|
|
|
<title>two sum | Nicksxs's Blog</title>
|
|
|
|
|
|
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-61358619-1"></script>
|
|
|
<script>
|
|
|
if (CONFIG.hostname === location.hostname) {
|
|
|
window.dataLayer = window.dataLayer || [];
|
|
|
function gtag(){dataLayer.push(arguments);}
|
|
|
gtag('js', new Date());
|
|
|
gtag('config', 'UA-61358619-1');
|
|
|
}
|
|
|
</script>
|
|
|
|
|
|
|
|
|
<script>
|
|
|
var _hmt = _hmt || [];
|
|
|
(function() {
|
|
|
var hm = document.createElement("script");
|
|
|
hm.src = "https://hm.baidu.com/hm.js?20f33b3c0c0eff9b1522999c0015646d";
|
|
|
var s = document.getElementsByTagName("script")[0];
|
|
|
s.parentNode.insertBefore(hm, s);
|
|
|
})();
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<noscript>
|
|
|
<style>
|
|
|
.use-motion .brand,
|
|
|
.use-motion .menu-item,
|
|
|
.sidebar-inner,
|
|
|
.use-motion .post-block,
|
|
|
.use-motion .pagination,
|
|
|
.use-motion .comments,
|
|
|
.use-motion .post-header,
|
|
|
.use-motion .post-body,
|
|
|
.use-motion .collection-header { opacity: initial; }
|
|
|
|
|
|
.use-motion .site-title,
|
|
|
.use-motion .site-subtitle {
|
|
|
opacity: initial;
|
|
|
top: initial;
|
|
|
}
|
|
|
|
|
|
.use-motion .logo-line-before i { left: initial; }
|
|
|
.use-motion .logo-line-after i { right: initial; }
|
|
|
</style>
|
|
|
</noscript>
|
|
|
|
|
|
<link rel="alternate" href="/atom.xml" title="Nicksxs's Blog" type="application/atom+xml">
|
|
|
</head>
|
|
|
|
|
|
<body itemscope itemtype="http://schema.org/WebPage">
|
|
|
<div class="container use-motion">
|
|
|
<div class="headband"></div>
|
|
|
|
|
|
<header class="header" itemscope itemtype="http://schema.org/WPHeader">
|
|
|
<div class="header-inner"><div class="site-brand-container">
|
|
|
<div class="site-meta">
|
|
|
|
|
|
<div>
|
|
|
<a href="/" class="brand" rel="start">
|
|
|
<span class="logo-line-before"><i></i></span>
|
|
|
<span class="site-title">Nicksxs's Blog</span>
|
|
|
<span class="logo-line-after"><i></i></span>
|
|
|
</a>
|
|
|
</div>
|
|
|
<p class="site-subtitle">What hurts more, the pain of hard work or the pain of regret?</p>
|
|
|
</div>
|
|
|
|
|
|
<div class="site-nav-toggle">
|
|
|
<div class="toggle" aria-label="Toggle navigation bar">
|
|
|
<span class="toggle-line toggle-line-first"></span>
|
|
|
<span class="toggle-line toggle-line-middle"></span>
|
|
|
<span class="toggle-line toggle-line-last"></span>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
|
|
|
|
|
|
<nav class="site-nav">
|
|
|
|
|
|
<ul id="menu" class="menu">
|
|
|
<li class="menu-item menu-item-home">
|
|
|
|
|
|
<a href="/" rel="section"><i class="fa fa-fw fa-home"></i>Home</a>
|
|
|
|
|
|
</li>
|
|
|
<li class="menu-item menu-item-about">
|
|
|
|
|
|
<a href="/about/" rel="section"><i class="fa fa-fw fa-about"></i>About</a>
|
|
|
|
|
|
</li>
|
|
|
<li class="menu-item menu-item-tags">
|
|
|
|
|
|
<a href="/tags/" rel="section"><i class="fa fa-fw fa-tags"></i>Tags</a>
|
|
|
|
|
|
</li>
|
|
|
<li class="menu-item menu-item-categories">
|
|
|
|
|
|
<a href="/categories/" rel="section"><i class="fa fa-fw fa-categories"></i>Categories</a>
|
|
|
|
|
|
</li>
|
|
|
<li class="menu-item menu-item-archives">
|
|
|
|
|
|
<a href="/archives/" rel="section"><i class="fa fa-fw fa-archives"></i>Archives</a>
|
|
|
|
|
|
</li>
|
|
|
<li class="menu-item menu-item-sitemap">
|
|
|
|
|
|
<a href="/sitemap.xml" rel="section"><i class="fa fa-fw fa-sitemap"></i>Sitemap</a>
|
|
|
|
|
|
</li>
|
|
|
<li class="menu-item menu-item-commonweal">
|
|
|
|
|
|
<a href="/404/" rel="section"><i class="fa fa-fw fa-heartbeat"></i>Commonweal 404</a>
|
|
|
|
|
|
</li>
|
|
|
</ul>
|
|
|
|
|
|
</nav>
|
|
|
</div>
|
|
|
</header>
|
|
|
|
|
|
|
|
|
<div class="back-to-top">
|
|
|
<i class="fa fa-arrow-up"></i>
|
|
|
<span>0%</span>
|
|
|
</div>
|
|
|
|
|
|
<a href="https://github.com/nicksxs" class="github-corner" title="Follow me on GitHub" aria-label="Follow me on GitHub" rel="noopener" target="_blank"><svg width="80" height="80" viewBox="0 0 250 250" aria-hidden="true"><path d="M0,0 L115,115 L130,115 L142,142 L250,250 L250,0 Z"></path><path d="M128.3,109.0 C113.8,99.7 119.0,89.6 119.0,89.6 C122.0,82.7 120.5,78.6 120.5,78.6 C119.2,72.0 123.4,76.3 123.4,76.3 C127.3,80.9 125.5,87.3 125.5,87.3 C122.9,97.6 130.6,101.9 134.4,103.2" fill="currentColor" style="transform-origin: 130px 106px;" class="octo-arm"></path><path d="M115.0,115.0 C114.9,115.1 118.7,116.5 119.8,115.4 L133.7,101.6 C136.9,99.2 139.9,98.4 142.2,98.6 C133.8,88.0 127.5,74.4 143.8,58.0 C148.5,53.4 154.0,51.2 159.7,51.0 C160.3,49.4 163.2,43.6 171.4,40.1 C171.4,40.1 176.1,42.5 178.8,56.2 C183.1,58.6 187.2,61.8 190.9,65.4 C194.5,69.0 197.7,73.2 200.1,77.6 C213.8,80.2 216.3,84.9 216.3,84.9 C212.7,93.1 206.9,96.0 205.4,96.6 C205.1,102.4 203.0,107.8 198.3,112.5 C181.9,128.9 168.3,122.5 157.7,114.1 C157.9,116.9 156.7,120.9 152.7,124.9 L141.0,136.5 C139.8,137.7 141.6,141.9 141.8,141.8 Z" fill="currentColor" class="octo-body"></path></svg></a>
|
|
|
|
|
|
|
|
|
<main class="main">
|
|
|
<div class="main-inner">
|
|
|
<div class="content-wrap">
|
|
|
|
|
|
|
|
|
<div class="content">
|
|
|
|
|
|
|
|
|
<div class="posts-expand">
|
|
|
|
|
|
|
|
|
|
|
|
<article itemscope itemtype="http://schema.org/Article" class="post-block " lang="zh-Hans">
|
|
|
<link itemprop="mainEntityOfPage" href="https://nicksxs.me/2015/01/14/Two-Sum/">
|
|
|
|
|
|
<span hidden itemprop="author" itemscope itemtype="http://schema.org/Person">
|
|
|
<meta itemprop="image" content="/uploads/avatar.jpg">
|
|
|
<meta itemprop="name" content="Nicksxs">
|
|
|
<meta itemprop="description" content="learn from zero,技术博客,Nicksxs,史学森">
|
|
|
</span>
|
|
|
|
|
|
<span hidden itemprop="publisher" itemscope itemtype="http://schema.org/Organization">
|
|
|
<meta itemprop="name" content="Nicksxs's Blog">
|
|
|
</span>
|
|
|
<header class="post-header">
|
|
|
<h1 class="post-title" itemprop="name headline">
|
|
|
two sum
|
|
|
</h1>
|
|
|
|
|
|
<div class="post-meta">
|
|
|
<span class="post-meta-item">
|
|
|
<span class="post-meta-item-icon">
|
|
|
<i class="fa fa-calendar-o"></i>
|
|
|
</span>
|
|
|
<span class="post-meta-item-text">Posted on</span>
|
|
|
|
|
|
<time title="Created: 2015-01-14 15:39:31" itemprop="dateCreated datePublished" datetime="2015-01-14T15:39:31+08:00">2015-01-14</time>
|
|
|
</span>
|
|
|
<span class="post-meta-item">
|
|
|
<span class="post-meta-item-icon">
|
|
|
<i class="fa fa-calendar-check-o"></i>
|
|
|
</span>
|
|
|
<span class="post-meta-item-text">Edited on</span>
|
|
|
<time title="Modified: 2020-01-12 21:08:27" itemprop="dateModified" datetime="2020-01-12T21:08:27+08:00">2020-01-12</time>
|
|
|
</span>
|
|
|
<span class="post-meta-item">
|
|
|
<span class="post-meta-item-icon">
|
|
|
<i class="fa fa-folder-o"></i>
|
|
|
</span>
|
|
|
<span class="post-meta-item-text">In</span>
|
|
|
<span itemprop="about" itemscope itemtype="http://schema.org/Thing">
|
|
|
<a href="/categories/leetcode/" itemprop="url" rel="index">
|
|
|
<span itemprop="name">leetcode</span>
|
|
|
</a>
|
|
|
</span>
|
|
|
</span>
|
|
|
|
|
|
|
|
|
|
|
|
<span class="post-meta-item">
|
|
|
|
|
|
<span class="post-meta-item-icon">
|
|
|
<i class="fa fa-comment-o"></i>
|
|
|
</span>
|
|
|
<span class="post-meta-item-text">Disqus: </span>
|
|
|
|
|
|
<a title="disqus" href="/2015/01/14/Two-Sum/#comments" itemprop="discussionUrl">
|
|
|
<span class="post-comments-count disqus-comment-count" data-disqus-identifier="2015/01/14/Two-Sum/" itemprop="commentCount"></span>
|
|
|
</a>
|
|
|
</span>
|
|
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
</header>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<div class="post-body" itemprop="articleBody">
|
|
|
|
|
|
|
|
|
<h3 id="problem"><a href="#problem" class="headerlink" title="problem"></a>problem</h3><p>Given an array of integers, find two numbers such that they add up to a specific target number.</p>
|
|
|
<p>The function twoSum should return indices of the two numbers such that they add up to the target, where index1 must be less than index2. Please note that your returned answers (both index1 and index2) are not zero-based.</p>
|
|
|
<a id="more"></a>
|
|
|
<p>You may assume that each input would have exactly one solution.</p>
|
|
|
<p><strong>Input</strong>: numbers={2, 7, 11, 15}, target=9<br><strong>Output</strong>: index1=1, index2=2</p>
|
|
|
<h3 id="code"><a href="#code" class="headerlink" title="code"></a>code</h3><figure class="highlight c++"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br></pre></td><td class="code"><pre><span class="line"><span class="class"><span class="keyword">struct</span> <span class="title">Node</span></span></span><br><span class="line"><span class="class">{</span></span><br><span class="line"> <span class="keyword">int</span> num, pos;</span><br><span class="line">};</span><br><span class="line"><span class="function"><span class="keyword">bool</span> <span class="title">cmp</span><span class="params">(Node a, Node b)</span></span></span><br><span class="line"><span class="function"></span>{</span><br><span class="line"> <span class="keyword">return</span> a.num < b.num;</span><br><span class="line">}</span><br><span class="line"><span class="class"><span class="keyword">class</span> <span class="title">Solution</span> {</span></span><br><span class="line"><span class="keyword">public</span>:</span><br><span class="line"> <span class="built_in">vector</span><<span class="keyword">int</span>> twoSum(<span class="built_in">vector</span><<span class="keyword">int</span>> &numbers, <span class="keyword">int</span> target) {</span><br><span class="line"> <span class="comment">// Start typing your C/C++ solution below</span></span><br><span class="line"> <span class="comment">// DO NOT write int main() function</span></span><br><span class="line"> <span class="built_in">vector</span><<span class="keyword">int</span>> result;</span><br><span class="line"> <span class="built_in">vector</span><Node> <span class="built_in">array</span>;</span><br><span class="line"> <span class="keyword">for</span> (<span class="keyword">int</span> i = <span class="number">0</span>; i < numbers.<span class="built_in">size</span>(); i++)</span><br><span class="line"> {</span><br><span class="line"> Node temp;</span><br><span class="line"> temp.num = numbers[i];</span><br><span class="line"> temp.pos = i;</span><br><span class="line"> <span class="built_in">array</span>.push_back(temp);</span><br><span class="line"> }</span><br><span class="line"></span><br><span class="line"> sort(<span class="built_in">array</span>.<span class="built_in">begin</span>(), <span class="built_in">array</span>.<span class="built_in">end</span>(), cmp);</span><br><span class="line"> <span class="keyword">for</span> (<span class="keyword">int</span> i = <span class="number">0</span>, j = <span class="built_in">array</span>.<span class="built_in">size</span>() - <span class="number">1</span>; i != j;)</span><br><span class="line"> {</span><br><span class="line"> <span class="keyword">int</span> sum = <span class="built_in">array</span>[i].num + <span class="built_in">array</span>[j].num;</span><br><span class="line"> <span class="keyword">if</span> (sum == target)</span><br><span class="line"> {</span><br><span class="line"> <span class="keyword">if</span> (<span class="built_in">array</span>[i].pos < <span class="built_in">array</span>[j].pos)</span><br><span class="line"> {</span><br><span class="line"> result.push_back(<span class="built_in">array</span>[i].pos + <span class="number">1</span>);</span><br><span class="line"> result.push_back(<span class="built_in">array</span>[j].pos + <span class="number">1</span>);</span><br><span class="line"> } <span class="keyword">else</span></span><br><span class="line"> {</span><br><span class="line"> result.push_back(<span class="built_in">array</span>[j].pos + <span class="number">1</span>);</span><br><span class="line"> result.push_back(<span class="built_in">array</span>[i].pos + <span class="number">1</span>);</span><br><span class="line"> }</span><br><span class="line"> <span class="keyword">break</span>;</span><br><span class="line"> } <span class="keyword">else</span> <span class="keyword">if</span> (sum < target)</span><br><span class="line"> {</span><br><span class="line"> i++;</span><br><span class="line"> } <span class="keyword">else</span> <span class="keyword">if</span> (sum > target)</span><br><span class="line"> {</span><br><span class="line"> j--;</span><br><span class="line"> }</span><br><span class="line"> }</span><br><span class="line"> <span class="keyword">return</span> result;</span><br><span class="line"> }</span><br><span class="line">};</span><br></pre></td></tr></table></figure>
|
|
|
|
|
|
<h3 id="Analysis"><a href="#Analysis" class="headerlink" title="Analysis"></a>Analysis</h3><p>sort the array, then test from head and end, until catch the right answer</p>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<div class="popular-posts-header">Related Posts</div>
|
|
|
<ul class="popular-posts">
|
|
|
<li class="popular-posts-item">
|
|
|
<div class="popular-posts-title"><a href="/2015/03/13/Reverse-Integer/" rel="bookmark">Reverse Integer</a></div>
|
|
|
</li>
|
|
|
<li class="popular-posts-item">
|
|
|
<div class="popular-posts-title"><a href="/2016/08/14/34-Search-for-a-Range/" rel="bookmark">34_Search_for_a_Range</a></div>
|
|
|
</li>
|
|
|
<li class="popular-posts-item">
|
|
|
<div class="popular-posts-title"><a href="/2016/10/12/summary-ranges-228/" rel="bookmark">summary-ranges-228</a></div>
|
|
|
</li>
|
|
|
<li class="popular-posts-item">
|
|
|
<div class="popular-posts-title"><a href="/2015/04/15/Leetcode-No-3/" rel="bookmark">leetcode no.3</a></div>
|
|
|
</li>
|
|
|
<li class="popular-posts-item">
|
|
|
<div class="popular-posts-title"><a href="/2015/03/11/Number-Of-1-Bits/" rel="bookmark">Number of 1 Bits</a></div>
|
|
|
</li>
|
|
|
</ul>
|
|
|
|
|
|
<div class="reward-container">
|
|
|
<div>请我喝杯咖啡</div>
|
|
|
<button onclick="var qr = document.getElementById('qr'); qr.style.display = (qr.style.display === 'none') ? 'block' : 'none';">
|
|
|
Donate
|
|
|
</button>
|
|
|
<div id="qr" style="display: none;">
|
|
|
|
|
|
<div style="display: inline-block;">
|
|
|
<img src="https://i.loli.net/2020/01/12/NUlWanT31E8LQGx.png" alt="Nicksxs WeChat Pay">
|
|
|
<p>WeChat Pay</p>
|
|
|
</div>
|
|
|
|
|
|
<div style="display: inline-block;">
|
|
|
<img src="https://ooo.0o0.ooo/2016/08/17/57b421e773057.jpg" alt="Nicksxs Alipay">
|
|
|
<p>Alipay</p>
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
<div>
|
|
|
<ul class="post-copyright">
|
|
|
<li class="post-copyright-author">
|
|
|
<strong>Post author: </strong>Nicksxs
|
|
|
</li>
|
|
|
<li class="post-copyright-link">
|
|
|
<strong>Post link: </strong>
|
|
|
<a href="https://nicksxs.me/2015/01/14/Two-Sum/" title="two sum">https://nicksxs.me/2015/01/14/Two-Sum/</a>
|
|
|
</li>
|
|
|
<li class="post-copyright-license">
|
|
|
<strong>Copyright Notice: </strong>All articles in this blog are licensed under <a href="https://creativecommons.org/licenses/by-nc-sa/4.0/" rel="noopener" target="_blank"><i class="fa fa-fw fa-creative-commons"></i>BY-NC-SA</a> unless stating additionally.
|
|
|
</li>
|
|
|
</ul>
|
|
|
</div>
|
|
|
|
|
|
|
|
|
<footer class="post-footer">
|
|
|
<div class="post-tags">
|
|
|
<a href="/tags/leetcode/" rel="tag"># leetcode</a>
|
|
|
<a href="/tags/c/" rel="tag"># c++</a>
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<div class="post-nav">
|
|
|
<div class="post-nav-item">
|
|
|
<a href="/2015/01/04/Path-Sum/" rel="prev" title="Path Sum">
|
|
|
<i class="fa fa-chevron-left"></i> Path Sum
|
|
|
</a></div>
|
|
|
<div class="post-nav-item">
|
|
|
<a href="/2015/01/16/pcre-intro-and-a-simple-package/" rel="next" title="pcre-intro-and-a-simple-package">
|
|
|
pcre-intro-and-a-simple-package <i class="fa fa-chevron-right"></i>
|
|
|
</a></div>
|
|
|
</div>
|
|
|
</footer>
|
|
|
|
|
|
</article>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
<div class="comments">
|
|
|
<div id="disqus_thread">
|
|
|
<noscript>Please enable JavaScript to view the comments powered by Disqus.</noscript>
|
|
|
</div>
|
|
|
</div>
|
|
|
|
|
|
|
|
|
<script>
|
|
|
window.addEventListener('tabs:register', () => {
|
|
|
let activeClass = CONFIG.comments.activeClass;
|
|
|
if (CONFIG.comments.storage) {
|
|
|
activeClass = localStorage.getItem('comments_active') || activeClass;
|
|
|
}
|
|
|
if (activeClass) {
|
|
|
let activeTab = document.querySelector(`a[href="#comment-${activeClass}"]`);
|
|
|
if (activeTab) {
|
|
|
activeTab.click();
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
if (CONFIG.comments.storage) {
|
|
|
window.addEventListener('tabs:click', event => {
|
|
|
if (!event.target.matches('.tabs-comment .tab-content .tab-pane')) return;
|
|
|
let commentClass = event.target.classList[1];
|
|
|
localStorage.setItem('comments_active', commentClass);
|
|
|
});
|
|
|
}
|
|
|
</script>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
<div class="toggle sidebar-toggle">
|
|
|
<span class="toggle-line toggle-line-first"></span>
|
|
|
<span class="toggle-line toggle-line-middle"></span>
|
|
|
<span class="toggle-line toggle-line-last"></span>
|
|
|
</div>
|
|
|
|
|
|
<aside class="sidebar">
|
|
|
<div class="sidebar-inner">
|
|
|
|
|
|
<ul class="sidebar-nav motion-element">
|
|
|
<li class="sidebar-nav-toc">
|
|
|
Table of Contents
|
|
|
</li>
|
|
|
<li class="sidebar-nav-overview">
|
|
|
Overview
|
|
|
</li>
|
|
|
</ul>
|
|
|
|
|
|
<!--noindex-->
|
|
|
<div class="post-toc-wrap sidebar-panel">
|
|
|
<div class="post-toc motion-element"><ol class="nav"><li class="nav-item nav-level-3"><a class="nav-link" href="#problem"><span class="nav-number">1.</span> <span class="nav-text">problem</span></a></li><li class="nav-item nav-level-3"><a class="nav-link" href="#code"><span class="nav-number">2.</span> <span class="nav-text">code</span></a></li><li class="nav-item nav-level-3"><a class="nav-link" href="#Analysis"><span class="nav-number">3.</span> <span class="nav-text">Analysis</span></a></li></ol></div>
|
|
|
</div>
|
|
|
<!--/noindex-->
|
|
|
|
|
|
<div class="site-overview-wrap sidebar-panel">
|
|
|
<div class="site-author motion-element" itemprop="author" itemscope itemtype="http://schema.org/Person">
|
|
|
<img class="site-author-image" itemprop="image" alt="Nicksxs"
|
|
|
src="/uploads/avatar.jpg">
|
|
|
<p class="site-author-name" itemprop="name">Nicksxs</p>
|
|
|
<div class="site-description" itemprop="description">learn from zero,技术博客,Nicksxs,史学森</div>
|
|
|
</div>
|
|
|
<div class="site-state-wrap motion-element">
|
|
|
<nav class="site-state">
|
|
|
<div class="site-state-item site-state-posts">
|
|
|
<a href="/archives/">
|
|
|
|
|
|
<span class="site-state-item-count">39</span>
|
|
|
<span class="site-state-item-name">posts</span>
|
|
|
</a>
|
|
|
</div>
|
|
|
<div class="site-state-item site-state-categories">
|
|
|
<a href="/categories/">
|
|
|
|
|
|
<span class="site-state-item-count">27</span>
|
|
|
<span class="site-state-item-name">categories</span></a>
|
|
|
</div>
|
|
|
<div class="site-state-item site-state-tags">
|
|
|
<a href="/tags/">
|
|
|
|
|
|
<span class="site-state-item-count">45</span>
|
|
|
<span class="site-state-item-name">tags</span></a>
|
|
|
</div>
|
|
|
</nav>
|
|
|
</div>
|
|
|
<div class="links-of-author motion-element">
|
|
|
<span class="links-of-author-item">
|
|
|
<a href="https://github.com/nicksxs" title="GitHub → https://github.com/nicksxs" rel="noopener" target="_blank"><i class="fa fa-fw fa-github"></i>GitHub</a>
|
|
|
</span>
|
|
|
<span class="links-of-author-item">
|
|
|
<a href="mailto:nicksxs1202@gmail.com" title="E-Mail → mailto:nicksxs1202@gmail.com" rel="noopener" target="_blank"><i class="fa fa-fw fa-envelope"></i>E-Mail</a>
|
|
|
</span>
|
|
|
<span class="links-of-author-item">
|
|
|
<a href="/atom.xml" title="RSS → /atom.xml"><i class="fa fa-fw fa-rss"></i>RSS</a>
|
|
|
</span>
|
|
|
</div>
|
|
|
<div class="cc-license motion-element" itemprop="license">
|
|
|
<a href="https://creativecommons.org/licenses/by-nc-sa/4.0/" class="cc-opacity" rel="noopener" target="_blank"><img src="/images/cc-by-nc-sa.svg" alt="Creative Commons"></a>
|
|
|
</div>
|
|
|
|
|
|
<script type="text/javascript" charset="utf-8" src="/js/tagcloud.js"></script>
|
|
|
<script type="text/javascript" charset="utf-8" src="/js/tagcanvas.js"></script>
|
|
|
<div class="widget-wrap">
|
|
|
<div id="myCanvasContainer" class="widget tagcloud">
|
|
|
<canvas width="250" height="250" id="resCanvas" style="width=100%">
|
|
|
<ul class="tag-list" itemprop="keywords"><li class="tag-list-item"><a class="tag-list-link" href="/tags/2019/" rel="tag">2019</a><span class="tag-list-count">1</span></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/C/" rel="tag">C</a><span class="tag-list-count">1</span></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/C/" rel="tag">C++</a><span class="tag-list-count">3</span></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/Design-Patterns/" rel="tag">Design Patterns</a><span class="tag-list-count">1</span></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/Distributed-Lock/" rel="tag">Distributed Lock</a><span class="tag-list-count">1</span></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/G1/" rel="tag">G1</a><span class="tag-list-count">1</span></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/GC/" rel="tag">GC</a><span class="tag-list-count">1</span></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/Garbage-First-Collector/" rel="tag">Garbage-First Collector</a><span class="tag-list-count">1</span></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/Gogs/" rel="tag">Gogs</a><span class="tag-list-count">1</span></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/JVM/" rel="tag">JVM</a><span class="tag-list-count">2</span></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/Java/" rel="tag">Java</a><span class="tag-list-count">3</span></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/Maven/" rel="tag">Maven</a><span class="tag-list-count">1</span></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/Redis/" rel="tag">Redis</a><span class="tag-list-count">1</span></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/Singleton/" rel="tag">Singleton</a><span class="tag-list-count">1</span></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/Webhook/" rel="tag">Webhook</a><span class="tag-list-count">1</span></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/aqs/" rel="tag">aqs</a><span class="tag-list-count">1</span></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/c/" rel="tag">c++</a><span class="tag-list-count">14</span></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/cluster/" rel="tag">cluster</a><span class="tag-list-count">1</span></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/docker/" rel="tag">docker</a><span class="tag-list-count">1</span></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/hadoop/" rel="tag">hadoop</a><span class="tag-list-count">1</span></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/im/" rel="tag">im</a><span class="tag-list-count">1</span></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/java/" rel="tag">java</a><span class="tag-list-count">1</span></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/leetcode/" rel="tag">leetcode</a><span class="tag-list-count">13</span></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/mfc/" rel="tag">mfc</a><span class="tag-list-count">2</span></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/mq/" rel="tag">mq</a><span class="tag-list-count">1</span></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/mysql/" rel="tag">mysql</a><span class="tag-list-count">1</span></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/nginx/" rel="tag">nginx</a><span class="tag-list-count">1</span></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/openresty/" rel="tag">openresty</a><span class="tag-list-count">1</span></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/php/" rel="tag">php</a><span class="tag-list-count">2</span></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/python/" rel="tag">python</a><span class="tag-list-count">1</span></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/redis/" rel="tag">redis</a><span class="tag-list-count">6</span></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/spark/" rel="tag">spark</a><span class="tag-list-count">1</span></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/swoole/" rel="tag">swoole</a><span class="tag-list-count">1</span></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/websocket/" rel="tag">websocket</a><span class="tag-list-count">1</span></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/%E5%88%86%E5%B8%83%E5%BC%8F%E9%94%81/" rel="tag">分布式锁</a><span class="tag-list-count">1</span></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/%E5%8D%95%E4%BE%8B/" rel="tag">单例</a><span class="tag-list-count">1</span></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/%E5%8D%9A%E5%AE%A2%EF%BC%8C%E6%96%87%E7%AB%A0/" rel="tag">博客,文章</a><span class="tag-list-count">1</span></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/%E5%AF%84%E7%94%9F%E8%99%AB/" rel="tag">寄生虫</a><span class="tag-list-count">1</span></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/%E5%B9%B4%E7%BB%88%E6%80%BB%E7%BB%93/" rel="tag">年终总结</a><span class="tag-list-count">1</span></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/%E5%BD%B1%E8%AF%84/" rel="tag">影评</a><span class="tag-list-count">1</span></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84/" rel="tag">数据结构</a><span class="tag-list-count">6</span></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/%E6%BA%90%E7%A0%81/" rel="tag">源码</a><span class="tag-list-count">6</span></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/%E7%94%9F%E6%B4%BB/" rel="tag">生活</a><span class="tag-list-count">2</span></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/" rel="tag">设计模式</a><span class="tag-list-count">1</span></li><li class="tag-list-item"><a class="tag-list-link" href="/tags/%E8%AF%BB%E5%90%8E%E6%84%9F/" rel="tag">读后感</a><span class="tag-list-count">1</span></li></ul>
|
|
|
</canvas>
|
|
|
</div>
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
<div class="links-of-blogroll motion-element">
|
|
|
<div class="links-of-blogroll-title">
|
|
|
<i class="fa fa-fw fa-link"></i>
|
|
|
Links
|
|
|
</div>
|
|
|
<ul class="links-of-blogroll-list">
|
|
|
<li class="links-of-blogroll-item">
|
|
|
<a href="http://www.zipperary.com/" title="http://www.zipperary.com/" rel="noopener" target="_blank">Zippera's blog</a>
|
|
|
</li>
|
|
|
<li class="links-of-blogroll-item">
|
|
|
<a href="http://x20a.xyz/" title="http://x20a.xyz/" rel="noopener" target="_blank">Freedom</a>
|
|
|
</li>
|
|
|
<li class="links-of-blogroll-item">
|
|
|
<a href="http://samuel.group/" title="http://samuel.group/" rel="noopener" target="_blank">sfwtt</a>
|
|
|
</li>
|
|
|
<li class="links-of-blogroll-item">
|
|
|
<a href="http://blog.leanote.com/buru" title="http://blog.leanote.com/buru" rel="noopener" target="_blank">bruce</a>
|
|
|
</li>
|
|
|
<li class="links-of-blogroll-item">
|
|
|
<a href="http://m2shad0w.com/" title="http://m2shad0w.com/" rel="noopener" target="_blank">m2shad0w</a>
|
|
|
</li>
|
|
|
<li class="links-of-blogroll-item">
|
|
|
<a href="http://www.programcat.com/" title="http://www.programcat.com" rel="noopener" target="_blank">程序喵的厨房</a>
|
|
|
</li>
|
|
|
</ul>
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
</aside>
|
|
|
<div id="sidebar-dimmer"></div>
|
|
|
|
|
|
|
|
|
</div>
|
|
|
</main>
|
|
|
|
|
|
<footer class="footer">
|
|
|
<div class="footer-inner">
|
|
|
|
|
|
|
|
|
<div class="copyright">
|
|
|
|
|
|
©
|
|
|
<span itemprop="copyrightYear">2020</span>
|
|
|
<span class="with-love">
|
|
|
<i class="fa fa-user"></i>
|
|
|
</span>
|
|
|
<span class="author" itemprop="copyrightHolder">Nicksxs</span>
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
</footer>
|
|
|
</div>
|
|
|
|
|
|
|
|
|
<script src="/lib/anime.min.js"></script>
|
|
|
<script src="//cdn.jsdelivr.net/npm/jquery@3/dist/jquery.min.js"></script>
|
|
|
<script src="//cdn.jsdelivr.net/gh/fancyapps/fancybox@3/dist/jquery.fancybox.min.js"></script>
|
|
|
<script src="//cdn.jsdelivr.net/npm/lozad@1/dist/lozad.min.js"></script>
|
|
|
<script src="/lib/velocity/velocity.min.js"></script>
|
|
|
<script src="/lib/velocity/velocity.ui.min.js"></script>
|
|
|
|
|
|
<script src="/js/utils.js"></script>
|
|
|
|
|
|
<script src="/js/motion.js"></script>
|
|
|
|
|
|
|
|
|
<script src="/js/schemes/pisces.js"></script>
|
|
|
|
|
|
|
|
|
<script src="/js/next-boot.js"></script>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<script>
|
|
|
(function(){
|
|
|
var bp = document.createElement('script');
|
|
|
var curProtocol = window.location.protocol.split(':')[0];
|
|
|
bp.src = (curProtocol === 'https') ? 'https://zz.bdstatic.com/linksubmit/push.js' : 'http://push.zhanzhang.baidu.com/push.js';
|
|
|
var s = document.getElementsByTagName("script")[0];
|
|
|
s.parentNode.insertBefore(bp, s);
|
|
|
})();
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<script src="//cdn.jsdelivr.net/npm/quicklink@1/dist/quicklink.umd.js"></script>
|
|
|
<script>
|
|
|
window.addEventListener('load', () => {
|
|
|
quicklink({
|
|
|
timeout: 3000,
|
|
|
priority: true,
|
|
|
ignores: [uri => uri.includes('#'),uri => uri == 'https://nicksxs.me/2015/01/14/Two-Sum/',]
|
|
|
});
|
|
|
});
|
|
|
</script>
|
|
|
|
|
|
<script>
|
|
|
function loadCount() {
|
|
|
var d = document, s = d.createElement('script');
|
|
|
s.src = 'https://nicksxs.disqus.com/count.js';
|
|
|
s.id = 'dsq-count-scr';
|
|
|
(d.head || d.body).appendChild(s);
|
|
|
}
|
|
|
// defer loading until the whole page loading is completed
|
|
|
window.addEventListener('load', loadCount, false);
|
|
|
</script>
|
|
|
<script>
|
|
|
NexT.utils.loadComments(document.querySelector('#disqus_thread'), () => {
|
|
|
if (window.DISQUS) {
|
|
|
DISQUS.reset({
|
|
|
reload: true,
|
|
|
config: {page: {
|
|
|
url: "https://nicksxs.me/2015/01/14/Two-Sum/",
|
|
|
identifier: "2015/01/14/Two-Sum/",
|
|
|
title: "two sum"
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
} else {
|
|
|
var d = document, s = d.createElement('script');
|
|
|
s.src = 'https://nicksxs.disqus.com/embed.js';
|
|
|
s.setAttribute('data-timestamp', '' + +new Date());
|
|
|
(d.head || d.body).appendChild(s);
|
|
|
}
|
|
|
});
|
|
|
</script>
|
|
|
|
|
|
</body>
|
|
|
</html>
|