Aktywne Wpisy
czykoniemnieslysza +127
Tak wyglądały kiedyś pociągi, teraz wydają się brzydkie ale mimo wszystko kojarzą mi się z młodzieńczym luzem i przygodą
#wykop30plus
#wykop30plus
![czykoniemnieslysza - Tak wyglądały kiedyś pociągi, teraz wydają się brzydkie ale mimo...](https://wykop.pl/cdn/c3201142/cf23ce8394c54f28de2921a6d2406fe64471c80b11566aef929423e530a8cc9a,w150.jpg)
źródło: temp_file5049304182362895122
Pobierz![MateuszLakomy](https://wykop.pl/cdn/c0834752/ee6e4e5ad253906db2f42850e20dd1b40f4cd06cf7c9af20ae0f9e4993469523,q60.jpg)
MateuszLakomy +149
Jak pewnie państwo wiedzą, kilka dni temu GUS ogłosił, że współczynnik dzietności w Polsce wyniósł w 2023 r. 1,158 dzieci na kobietę. Oznacza to, że „statystyczna” Polka w ciągu całego swojego życia urodzi mniej niż 1,2 dziecka. To najmniej w historii Polski i daleko poniżej wartości, która potrzebna jest do tzw. „zastępowalności pokoleń”, czyli liczby dzieci gwarantującej stabilność liczby ludności.
Żeby tak było, kobieta powinna urodzić średnio ok. 2,1 dziecka.
Coś o
Żeby tak było, kobieta powinna urodzić średnio ok. 2,1 dziecka.
Coś o
![MateuszLakomy - Jak pewnie państwo wiedzą, kilka dni temu GUS ogłosił, że współczynni...](https://wykop.pl/cdn/c3201142/61c37ffdf5bf3e624f9fedb95514c615ea8468edc4078bf1ab61eaeb0684ea27,w150.jpg)
źródło: 24_05_21_Urodzenia i dzietnosc 1950-2023
Pobierz
Dana jest liczba k i napis s. Znajdź długość najdłuższego podłańcucha s, który składa się z najwyżej k różnych znaków.
np.:
dla
s = "abcba", k = 2
wynikiem jest 3 (podłańcuch "bcb")#dailycodingproblem #programowanie
dodatkowo trzymam sobie aktualną ilość różnych znaków (zwiększana, jeśli w tablicy coś się zmienia z 0 na 1, zmienjszana jeśli na 0)
tworze 2 wskaźniki i lecę po tablicy i aktualizuję tablice, jeśli k mi przekroczy limit to zwiększam mniejszy licznik, jeśli nie to ten większy
private static String getMaxSubstring(String text, int k) {
char[] str = text.toCharArray();
String s = "";
Set set = new HashSet<>();
int from = 0;
int count = 0;
int finalSize = 0;
for (int i = 0; i < str.length; i++) {
private static String getMaxSubstring2(String text, int k) {
char[] str = text.toCharArray();
String s = "";
int from = 0;
int counter = k+1;
Set set = new HashSet<>();
for (int i = 0; i < str.length; i++) {
if(i+counter>str.length){
break;
}
String[] c = text.substring(i, i + counter).split("");
set.addAll(Arrays.asList(c));
if (set.size() <= k) {
from = i;
counter += 1;
i=i-1;
}
set.clear();
}
Ale no dobra, w pewnych przypadkach słownik może zajmować mniej pamięci
Przy tak ograniczonym alfabecie jak
a..z
(a nawet niech będzie0..255
) tablica jest jedynie słusznym wyborem. Znany z góry rozmiar, błyskawiczna alokacja na stosie, zero narzutu. W słowniku będziesz zwykle miał alokację node-based, zwłaszcza w takich śmiechawych gunwojęzykach jak python. Skończy się na tym, że po ~10-12Jak życie daje Ci cytry^Wograniczenia wejścia, to wykorzystaj je do ostatka.