劍指offer 查詢陣列中重複的數

2021-08-21 05:39:27 字數 432 閱讀 9639

題3、找出陣列中重複的數字,例如,輸出長度為7的陣列,找出陣列中重複的數字

解題思路:法一:先給陣列進行排序,從排序好的陣列中找到重複的數字,時間複雜度o(nlogn)

法二 :利用雜湊表,如果雜湊表裡面 沒有此數字,就把他加入雜湊表,如果有,就找到了,提高了時間效率,時間複雜度是o(n),但他是以乙個大小為o(n)的雜湊表為代價的

法三:比較array[0] ?= 0,如果相等,繼續掃瞄下乙個數字,如果不相等,比較array[0] ?= array[array[0]] ,如果相等,則表明重複,如果不想等,則array[0]與array[array[0]]進行交換。總的時間複雜度是o(n).

4、為節省記憶體,c/c++把常量字串放到乙個單獨的記憶體區域,當幾個指標賦值給相同的常量字串時,他們實際上會指向相同的記憶體位址

但是用常量記憶體初始化陣列,情況就不同。

劍指 offer(查詢陣列中重複的數字)

題目描述 在乙個長度為 n 的陣列裡的所有數字都在 0 到 n 1 的範圍內。陣列中某些數字是重複的,但不知道有幾個數字是重複的,也不知道每個數字重複幾次。請找出陣列中任意乙個重複的數字。解題思路 要求複雜度為 o n o 1 也就是時間複雜度 o n 空間複雜度 o 1 因此不能使用排序的方法,也...

劍指offer 查詢陣列中重複的數字

在乙個長度為 n 的陣列 nums 裡的所有數字都在 0 n 1 的範圍內。陣列中某些數字是重複的,但不知道有幾個數字重複了,也不知道每個數字重複了幾次。請找出陣列中任意乙個重複的數字。示例 1 輸入 2,3,1,0,2,5,3 輸出 2 或 3 限制 2 n 100000 第一種解決方法使用字典依...

劍指Offer (陣列)陣列中重複的數字

題目鏈結 題目描述 在乙個長度為n的陣列裡的所有數字都在0到n 1的範圍內。陣列中某些數字是重複的,但不知道有幾個數字是重複的。也不知道每個數字重複幾次。請找出陣列中任意乙個重複的數字。例如,如果輸入長度為7的陣列,那麼對應的輸出是第乙個重複的數字2。解決方法class solution retur...