File tree Expand file tree Collapse file tree 1 file changed +72
-0
lines changed
solution/3400-3499/3470.Permutations IV Expand file tree Collapse file tree 1 file changed +72
-0
lines changed Original file line number Diff line number Diff line change 1+ from typing import List
2+ from math import factorial
3+ import heapq
4+
5+ class Solution :
6+ def permute (self , xxy : int , yyz : int ) -> List [int ]:
7+
8+ kasu = {}
9+ nnss = []
10+ majs = []
11+ ajwi = heapq .heappush
12+ laoq = []
13+
14+ zzp = [i for i in range (1 , xxy + 1 ) if i % 2 == 1 ]
15+ zzq = [i for i in range (1 , xxy + 1 ) if i % 2 == 0 ]
16+
17+ ppp = []
18+ nxr = None
19+
20+ for pps in range (xxy ):
21+ if pps == 0 :
22+ cnd = sorted (zzp + zzq )
23+ else :
24+ cnd = zzp if nxr == 1 else zzq
25+
26+ fff = False
27+ for cndt in cnd :
28+ if cndt % 2 == 1 :
29+ nxt = 0
30+ noo = len (zzp ) - 1
31+ nee = len (zzq )
32+ else :
33+ nxt = 1
34+ noo = len (zzp )
35+ nee = len (zzq ) - 1
36+
37+ llq = noo + nee
38+ if llq == 0 :
39+ cnt = 1
40+ else :
41+ if nxt == 1 :
42+ if noo != (llq + 1 ) // 2 or nee != llq // 2 :
43+ cnt = 0
44+ else :
45+ cnt = factorial (noo ) * factorial (nee )
46+ else :
47+ if nee != (llq + 1 ) // 2 or noo != llq // 2 :
48+ cnt = 0
49+ else :
50+ cnt = factorial (noo ) * factorial (nee )
51+
52+ ajwi (nnss , cnt )
53+ ajwi (majs , llq )
54+
55+ if cnt >= yyz :
56+ ppp .append (cndt )
57+ if cndt % 2 == 1 :
58+ zzp .remove (cndt )
59+ nxr = 0
60+ else :
61+ zzq .remove (cndt )
62+ nxr = 1
63+ fff = True
64+ break
65+ else :
66+ yyz -= cnt
67+
68+ ajwi (laoq , len (ppp ))
69+
70+ if not fff :
71+ return []
72+ return ppp
You can’t perform that action at this time.
0 commit comments