找出陣列中重複的數字。
在乙個長度為 n 的陣列 nums 裡的所有數字都在 0~n-1 的範圍內。陣列中某些數字是重複的,但不知道有幾個數字重複了,也不知道每個數字重複了幾次。請找出陣列中任意乙個重複的數字。
示例 1:
輸入:
[2, 3, 1, 0, 2, 5, 3]
輸出:2 或 3
限制:
2 <= n <= 100000
使用set,遍歷陣列,如果set中存在該元素就返回,否則新增到set中
public int findrepeatnumber(int nums)
}return -1;
}
對陣列排序,相同的元素在相鄰位置,如果有則返回
public int findrepeatnumber(int nums)
}return -1;
}
利用所有數字都在 0~n-1 的範圍內的條件,用乙個額外的陣列,對每個值就在對應位置+1,當》1的時候返回
public int findrepeatnumber(int nums)
}return -1;
}
將對應的數值放入陣列中的對應位置,如果有重複的返回
public int findrepeatnumber(int nums)
//如果重複,返回
if (nums[i]==nums[nums[i]])
//交換
int temp = nums[nums[i]];
nums[nums[i]] = nums[i];
nums[i] = temp;
//交換之後需要原地比較一次
i--;
}return -1;
}
劍指offer03 陣列中重複的數字
在乙個長度為 n 的陣列 nums 裡的所有數字都在 0 n 1 的範圍內。陣列中某些數字是重複的,但不知道有幾個數字重複了,也不知道每個數字重複了幾次。請找出陣列中任意乙個重複的數字。示例 1 輸入 2,3,1,0,2,5,3 輸出 2 或 3限制 2 n 100000 首先拿到這道題最先想到的是...
劍指Offer03 陣列中重複的數字
劍指offer典型題整理 爭取做最好的題解 題目描述 在乙個長度為 n 的陣列 nums 裡的所有數字都在 0 n 1 的範圍內。陣列中某些數字是重複的,但不知道有幾個數字重複了,也不知道每個數字重複了幾次。請找出陣列中任意乙個重複的數字。示例 輸入 2,3,1,0,2,5,3 輸出 2 或 3 限...
劍指offer 03陣列中重複的數字
找出陣列中重複的數字。在乙個長度為 n 的陣列 nums 裡的所有數字都在 0 n 1 的範圍內。陣列中某些數字是重複的,但不知道有幾個數字重複了,也不知道每個數字重複了幾次。請找出陣列中任意乙個重複的數字。示例 1 輸入 2,3,1,0,2,5,3 輸出 2 或 3 限制 2 n 100000 首...