Najdłuższa sekwencja

  • 10
  • Niedostępne
Czy to, że liczby się powtarzają, jest równoznaczne z tym, że komuś to odpowiada? Dzisiaj potrzebujemy powtórzonych liczb do ćwiczenia się w zadaniach z listami. Utwórzmy listę liczb i dodajmy 10 liczb z klawiatury. Naszym zadaniem będzie wyświetlić długość najdłuższej sekwencji powtarzających się w liście liczb.
Nie możesz wykonać tego zadania, ponieważ nie jesteś zalogowany.
Komentarze (5)
  • Popularne
  • Najnowsze
  • Najstarsze
Musisz się zalogować, aby dodać komentarz
hidden #10651964
Poziom 16
13 sierpnia 2020, 00:19
Mi się w głowie pomieszało i próbowałem napisać algorytm, który zlicza najczęściej występującą liczbę w liście, zamiast najdłuższy podciąg, ale zorientowałem się i zadanie rozwiązałem prawidłowo. Pomyślcie, albo spróbujcie napisać algorytm, który ja próbowałem pierwotnie zrobić. Jestem ciekaw Waszych rozwiązań.
Miłosz Bertman
Poziom 31 , Olsztyn, Polska
15 marca 2020, 16:48
Don't use operator to compare integers. Use method instead ;)
Damian Siadaczka
Poziom 20 , Warszawa, Poland
4 lutego 2020, 12:42
Może trochę nakombinowane ale chciałem zabezpieczyć się przed każdą opcją ale nie w tym problem Zadanie zostało w końcu zaliczone ale nie rozumiem dlaczego Nie działa poprawnie gdy ma odczynienia z liczbą powyżej 128 (dlaczego akurat ta liczba) Za to ten nie ma z tym żadnego problemu
Bartolomeo Java Developer
21 grudnia 2020, 09:35
Liczby powyżej 128 oraz poniżej -127 nie będą działać z powodu tzw. "cacheowania" pamięci :). O ile typ prymitywny int zajmuje w pamięci tylko 4 bajty, to jego wersja osłonowa Integer za sprawą tworzenia typu obiektowego zajmuje już 16 bajtów. Aby zaoszczędzić miejsca w pamięci postanowiono tak zoptymalizować proces tworzenia nowych Integerów, żeby zamiast za każdym razem tworzyć nowy obiekt, zwracana była referencja na już istniejący taki obiekt z przedziału. Miałem ten sam problem - dlatego operator "==" poprawnie zliczał ilość powtórzeń dla liczby mniejszych od 128. Ale w sytuacji gdy stworzyłem pięć liczb 145, to przestawał działać. Właśnie z ww. przyczyny - każda z tych pięciu liczb jest większa od 128, dlatego nie doszło do pięciokrotnego zwrócenia referencji na już istniejący obiekt (tak żeby "==" działał), tylko pięć razy została utworzona liczba 145, każda z różną referencją w pamięci. Dopiero equals() zrobiło robotę ;)
Marek Foto
Poziom 8 , Poland
12 września, 15:18
Kilka godzin spędziłem żeby samemu napisać algorytm (przecież o to chodzi ) i udało się, ale faktycznie zamiast użyć operatora porównania "==" trzeba zastosować metodę equals() dlatego ostatniego punkta zadania nie mogłem zaliczyć. Dzięki Bartolomeo za trafną uwagę.