在堆區申請乙個超級大的一維陣列空間,用它的下標存原陣列的數。。出現一次對應下標的值+1…覺得這樣方便的不然就是不停的遍歷…暫時沒想到其他辦法…就投機一下。
int find(int *pstr,int len,int *pa)
} return max1; }
int main(int argc, char const *argv)
int s=;
int length = sizeof(s)/sizeof(int);
int max = find(s,length,pa);
printf("max = %d\n",max);
free(pa);
pa = null;
if(null == pa)
printf("success\n");
return 0;
}
找出陣列中重複數字
題目 在乙個長度為n的陣列裡所有數字都在 0 n 1 的範圍內,找到陣列中的重複數字。思路 看到問題之後的直接想法是將輸入的陣列排序,排序後找到重複數字是一件很容易的事情。可是排序乙個長度為n的陣列需要 o nlogn 的時間。為了降低時間複雜度,考慮用雜湊表來解決。方案就是先建立乙個和陣列等長的雜...
續找出陣列中的重複數字
續上篇找出陣列中的重複數字 方法二 利用合適的演算法進行計算。首先先想到這個規律,就是如果陣列是有序的並且元素不重複,那麼第i個位置的元素應該是i。如果第i個位置的元素不是i,就說明陣列中是存在重複數字的。利用下面的演算法 比較i和arr i 如果相等,說明i arr i 在正確的位置 如果不相等,...
陣列中重複數字
題目描述 在乙個長度為n的陣列裡的所有數字都在0到n 1的範圍內。陣列中某些數字是重複的,但不知道有幾個數字是重複的。也不知道每個數字重複幾次。請找出陣列中第乙個重複的數字。例如,如果輸入長度為7的陣列,那麼對應的輸出是第乙個重複的數字2。返回描述 如果陣列中有重複的數字,函式返回true,否則返回...