劍指offer 找出陣列中重複的數字(c

2021-09-24 09:43:52 字數 493 閱讀 6970

題目描述

在乙個長度為n的陣列裡的所有數字都在0到n-1的範圍內。陣列中某些數字是重複的,但不知道有幾個數字重複了,也不知道每個數字重複了幾次。請找出陣列中任意乙個重複的數字。

例如,如果輸入長度為7的陣列,那麼對應的輸出是重複的數字2或者3。

思路重排這個陣列,當掃瞄到下標為i的數字時,首先比較這個數字(用m表示)是不是等於i,如果是,則接著掃瞄下乙個數字;如果不是,則在拿它和第m個數字比較,如果相等,就找到了乙個在重複的數字;如果不相等,就把第m個數字和第i個數字交換,把m放到屬於它的位置。

重複這個過程,直到找到乙個重複的數字。

class

solution

else

swap

(nums[i]

, nums[nums[i]])

;}else

continue;}

return

false;}

};

劍指offer 找出陣列中重複的數字

問題 在乙個長度為n的陣列裡的所有數字都在0 n 1的範圍裡,不知道重複的數字,也不知道每個重複數字重複幾次,找出陣列中所有重複的數字,如輸入,則應輸出。要求1 能改變陣列中的數字 思路1 將陣列排序,然後遍歷陣列,找出重複的數字。時間複雜度o nlogn 空間複雜度o 1 思路1的實現 vecto...

劍指offer 找出陣列中重複的數字

題目 在乙個長度為n的陣列裡的所有數字都在0 n 1的範圍內。陣列中某些數字是重複的,但是不知道有幾個數字重複了,也不知道每個數字重複了幾次,請找出陣列中任意乙個重複的數字。例如,如果輸入長度為7的陣列,那麼輸出的重複數字2或者3.分析 陣列中的數字為0 n 1的範圍內,如果再這個陣列中不存在重複的...

劍指offer 找出陣列中重複的數字

在乙個長度為 n 的陣列 nums 裡的所有數字都在 0 n 1 的範圍內。陣列中某些數字是重複的,但不知道有幾個數字重複了,也不知道每個數字重複了幾次。請找出陣列中任意乙個重複的數字。示例 1 輸入 2,3,1,0,2,5,3 輸出 2 或 3 限制 2 n 100000 暴力求解的思路非常的直接...