Skip to content

Commit 93ebe43

Browse files
committed
add next-permutation
1 parent 90fd949 commit 93ebe43

File tree

2 files changed

+37
-7
lines changed

2 files changed

+37
-7
lines changed

No.1/Next_Permutation.py

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
2+
num = [1,2,3,4,5]
3+
4+
def nextPermutation(num):
5+
if len(num) <= 1:
6+
return num
7+
for i in range(len(num)-2, -1, -1):
8+
if num[i] < num[i+1]:
9+
j = i + 1
10+
while j < len(num):
11+
if num[i] >= num[j]:
12+
break
13+
j += 1
14+
j -= 1
15+
num[i], num[j] = num[j], num[i]
16+
num[i+1:] = sorted(num[i+1:])
17+
return num
18+
for k in range(0, len(num)/2, 1):
19+
num[k], num[len(num)-1-k] = num[len(num)-1-k], num[k]
20+
return num
21+
22+
print nextPermutation(num)
23+

README.md

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,16 @@
11
# Algorithm_Python_Demo
22
《挑战程序设计竞赛(第二版)》
3-
------------------------
4-
#No.1 初级篇<br>
5-
>穷竭搜索<br>
6-
>>DFS:从一个状态开始,不断移动状态,直到无法移动,然后退回到上一状态,继续转移其他状态,不断重复,直到找到最终解。递归函数<br>
7-
>>BFS:从一个状态开始,不断移动状态,总是搜索距离初始状态距离近的状态。<br>
8-
#No.2 中级篇<br>
9-
#No.3 高级篇<br>
3+
========================
4+
# No.1 初级篇<br>
5+
----------------
6+
> ## 1.1.1 穷竭搜索<br>
7+
>> DFS:从一个状态开始,不断移动状态,直到无法移动,然后退回到上一状态,继续转移其他状态,不断重复,直到找到最终解。递归函数<br>
8+
>> BFS:从一个状态开始,不断移动状态,总是搜索距离初始状态距离近的状<br>
9+
> ## 1.1.2 优化<br>
10+
>> 特殊状态的枚举:生成可解空间多数采用DFS,但是状态空间较为特殊时可通过全排列解决。<br>
11+
>> 剪枝
12+
13+
# No.2 中级篇<br>
14+
----------------
15+
# No.3 高级篇<br>
16+
----------------

0 commit comments

Comments
 (0)