Aktywne Wpisy

mickpl +1596

cytmirka +207
Ostatnie zdjęcie Rudzika, zrobiłam je kilkanaście minut przed eutanazją… To była moja pierwsza eutanazja podopiecznego psiaka.
Skąd się wziął Rudzik? Jakiś czas temu jego opiekun został oddany do domu starców, a rodzina niestety nie poczuła się ani trochę odpowiedzialna za Rudzika i drugiego psiaka, więc obydwoje trafili pod naszą opiekę.
Rudzik miał chore nerki i kamień na zębach, usunięcie kamienia miało mieć miejsce teraz w piątek, ale już nie doczekał. Według weterynarz i tak nie wybudziłby się po zabiegu, bo wyszło, że serduszko również słabe.
Stan
Skąd się wziął Rudzik? Jakiś czas temu jego opiekun został oddany do domu starców, a rodzina niestety nie poczuła się ani trochę odpowiedzialna za Rudzika i drugiego psiaka, więc obydwoje trafili pod naszą opiekę.
Rudzik miał chore nerki i kamień na zębach, usunięcie kamienia miało mieć miejsce teraz w piątek, ale już nie doczekał. Według weterynarz i tak nie wybudziłby się po zabiegu, bo wyszło, że serduszko również słabe.
Stan
źródło: Zdjęcie z biblioteki
Pobierz



Robię zadania z codility. Zatrzymałem się na 2.2. chodzi tam o wyszukanie z tablicy jednej liczby, która się nie powtarza ani razu. Tablica składa się z nieparzystej liczby liczb, wszystkie się dublują oprócz jednej.
Mój algorytm:
- posortowanie tablicy od najmniejszej liczby do największej
- Sprawdzenie, czy pierwsza cyfra jest taka sama, jak następna ->
a) jeśli nie, wynik to pierwsza liczba
b) jeśli tak ->
c) sprawdzenie, czy ostatnia liczba jest taka sama, jak poprzednia -> jeśli nie, wynik to ostatnia liczba
Następnie przeszukanie tablicy od pierwszego indeksu i wyszukanie liczby, która jest inna niż liczba poprzednia i inna niż liczba następna.
Niestety niektóre testy nie przechodzą i wydajność jest na 60%. Co robię źle i jak usprawnić algorytm?
Komentarz usunięty przez autora
@YourDoom: sortowanie zajmuje o wiele więcej czasu niż utworzenie obiektu.
Jakiś gówniany pomysł co mi przyszedł na szybko:
1. Przeleć po całej tablicy, dodaj każdy element do Set
2. Dodając do set, sprawdz czy taki element juz istnieje metodą contains() (stały czas dostępu), jeśli już istnieje usuń (stały czas usunięcia)
3. Jak przelecisz całą tablice zostanie ci 1 element,
@zapalara: Kosmetycznie można to poprawić i zamiast sprawdzać contains() zawsze dodawać i jeśli metoda add zwróci true, wtedy usuwać.
@zapalara: nie #!$%@? tylko prawidłowe. Sprawdzanie hash mapy to dokładnie 1 a nie n.
@WhiskyRomeo: kluczy 1, wartości n
PS można to bez struktur danych zrobić, ale jeszcze muszę sprawdzić
@63274682374: Wystarczy użyć xora.
int[] i = new int[]{2,4,5,6,2,8,5, 4,6 , 7 ,7 };int result
Też obstawiam że to się da bez struktur zrobić, jakiś fajny trick, nie wpadłem na nic na szybko. Jakbys cos wykminil to podziel sie
Komentarz usunięty przez autora