知乎看到的一道題

2021-08-21 09:12:09 字數 1513 閱讀 7437

手裡有一副從1到n的牌,每次從牌堆頂取一張放桌子上,再取一張放牌堆底,直到手裡沒牌。這時候,桌子上的牌是從1到n有序的。設計程式,輸入n,輸出牌堆的順序陣列。

[12

345]

[1][

2345

][1]

[345

2][1

3][4

52][

13][

524]

[135

][24

][13

5][4

2][1

354]

[2][

1354

][2]

[135

42]原陣列

vs變換後:[1

2345

][13

542]

那麼,現陣列元素下標到原陣列下標的對映關係:

左側為元素在現陣列的下標;

右側為元素在原陣列的下標。1-

-12-

-33-

-54-

-45-

-2即原陣列為x,現陣列為y,則:x[

1]=y

[1]x

[3]=

y[2]

x[5]

=y[3

]x[4

]=y[

4]x[

2]=y

[5]

#coding: utf-8

defmi_test

(n):

hand_list = list(range(1, n+1))

table_list =

hand_list_copy = hand_list[:]

while(hand_list_copy):

if hand_list_copy:

list_map = {}

for i in range(n):

list_map[i] = table_list.index(hand_list[i])

result_list =

table_list = hand_list

for i in range(n):

return result_list

defmi_test2

(n):

hand_list = list(range(1, n + 1))

table_list =

hand_list_copy = hand_list[:]

while (hand_list_copy):

if hand_list_copy:

for i in range(n):

hand_list[table_list[i] - 1] = i + 1

return hand_list

print(mi_test(5))

# [1, 5, 2, 4, 3]

print(mi_test2(5))

# [1, 5, 2, 4, 3]

從別處看到的一道演算法附加題

題目 已知乙個陣列a n 構造乙個陣列b n 構造規則 b i a 0 a 1 a 2 a n a i 要求 1 不可以使用除法 2 時間複雜度為o n 空間複雜度為s 0 3 除遍歷使用的變數外,不可以使用其它變數 自己的解法雖然不合題意,終究是自己想的,但是極力只用1個.可以使用遍歷變數我就無恥...

網上看到一道sql查詢題所做的總結

求表aaa中剩餘的庫存量。sql語句 1 select mc,sum s1 as 剩餘數量 from select mc s1 as s1 from aaa union allselect mc s1 as s1 from bbb list group by mc 把兩個表聯合起來組成乙個結果,把出...

一道演算法題

兩個燒杯,乙個放糖乙個放鹽,用勺子舀一勺糖到鹽,攪拌均勻,然後舀一勺混合 物會放糖的燒杯,問你兩個燒杯哪個雜質多?一樣多吧 對的 為啥?是不是因為 糖和鹽本來就是均勻的 因為,就算不攪拌均,你放一勺過去,那邊放一勺不含雜質的過來,那麼都是一勺雜之 如果攪拌均勻的話也是一樣 小依 21 45 32 也...