(筆試題)如何判斷陣列中是否存在重複元素

2021-09-07 01:41:06 字數 722 閱讀 8101

假設陣列a有n個元素,元素的取值範圍為1~n,如何判定陣列是否存在重複元素?

方法1:

陣列排序,比較相鄰元素是否相等;

時間複雜度:o(nlogn),空間複雜度:o(1)

方法2:

使用bitmap(位圖),定義長度為n/8的char陣列,每個bit表示對應數字是否出現過。遍歷陣列,使用bitmap對數字是否出現過進行統計。

時間複雜度:o(n),空間複雜度:o(n)

方法3:

遍歷陣列,假設第i個位置的數字為j,則通過交換將j換到下標為j的位置上,直到所有數字都出現在自己對應的下表處,或發生了衝突。

時間複雜度:o(n),空間複雜度:o(1)

方法1:

int cmp(const void* a,const void* b)

// sort and compare

bool findduplicate(int* a,int n)

return false;

}

方法2:

// changed to the right position

bool findduplicate_1(int* a,int n)

return false;

}

筆試題 如何判斷單鏈表是否存在環

1.如何判斷是否有環?如果有兩個頭結點指標,乙個走的快,乙個走的慢,那麼若干步以後,快的指標總會超過慢的指標一圈。2.如何計算環的長度?第一次相遇 超一圈 時開始計數,第二次相遇時停止計數。3.如何判斷環的入口點 碰撞點p到連線點的距離 頭指標到連線點的距離,因此,分別從碰撞點 頭指標開始走,相遇的...

陣列判斷元素是否存在

今天看見乙個例子 判斷陣列中是否有1,如果沒有新增進去 var arrr 5,7,9,6,30 for var i 0 i後來看了感覺不對,因為不管陣列裡存不存1在都會在陣列裡加1 除非最後乙個元素為1 然後就自己試了一下,我的騷操作一波 這裡判斷是否有1為例子 function panduan a...

SQL Server 中如何判斷表是否存在

sql server資料庫中表等物件都儲存在sysobjects資料表中,臨時表被儲存於tempdb資料庫中 1.判斷普通表是否存在,可以使用object id函式,它可以根據物件名稱返回物件的id if select object id tablename is notnull select tr...