agar(hisoblash[A[i]] == 1)
Kosmik murakkablik: ().
Faraz qilaylik, raqamlar 1 dan gacha bo'lgan oraliqda. Bu
.
Machine Translated by Google
©www.CareerMonk.com
Ma'lumotlar tuzilmalari va algoritmlari osonlashtirildi
444
Qidirilmoqda | Qidiruvdagi muammolar
XOR ^= i;
X = X ^ i; /*A[] va {1, 2, ...n }dagi birinchi to‘plamning XORi*/
}
,
Yechim: Foydalanish Yechim: XOROperation Operation Operation yordamida. Takrorlanuvchi
raqamlar va massiv va 1 dan barcha butun sonlar bo'lsin
1 bo'lsa, biz qila olamiz
/* Endi elementlarni eng oÿngdagi toÿplamni taqqoslash orqali ikkita toÿplamga
ajrating */ for(i = 0; i <
n; i++) {
Y = Y ^ i; /*A[] va {1, 2, ...n } dagi ikkinchi toÿplamning XORi */
void PrintRepeatedElements (int A[], int hajmi) {
X = X^ A[i]; /*A[] dagi birinchi to‘plamning XOR */
printf(“%d va %d”,X, Y);
Faraz qilaylik, 1 dan kimga
bo'lgan bit
agar biz barcha elementlarni xor qilsak
/* A[]*/ for(int i = 0; i < n; i++) dagi barcha
elementlarning XOR ni hisoblash
Y = Y ^ A[i]; /*A[] dagi ikkinchi to‘plamning XOR */
keyin natija
/* Barcha elementlarning XOR ni hisoblash {1, 2 ..n}
*/ for(i = 1; i <= n; i++)
agar(men va o'ng_most_set_bit_no)
boshqa
.
/* right_most_set_bit_no ichida eng o'ng o'rnatilgan bitni oling */
right_most_set_bit_no = XOR & ~( XOR -1);
va orasidagi turli bitlarga mos keladi. massivdagi barcha elementlar
va barcha butun sonlar bitlari 1 ga teng. Natijada va
dan biri bo'ladi.
Do'stlaringiz bilan baham: |