↑↑↓↓←→←→ⒷⒶ Войти !bnw Сегодня Клубы
вход: массив целых чисел, все кроме одного встречаются ровно три раза выход: уникальный элемент время: O(n) память: O(1)
#BA2MAM / @tempest / 1249 дней назад

прост скожы што поебац хочиш, шо ты как етот нипойму
#BA2MAM/3K3 / @anonymous / 1249 дней назад
вход это когда мой сперматозоид зашел, а выход это когда через девять месяцев... давай поженимся?
#BA2MAM/DC7 / @anonymous / 1249 дней назад
Перевести в троичную систему. Сложить все таким образом, при котором каждый разряд складывается по модулю 3. Получим число y. Затем пройти по массиву и посчитать, сколько раз оно встречается. Если 1(mod 3) раз, то x=y, иначе x=y(+)y (тут такое сложение, как описано в начале). Где мои 300к/сек?
#BA2MAM/SZM / @glupovat / 1249 дней назад
@glupovat непонятно для чего понадобилось вот это: > Затем пройти по массиву и посчитать, сколько раз оно встречается. Если 1(mod 3) раз, то x=y, иначе x=y(+)y (тут такое сложение, как описано в начале).
#BA2MAM/5K6 / @tempest --> #BA2MAM/SZM / 1249 дней назад
@tempest а это я, как опытная макака, решил ещё тот случай, когда x может встретиться два раза, а не только один.
#BA2MAM/22N / @glupovat --> #BA2MAM/5K6 / 1249 дней назад
@glupovat ага. идея ок, но то что ты буквально написал работать не будет
#BA2MAM/NAV / @tempest --> #BA2MAM/22N / 1249 дней назад
@tempest а поцчиму?
#BA2MAM/JUS / @glupovat --> #BA2MAM/NAV / 1249 дней назад
@glupovat а потому что читаю жопой, всё ок.
#BA2MAM/0A8 / @tempest --> #BA2MAM/JUS / 1249 дней назад
// A = input;
v1 = undef, c1 = 0
v2 = undef, c3 = 0
v3 = undef, c3 = 0

for i in 0..len(A) {
    if v1 == undef {
        v1 = A[i]
        cnt1 = 1
    } else if {}// same for v2
    } else if {}// same for v3
    else {
        if A[i] == v1 {cnt1++}
        if A[i] == v2 {cnt2++}
        if A[i] == v3 {cnt3++}
        else {return A[i]}
    }
}
#BA2MAM/M0B / @ninesigns / 1249 дней назад
=> [1,1,1,2,2,2,3] i = 0: v1 = 1 cnt1 = 1 i = 1: v2 = 1 cnt2 = 1 i = 3: v3 = 1 cnt3 = 1 i = 4: <= 2 // а если писать код на настоящем языке, то мне не нужно будет работать интерпретатором
#BA2MAM/M1N / @tempest / 1249 дней назад

@tempest последние три if и else - взаимоисключающие

#BA2MAM/7YT / @ninesigns --> #BA2MAM/M1N / 1249 дней назад
@ninesigns в смысле? if A[i] == v1 не сработал if A[i] == v2 не сработал if A[i] == v3 не сработал else сработал, вернул 2
#BA2MAM/H9O / @tempest --> #BA2MAM/7YT / 1249 дней назад
@ninesigns println!("{}", solve([2,2,3,1,1,2,1,3,3,5,5,5,6,6,6,7,7,7,4].to_vec()));
#BA2MAM/5F2 / @tempest --> #BA2MAM/DWI / 1249 дней назад

@tempest а, тут я уже жопой условие прочитал, показалось что уникальных числа всего три (плюс одно выпадающее)

#BA2MAM/3OT / @ninesigns --> #BA2MAM/5F2 / 1249 дней назад
```c #include <stdio.h> // #include <conio.h> // ne rabotayed c GCC //using namespace std; int main(void) { printf("Laboratornaya nomber 3\n"); int massiv[] = {1, 2, 2, 3, 1, 3, 8, 7, 9, 3, 1, 4, 7, 7, 8, 9, 8, 9, 2}; size_t razmer = sizeof(massiv) / sizeof(massiv[0]); int cifra0 = ~0; int cifra1 = 0; int cifra2 = 0; // ishem cislo for (size_t i = 0; i < razmer; ++i) { int v = massiv[i]; int maska0 = cifra0 & v; int maska1 = cifra1 & v; int maska2 = cifra2 & v; cifra0 ^= maska0; cifra1 ^= maska1; cifra2 ^= maska2; cifra1 |= maska0; cifra2 |= maska1; cifra0 |= maska2; } // vivodim rezultat printf("Chislo %d vstrechaet&#39;sya tol&#39;ko odin raz\n", cifra1); // ne zarkivaem konsole srazy system("pause"); } ```
#BA2MAM/6TT / @kuzy000 / 1248 дней назад
@kuzy000 прикольно, если правда работает. сходу не понимаю, надо будет разобраться на свежую голову.
#BA2MAM/GXG / @tempest --> #BA2MAM/6TT / 1248 дней назад
@tempest Это примерно тоже самое, что в /SZM
#BA2MAM/WLB / @kuzy000 --> #BA2MAM/GXG / 1247 дней назад
ipv6 ready BnW для ведрофона BnW на Реформале Викивач Котятки

Цоперайт © 2010-2016 @stiletto.