iT邦幫忙

0

請假各位高手,這是陣列排序問題,請問該如何解?

  • 分享至 

  • xImage

有一個由 n 個元素組成的陣列,在 O(n^2)時間內可檢查存在重複的元素。但是,如果陣列的元素已經完成排序,要在O(n)時間內完成。請問要怎麼檢查?

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

1
不明

嗨,邦友您好:

不太確定你需要程式碼還是要想法就好,
我給你這題的思路,
既是排序過的陣列,
表示重複的元素一定相鄰

所以只要從頭到尾掃過一遍陣列,
過程中,如果有「第i個元素與第i+1個元素相同」,
表示存在重複的元素。
否則便不存在重複的元素

寫成程式的話也不難(不過我不確定你要哪種程式語言寫),
如果需要程式碼的話,
建議你可以先自己試著打過,
真的不行再貼程式碼求助,
這樣對學習也較有幫助

yiwen6761 iT邦新手 5 級 ‧ 2020-04-08 15:52:37 檢舉

請問若用C或python,寫法有何差異?

https://www.onlinegdb.com/online_c_compiler

http://pythonfiddle.com/

可以在線上試寫看看,卡關再來問。

不明 檢舉

您好:
邏輯是類似的,語法略有不同
(這邊我先假設n是陣列的長度)
c++的迴圈:

for(int i = 0; i< n; i++)
{
   //do something
}

python的迴圈:

for i in range(n):
    # do something

不知這樣有解決您的疑惑嗎?

我要發表回答

立即登入回答