【問題】
1-1000放在含有1001個元素的陣列中,只有唯一的乙個元素值重複,其它均只出現一次。 每個陣列元素只能訪問一次,設計乙個演算法,將它找出來;不用輔助儲存空間,能否設計乙個演算法實現?
【**】
#include #include #include /*根據異或法的計算方式,每兩個相異的數執行異或運算之後,結果為1;
每兩個相同的數異或之後,結果為0,任何數與0異或,結果仍為自身。
所以陣列a[n]中的n個數異或結果與1至n-1異或的結果再做異或,
得到的值即為所求。*/
int findrepeat1(int *a, int len)
return res;
}/*利用下標與單元中所儲存的內容之間的特殊關係,進行遍歷訪問單元,
一旦訪問過的單元賦予乙個標記,利用標記作為發現重複數字的關鍵。*/
int findrepeat2(int *a, int len)
return index + 1;
}int main(void)
; int res;
res = findrepeat2(a, 7);
printf("%d\n", res);
return 0;
}
如何找出陣列中唯一的重複元素?
數字1到1000放在含有1001個元素的陣列中,其中只有唯一的乙個元素值重複,其他數字均只出現一次。設計乙個演算法,講重複元素找出來,要求每個陣列元素只能訪問一次。如果不使用輔助儲存空間,能否設計乙個演算法實現?首先在看到這個題的時候,要特別注意幾個條件 1.每個陣列元素只能訪問一次。如果可以訪問多...
python實現找出陣列中唯一的重複元素
題目描述 數字 l 1000放在含有 1001 個元素的陣列中,其中只有唯一的乙個元素值重複,其他數 字均只出現一次。設計乙個演算法,將重複元素找出來,要求每個陣列元素只能訪問一次。如 果不使用輔助儲存空間,能否設計 一 個 演算法實現?分析 計算機技術與數學本身是一家 拋開計算機專業知識不提,上述...
陣列中找出任意重複元素
在0 n 1個數中找出出現次數大於一的任意乙個元素 有兩種做法 資料樣例 2,3,2,0,2,5,3 資料索引 0,1 2,3,4,5,6 因為給定範圍0 n 1,如果有重複,肯定有元素放在它所在值的索引上之後,還有與它值相同的元素跟自己的索引值對不上,樣例中如果把2放到no.2處,no.0處的2和...