激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

香港云服务器
服務器之家 - 腳本之家 - Python - 非遞歸的輸出1-N的全排列實例(推薦)

非遞歸的輸出1-N的全排列實例(推薦)

2020-09-28 10:12腳本之家 Python

下面小編就為大家帶來一篇非遞歸的輸出1-N的全排列實例(推薦)。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

網易游戲筆試題算法題之一,可以用C++,Java,Python,由于Python代碼量較小,于是我選擇Python語言。

算法總體思路是從1,2,3……N這個排列開始,一直計算下一個排列,直到輸出N,N-1,……1為止

那么如何計算給定排列的下一個排列?

考慮[2,3,5,4,1]這個序列,從后往前尋找第一對遞增的相鄰數字,即3,5。那么3就是替換數,3所在的位置是替換點。

將3和替換點后面比3大的最小數交換,這里是4,得到[2,4,5,3,1]。然后再交換替換點后面的第一個數和最后一個數,即交換5,1。就得到下一個序列[2,4,1,3,5]

代碼如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
def arrange(pos_int):
  #將1-N放入列表tempList中,已方便處理
  tempList = [i+1 for i in range(pos_int)]
  print(tempList)
 
  while tempList != [pos_int-i for i in range(pos_int)]:
    for i in range(pos_int-1,-1,-1):
      if(tempList[i]>tempList[i-1]):
        #考慮tempList[i-1]后面比它大的元素中最小的,交換。
        minmax = min([k for k in tempList[i::] if k > tempList[i-1]])
        #得到minmax在tempList中的位置
        index = tempList.index(minmax)
        #交換
        temp = tempList[i-1]
        tempList[i-1] = tempList[index]
        tempList[index] = temp
 
        #再交換tempList[i]和最后一個元素,得到tempList的下一個排列
        temp = tempList[i]
        tempList[i] = tempList[pos_int-1]
        tempList[pos_int-1] = temp
 
        print(tempList)
        break
          
  
  
arrange(5

以上這篇非遞歸的輸出1-N的全排列實例(推薦)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持服務器之家。

延伸 · 閱讀

精彩推薦
450
主站蜘蛛池模板: 亚洲一级簧片 | 姑娘第5集高清在线观看 | 日本在线播放一区二区三区 | 精品一区二区久久久久久按摩 | 国产视频精品在线 | 在线成人影视 | www.69色| www69xxxxx| 国产精选电影免费在线观看 | 久久精品女人天堂av | 欧美在线成人影院 | 天堂在线中文资源 | 第一区免费在线观看 | 午夜视频色 | v片在线看 | 午夜在线小视频 | 亚洲午夜在线 | 国产成人强伦免费视频网站 | 久久新网址| 久久久久免费精品国产小说色大师 | 视频一区二区三区免费观看 | 国产精品成人久久久久a级 男女无遮挡羞羞视频 | 一区二区三区欧洲 | 综合精品 | 性猛交ⅹxxx乱巴西 在线播放中文 | 国产做爰全免费的视频黑人 | 日日噜噜噜噜久久久精品毛片 | 亚洲国产高清自拍 | 内地av在线 | 久久看免费视频 | 在线观看一区二区三区四区 | 在线观看国产 | 久久亚洲精品久久国产一区二区 | 午夜视频在线在免费 | 欧美日韩在线播放一区 | 一区二区三区四区免费 | 国产精品久久久久久久久久东京 | 亚洲精品一区二区三区在线看 | 日韩精品一区二区在线 | 久久艹逼| 国产中文av在线 |