ฉันมีอัลกอริทึมติดตามซึ่งพบการซ้ำและลบออก:
public static int numDuplicatesB(int[] arr) {
Sort.mergesort(arr);
int numDups = 0;
for (int i = 1; i < arr.length; i++) {
if (arr[i] == arr[i - 1]) {
numDups++;
} }
return numDups;
}
ฉันกำลังพยายามค้นหาเวลาที่ซับซ้อนที่สุดในกรณีนี้ ฉันรู้ว่าเป็น mergesort nlog(n)
และในของฉันสำหรับห่วงฉัน iterating n
กว่าชุดข้อมูลทั้งหมดเพื่อที่จะนับเป็น ฉันไม่แน่ใจว่าจะทำอย่างไรกับตัวเลขเหล่านี้ ฉันควรรวมพวกเขาเข้าด้วยกันไหม? ถ้าฉันจะทำอย่างนั้นฉันจะทำอย่างไร