Skip to content

Commit

Permalink
Site updated: 2024-03-09 14:13:27
Browse files Browse the repository at this point in the history
  • Loading branch information
oyoanan committed Mar 9, 2024
1 parent 38faa7d commit 380b48e
Show file tree
Hide file tree
Showing 8 changed files with 107 additions and 130 deletions.
7 changes: 3 additions & 4 deletions 2024/02/28/Test/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,12 @@
<meta name="author" content="An">
<meta name="keywords" content="">

<meta name="description" content="欢迎你 这是一篇测试文章。 我是一个很懒的人,做到这一步已经很棒了。">
<meta name="description" content="欢迎你这是一篇测试文章。 我是一个很懒的人,做到这一步已经很棒了。">
<meta property="og:type" content="article">
<meta property="og:title" content="Test">
<meta property="og:url" content="http://example.com/2024/02/28/Test/index.html">
<meta property="og:site_name" content="An&#96;s Blog">
<meta property="og:description" content="欢迎你 这是一篇测试文章。 我是一个很懒的人,做到这一步已经很棒了。">
<meta property="og:description" content="欢迎你这是一篇测试文章。 我是一个很懒的人,做到这一步已经很棒了。">
<meta property="og:locale" content="zh_CN">
<meta property="og:image" content="https://an-hexo-blog.oss-cn-beijing.aliyuncs.com/img/202402281532947.jpg">
<meta property="article:published_time" content="2024-02-28T08:26:05.000Z">
Expand Down Expand Up @@ -285,8 +285,7 @@ <h1 id="seo-header">Test</h1>

<div class="markdown-body">

<h1>欢迎你</h1>
<p>这是一篇测试文章。</p>
<h1 id="欢迎你"><a href="#欢迎你" class="headerlink" title="欢迎你"></a>欢迎你</h1><p>这是一篇测试文章。</p>
<p>我是一个很懒的人,做到这一步已经很棒了。</p>
<p><img src="https://an-hexo-blog.oss-cn-beijing.aliyuncs.com/img/202402281629110.jpeg" srcset="/img/loading.gif" lazyload alt="有什么特别可爱猫猫的动态图或表情包吗? - 知乎"></p>

Expand Down
33 changes: 15 additions & 18 deletions 2024/03/02/LeetCode01/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -16,16 +16,16 @@
<meta name="author" content="An">
<meta name="keywords" content="">

<meta name="description" content="1. 两数之和 题目 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。 你可以按任意顺序返回答案。 示例 1: 123输入:nums &#x3D; [2,7,11,15], target &#x3D; 9输出:[0,1]解释:因为 nums">
<meta name="description" content="1. 两数之和题目给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。 你可以按任意顺序返回答案。 示例 1: 123输入:nums &#x3D; [2,7,11,15], target &#x3D; 9输出:[0,1]解释:因为 nums[0">
<meta property="og:type" content="article">
<meta property="og:title" content="LeetCode01:两数之和">
<meta property="og:url" content="http://example.com/2024/03/02/LeetCode01/index.html">
<meta property="og:site_name" content="An&#96;s Blog">
<meta property="og:description" content="1. 两数之和 题目 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。 你可以按任意顺序返回答案。 示例 1: 123输入:nums &#x3D; [2,7,11,15], target &#x3D; 9输出:[0,1]解释:因为 nums">
<meta property="og:description" content="1. 两数之和题目给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。 你可以按任意顺序返回答案。 示例 1: 123输入:nums &#x3D; [2,7,11,15], target &#x3D; 9输出:[0,1]解释:因为 nums[0">
<meta property="og:locale" content="zh_CN">
<meta property="og:image" content="https://an-hexo-blog.oss-cn-beijing.aliyuncs.com/img/202403021502005.jpeg">
<meta property="article:published_time" content="2024-03-02T06:53:55.000Z">
<meta property="article:modified_time" content="2024-03-08T11:46:12.793Z">
<meta property="article:modified_time" content="2024-03-08T14:18:34.006Z">
<meta property="article:author" content="An">
<meta property="article:tag" content="Python">
<meta property="article:tag" content="题库">
Expand Down Expand Up @@ -286,36 +286,33 @@ <h1 id="seo-header">LeetCode01:两数之和</h1>

<div class="markdown-body">

<h1>1. 两数之和</h1>
<h2 id="题目">题目</h2>
<p>给定一个整数数组 <code>nums</code> 和一个整数目标值 <code>target</code>,请你在该数组中找出 <strong>和为目标值</strong> <em><code>target</code></em> 的那 <strong>两个</strong> 整数,并返回它们的数组下标。</p>
<h1 id="1-两数之和"><a href="#1-两数之和" class="headerlink" title="1. 两数之和"></a>1. 两数之和</h1><h2 id="题目"><a href="#题目" class="headerlink" title="题目"></a>题目</h2><p>给定一个整数数组 <code>nums</code> 和一个整数目标值 <code>target</code>,请你在该数组中找出 <strong>和为目标值</strong> <em><code>target</code></em> 的那 <strong>两个</strong> 整数,并返回它们的数组下标。</p>
<p>你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。</p>
<p>你可以按任意顺序返回答案。</p>
<p><strong>示例 1:</strong></p>
<figure class="highlight inform7"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><code class="hljs inform7">输入:nums = <span class="hljs-comment">[2,7,11,15]</span>, target = 9<br>输出:<span class="hljs-comment">[0,1]</span><br>解释:因为 nums<span class="hljs-comment">[0]</span> + nums<span class="hljs-comment">[1]</span> == 9 ,返回 <span class="hljs-comment">[0, 1]</span><br></code></pre></td></tr></table></figure>

<p><strong>示例 2:</strong></p>
<figure class="highlight inform7"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><code class="hljs inform7">输入:nums = <span class="hljs-comment">[3,2,4]</span>, target = 6<br>输出:<span class="hljs-comment">[1,2]</span><br></code></pre></td></tr></table></figure>

<p><strong>示例 3:</strong></p>
<figure class="highlight inform7"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><code class="hljs inform7">输入:nums = <span class="hljs-comment">[3,3]</span>, target = 6<br>输出:<span class="hljs-comment">[0,1]</span><br></code></pre></td></tr></table></figure>
<h2 id="题解">题解</h2>
<h3 id="(1)暴力枚举">(1)暴力枚举</h3>
<p>枚举数组中的每一个数<code>x</code>,寻找数组中是否存在<code>target-x</code></p>

<h2 id="题解"><a href="#题解" class="headerlink" title="题解"></a>题解</h2><h3 id="(1)暴力枚举"><a href="#(1)暴力枚举" class="headerlink" title="(1)暴力枚举"></a>(1)暴力枚举</h3><p>枚举数组中的每一个数<code>x</code>,寻找数组中是否存在<code>target-x</code></p>
<figure class="highlight python"><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></pre></td><td class="code"><pre><code class="hljs python"><span class="hljs-keyword">class</span> <span class="hljs-title class_">Solution</span>:<br> <span class="hljs-keyword">def</span> <span class="hljs-title function_">twoSum</span>(<span class="hljs-params">self,nums,target</span>):<br> n = <span class="hljs-built_in">len</span>(nums)<br> <span class="hljs-keyword">for</span> i <span class="hljs-keyword">in</span> <span class="hljs-built_in">range</span>(n):<br> <span class="hljs-keyword">for</span> j <span class="hljs-keyword">in</span> <span class="hljs-built_in">range</span>(i+<span class="hljs-number">1</span>,n):<br> <span class="hljs-keyword">if</span> nums[i] + nums[j] == target:<br> <span class="hljs-keyword">return</span> [i,j]<br> <span class="hljs-keyword">return</span> []<br></code></pre></td></tr></table></figure>
<h3 id="(2)哈希表">(2)哈希表</h3>
<p>对于数组中的每一个数<code>x</code>,首先查询哈希表中是否存在<code>target-x</code>,如果存在则返回结果,不存在就将<code>x</code>插入到哈希表中,保证不会让<code>x</code>和自己匹配。</p>

<h3 id="(2)哈希表"><a href="#(2)哈希表" class="headerlink" title="(2)哈希表"></a>(2)哈希表</h3><p>对于数组中的每一个数<code>x</code>,首先查询哈希表中是否存在<code>target-x</code>,如果存在则返回结果,不存在就将<code>x</code>插入到哈希表中,保证不会让<code>x</code>和自己匹配。</p>
<figure class="highlight python"><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></pre></td><td class="code"><pre><code class="hljs python"><span class="hljs-keyword">class</span> <span class="hljs-title class_">Solution</span>:<br> <span class="hljs-keyword">def</span> <span class="hljs-title function_">twoSum</span>(<span class="hljs-params">self,nums,target</span>):<br> hashtable = <span class="hljs-built_in">dict</span>()<br> <span class="hljs-keyword">for</span> i,num <span class="hljs-keyword">in</span> <span class="hljs-built_in">enumerate</span>(nums):<br> num2 = target - num <br> <span class="hljs-built_in">print</span>(num,num2)<br> <span class="hljs-keyword">if</span> num2 <span class="hljs-keyword">in</span> hashtable:<br> <span class="hljs-keyword">return</span> [i,hashtable[num2]]<br> hashtable[num] = i<br> <span class="hljs-built_in">print</span>(hashtable)<br> <span class="hljs-keyword">return</span> [] <br></code></pre></td></tr></table></figure>
<h2 id="知识点">知识点</h2>
<ul>
<li>
<p><strong>是否会报超出索引异常</strong></p>

<h2 id="知识点"><a href="#知识点" class="headerlink" title="知识点"></a>知识点</h2><ul>
<li><p><strong>是否会报超出索引异常</strong></p>
<blockquote>
<p>在方法一的双层for循环中,假设<code>nums</code>为5个元素,当for的外层循环遍历到最后一个元素时,<code>i</code>为4,内层循环涉及到<code>for j in range(5,5)</code>,生成的序列将是空的。因此,<code>for j in range(5,5)</code> 实际上不会执行循环体内的任何代码,也不存在报错。在 Python 中,尝试访问超出数组(列表)索引的元素会引发错误。具体来说,如果尝试访问一个不存在的索引位置,Python 会抛出 <code>IndexError</code> 异常。</p>
</blockquote>
</li>
<li>
<p><strong>时间与空间复杂度</strong></p>
<li><p><strong>时间与空间复杂度</strong></p>
<blockquote>
<p>1、使用暴力枚举,时间复杂度为O($$n^2$$),因为需要使用两层循环来检查数组中每对不同的元素,看它们的和是否等于 <code>target</code>;空间复杂度为O(1),因为除了输入和输出之外,只需要有限的额外空间。</p>
<p>1、使用暴力枚举,时间复杂度为O($n^2$),因为需要使用两层循环来检查数组中每对不同的元素,看它们的和是否等于 <code>target</code>;空间复杂度为O(1),因为除了输入和输出之外,只需要有限的额外空间。</p>
<p>2、使用哈希表,时间复杂度为O(n),因为只需要遍历数组一次,对于每个元素,可以在 O(1) 的时间内通过哈希表检查 <code>target - num</code> 是否存在;空间复杂度为O(n),因为最坏的情况下,可能需要将数组中的所有元素都存储在哈希表中。</p>
</blockquote>
</li>
Expand Down
Loading

0 comments on commit 380b48e

Please sign in to comment.