Skip to content

Commit f833f71

Browse files
committed
Deployed 4d82a18 with MkDocs version: 1.0.4
1 parent c33fd14 commit f833f71

File tree

5 files changed

+57
-27
lines changed

5 files changed

+57
-27
lines changed

19_python内置常用算法和数据结构/builtins/index.html

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -191,6 +191,9 @@
191191
<li class="toctree-l2"><a href="#leetcode">leetcode 二叉树调试函数</a></li>
192192

193193

194+
<li class="toctree-l2"><a href="#python_1">python 交换列表元素的坑</a></li>
195+
196+
194197
</ul>
195198
</li>
196199

@@ -308,7 +311,7 @@ <h1 id="_1">一些坑</h1>
308311
<li>python在数值范围建议用:<code>MAXINT = 2**63-1; MININT = -2**63</code> 。因为 python2 sys.maxint 和 python3 sys.maxsize 不统一</li>
309312
<li>优先级队列:使用内置queue.PriorityQueue or heapq ,定义一个 Item 类实现"小于" 魔术方法就可以实现,下边有代码演示</li>
310313
<li>python3 的 functools 模块自带了 cache(等价于lru_cache(maxsize=None)) 和 lru_cache 装饰器,在一些需要递归记忆化搜索的时候会很方便</li>
311-
<li>除法变更:python2和 python3 除法做了变更要注意。还有负数除法。 python2 <code>int(6/-123)==-1</code>,但是 python3 <code>int(6/-123)==0</code></li>
314+
<li>除法变更:python2和 python3 除法做了变更要注意。还有负数除法。 python2 <code>int(6/-123)==-1</code>,但是 python3 <code>int(6/-123)==0</code>。整数除法统一用 "//"</li>
312315
</ul>
313316
<h1 id="python-int">python int 值范围</h1>
314317
<pre><code># 乘方 (比较推荐,py2/3 都兼容不容易出错)
@@ -603,6 +606,33 @@ <h1 id="leetcode">leetcode 二叉树调试函数</h1>
603606
cur.right = right
604607
return root
605608
</code></pre>
609+
<h1 id="python_1">python 交换列表元素的坑</h1>
610+
<pre><code># 41. 缺失的第一个正数 https://leetcode-cn.com/problems/first-missing-positive/
611+
class Solution(object):
612+
def firstMissingPositive(self, nums):
613+
&quot;&quot;&quot;
614+
平常习惯了 python 里边交换元素 a,b=b,a 这里你可能这么写,那就中招了!
615+
nums[i], nums[nums[i]-1] = nums[nums[i]-1], nums[i] # 这么写死循环!
616+
这个等价于
617+
x, y = nums[nums[i]-1], nums[i]
618+
nums[i] = x # 这一步 nums[i] 已经修改了,下边一句赋值不是期望的 nums[i]了
619+
nums[nums[i]-1] = y
620+
621+
:type nums: List[int]
622+
:rtype: int
623+
&quot;&quot;&quot;
624+
n = len(nums)
625+
for i in range(n):
626+
while 1 &lt;= nums[i] &lt;= n and nums[nums[i]-1] != nums[i]:
627+
# NOTE: 注意这一句交换右边有副作用的,不能颠倒!!!
628+
# nums[i], nums[nums[i]-1] = nums[nums[i]-1], nums[i] # 这么写死循环!
629+
nums[nums[i]-1], nums[i] = nums[i], nums[nums[i]-1]
630+
for i in range(n):
631+
if nums[i] != i+1:
632+
return i+1
633+
634+
return n+1
635+
</code></pre>
606636

607637
</div>
608638
</div>

index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -599,5 +599,5 @@ <h2 id="_22">本电子书制作和写作方式</h2>
599599

600600
<!--
601601
MkDocs version : 1.0.4
602-
Build Date UTC : 2022-02-13 15:08:12
602+
Build Date UTC : 2022-02-17 14:35:30
603603
-->

search/search_index.json

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

sitemap.xml

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -2,122 +2,122 @@
22
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
33
<url>
44
<loc>None</loc>
5-
<lastmod>2022-02-13</lastmod>
5+
<lastmod>2022-02-17</lastmod>
66
<changefreq>daily</changefreq>
77
</url>
88
<url>
99
<loc>None</loc>
10-
<lastmod>2022-02-13</lastmod>
10+
<lastmod>2022-02-17</lastmod>
1111
<changefreq>daily</changefreq>
1212
</url>
1313
<url>
1414
<loc>None</loc>
15-
<lastmod>2022-02-13</lastmod>
15+
<lastmod>2022-02-17</lastmod>
1616
<changefreq>daily</changefreq>
1717
</url>
1818
<url>
1919
<loc>None</loc>
20-
<lastmod>2022-02-13</lastmod>
20+
<lastmod>2022-02-17</lastmod>
2121
<changefreq>daily</changefreq>
2222
</url>
2323
<url>
2424
<loc>None</loc>
25-
<lastmod>2022-02-13</lastmod>
25+
<lastmod>2022-02-17</lastmod>
2626
<changefreq>daily</changefreq>
2727
</url>
2828
<url>
2929
<loc>None</loc>
30-
<lastmod>2022-02-13</lastmod>
30+
<lastmod>2022-02-17</lastmod>
3131
<changefreq>daily</changefreq>
3232
</url>
3333
<url>
3434
<loc>None</loc>
35-
<lastmod>2022-02-13</lastmod>
35+
<lastmod>2022-02-17</lastmod>
3636
<changefreq>daily</changefreq>
3737
</url>
3838
<url>
3939
<loc>None</loc>
40-
<lastmod>2022-02-13</lastmod>
40+
<lastmod>2022-02-17</lastmod>
4141
<changefreq>daily</changefreq>
4242
</url>
4343
<url>
4444
<loc>None</loc>
45-
<lastmod>2022-02-13</lastmod>
45+
<lastmod>2022-02-17</lastmod>
4646
<changefreq>daily</changefreq>
4747
</url>
4848
<url>
4949
<loc>None</loc>
50-
<lastmod>2022-02-13</lastmod>
50+
<lastmod>2022-02-17</lastmod>
5151
<changefreq>daily</changefreq>
5252
</url>
5353
<url>
5454
<loc>None</loc>
55-
<lastmod>2022-02-13</lastmod>
55+
<lastmod>2022-02-17</lastmod>
5656
<changefreq>daily</changefreq>
5757
</url>
5858
<url>
5959
<loc>None</loc>
60-
<lastmod>2022-02-13</lastmod>
60+
<lastmod>2022-02-17</lastmod>
6161
<changefreq>daily</changefreq>
6262
</url>
6363
<url>
6464
<loc>None</loc>
65-
<lastmod>2022-02-13</lastmod>
65+
<lastmod>2022-02-17</lastmod>
6666
<changefreq>daily</changefreq>
6767
</url>
6868
<url>
6969
<loc>None</loc>
70-
<lastmod>2022-02-13</lastmod>
70+
<lastmod>2022-02-17</lastmod>
7171
<changefreq>daily</changefreq>
7272
</url>
7373
<url>
7474
<loc>None</loc>
75-
<lastmod>2022-02-13</lastmod>
75+
<lastmod>2022-02-17</lastmod>
7676
<changefreq>daily</changefreq>
7777
</url>
7878
<url>
7979
<loc>None</loc>
80-
<lastmod>2022-02-13</lastmod>
80+
<lastmod>2022-02-17</lastmod>
8181
<changefreq>daily</changefreq>
8282
</url>
8383
<url>
8484
<loc>None</loc>
85-
<lastmod>2022-02-13</lastmod>
85+
<lastmod>2022-02-17</lastmod>
8686
<changefreq>daily</changefreq>
8787
</url>
8888
<url>
8989
<loc>None</loc>
90-
<lastmod>2022-02-13</lastmod>
90+
<lastmod>2022-02-17</lastmod>
9191
<changefreq>daily</changefreq>
9292
</url>
9393
<url>
9494
<loc>None</loc>
95-
<lastmod>2022-02-13</lastmod>
95+
<lastmod>2022-02-17</lastmod>
9696
<changefreq>daily</changefreq>
9797
</url>
9898
<url>
9999
<loc>None</loc>
100-
<lastmod>2022-02-13</lastmod>
100+
<lastmod>2022-02-17</lastmod>
101101
<changefreq>daily</changefreq>
102102
</url>
103103
<url>
104104
<loc>None</loc>
105-
<lastmod>2022-02-13</lastmod>
105+
<lastmod>2022-02-17</lastmod>
106106
<changefreq>daily</changefreq>
107107
</url>
108108
<url>
109109
<loc>None</loc>
110-
<lastmod>2022-02-13</lastmod>
110+
<lastmod>2022-02-17</lastmod>
111111
<changefreq>daily</changefreq>
112112
</url>
113113
<url>
114114
<loc>None</loc>
115-
<lastmod>2022-02-13</lastmod>
115+
<lastmod>2022-02-17</lastmod>
116116
<changefreq>daily</changefreq>
117117
</url>
118118
<url>
119119
<loc>None</loc>
120-
<lastmod>2022-02-13</lastmod>
120+
<lastmod>2022-02-17</lastmod>
121121
<changefreq>daily</changefreq>
122122
</url>
123123
</urlset>

sitemap.xml.gz

0 Bytes
Binary file not shown.

0 commit comments

Comments
 (0)