作者sunneo (艾斯寇德)
站內Programming
標題Re: [問題] 面試遇到的題目
時間Wed Aug 13 07:32:02 2008
我提供一下我會嘗試的做法,首先我先產生31個大小的陣列,裡面有數字0~30
以及一個back,為陣列最後一個元素的索引位置。
如果back為0 則回傳0
n = 產生亂數[ 1 , back ];
回傳值 = 陣列[ n ];
對調(陣列[ n ] 跟陣列[ back ]);
--back;
如果back為0,則清空陣列。
回傳回傳值;
外面檢查回傳值是否為0,0表示座位已滿。
這是在座位沒有0號的情形。
有0號的話則以丟出exception的方式。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.227.225.9
※ 編輯: sunneo 來自: 61.227.225.9 (08/13 07:43)
1F:推 liangjr:我也會這樣寫 存成char array也不一定會比 76.95.86.77 08/13 07:49
2F:→ liangjr:boolean array佔空間 76.95.86.77 08/13 07:49
※ 編輯: sunneo 來自: 61.227.225.9 (08/13 08:05)
3F:→ joetsai:座位是從1~30號 又忘了寫 =.=" 122.125.229.18 08/13 08:33
4F:→ sunneo:不不不..我知道是1~30 61.227.225.9 08/13 09:09
5F:→ sunneo:只是保留0作為back的最後一號 61.227.225.9 08/13 09:10
6F:→ sunneo:如果取得0表示座位已滿 61.227.225.9 08/13 09:10
7F:→ sunneo:你自己用這做法run一次就知道了. 61.227.225.9 08/13 09:11
8F:→ joetsai:嗯嗯 我懂你的意思 但是我不瞭解 你們怎 122.125.232.12 08/13 10:14
9F:→ joetsai:怎麼避免選到重複的位子...? 122.125.232.12 08/13 10:14
10F:→ sunneo:把選到的位置跟最後元素對調並且popback 61.227.225.9 08/13 10:15
11F:→ sunneo:這樣就相當於把選到的位置從候選拿掉 61.227.225.9 08/13 10:15
12F:推 slalala:好方法啊!!!QQ 61.59.146.237 08/13 11:15