Aktywne Wpisy
DrCieplak +31
Jutro usuwam konto. Fajnie się tu bawilem ale w październiku dotarło do mnie ze ten portal jest pełen zwolenników Tuska a mnie to obrzydza. Od 2 miesięcy na mikroblogu masowe fapowanie do Tuska i PO. PiS i Morawiecki wyciągnęli ten biedny postkomunistyczny kraj z bagna i zbudowali państwo dobrobytu w 6 lat. To nie tak że fani Tuska tego nie widzą, to tak że oni mają dysonans poznawczy, że jak to nie
Cechini_Mistrz +32
Masz tablicę nieujemnych liczb całkowitych gdzie każda liczba występuje dokładnie 3 razy oprócz jednej która występuje dokładnie raz. Wskaż liczbę która występuje dokładnie raz. Czas O(n) i uwaga pamięć O(1).
np. dla [3, 1, 4, 1, 1, 3, 3] -> 4
#programowanie #dailycodingproblem
uint[] array = {3, 1, 4, 1, 1, 3, 3};
Dictionary dict = new Dictionary();
foreach (uint number in array)
{
if (dict.ContainsKey(number))
{
dict[number]++;
}
else
{
dict.Add(number, 1);
}
}
uint result = dict.Where(i => i.Value == 1).Select(i => i.Key).SingleOrDefault();
Console.WriteLine(result);
Z tym stałym czasem dostępu do pamięci, w zadankach tego typu, od razu powinna się świecić lampka - "użyj hasz tejbli"! W C# to dictionary
@boo007, @kawazaki: Racja. W takim razie ośmieszony - idę spać.
Fakt
3 0010 0010
1 0001 0011
4 0011 0022
1 0001 0020
1 0001 0021
3 0010 0001
3 0010 0011 4
XAAA ma dać z powotem X. W ten sposób "dodając" kolejne liczby z tablicy wyczyszczą się wszystkie oprócz poszukiwanej.
Taką operacją jest coś w stylu xora, z tym że nie na logicznych/binarnych wartościach, ale na systemie o podstawie 3. Gdzie 1+1=2 2+1=10. Nasz "xor" działa tak 0xor1=1 1xor1=2 2xor1=0