Java | LeetCode
Open in Telegram
Π‘Π°ΠΉΡ: https://easyoffer.ru/ ΠΡΠ΅ ΠΊΠ°Π½Π°Π»Ρ: t.me/+xGeAw6ckJ4liYzQy ΠΠΎΠ½ΡΠ°ΠΊΡ Π΄Π»Ρ ΡΠ΅ΠΊΠ»Π°ΠΌΡ: @easyoffer_adv
Show more6 521
Subscribers
-324 hours
-207 days
-4730 days
Posts Archive
6 522
ΠΠΈΡΠ°ΠΠΈΡΠΊΠΈ - ΠΌΠΎΡΠ½ΡΠΉ Π·Π°ΡΡΠ΄ Π΄Π΅ΡΡΠΊΠΎΠ³ΠΎ ΠΈΠΌΠΌΡΠ½ΠΈΡΠ΅ΡΠ°!
ΠΠΈΠΌΠΎΠΉ Π΄Π΅ΡΡΠΊΠΈΠΉ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΌ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π½ΡΠΆΠ΄Π°Π΅ΡΡΡ Π² ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ΅. Π§ΡΠΎΠ±Ρ ΡΠ΅ΠΆΠ΅ Π±ΠΎΠ»Π΅ΡΡ, ΡΠΊΡΠ΅ΠΏΠ»ΡΠΉΡΠ΅ ΠΈΠΌΠΌΡΠ½ΠΈΡΠ΅Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠ³ΠΎ ΠΏΠΈΡΠ°Π½ΠΈΡ, ΡΠ΅ΠΆΠΈΠΌΠ° Π΄Π½Ρ, Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎΠ³ΠΎ ΡΠ½Π°, ΠΏΡΠΎΠ³ΡΠ»ΠΎΠΊ Π½Π° ΡΠ²Π΅ΠΆΠ΅ΠΌ Π²ΠΎΠ·Π΄ΡΡ
Π΅, Π°ΠΊΡΠΈΠ²Π½ΡΡ
ΠΏΠΎΠ΄Π²ΠΈΠΆΠ½ΡΡ
ΠΈΠ³Ρ Π½Π° ΡΠ»ΠΈΡΠ΅ ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ΅ΠΌΠ° Π²ΠΈΡΠ°ΠΌΠΈΠ½ΠΎΠ² ΠΈ ΠΌΠΈΠ½Π΅ΡΠ°Π»ΠΎΠ².
β¨ ΠΠΈΡΠ°ΠΠΈΡΠΊΠΈ Smart Fruits IMMUNO+ ΠΏΠΎΠΌΠΎΠ³ΡΡ ΡΡΡΡΠ°Π½ΠΈΡΡ Π·ΠΈΠΌΠ½ΠΈΠΉ Π΄Π΅ΡΠΈΡΠΈΡ ΠΏΠΎΠ»Π΅Π·Π½ΡΡ
ΠΌΠΈΠΊΡΠΎΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ².
β
Π Π½ΠΈΡ
ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡ Π²ΡΠ΅ Π²Π°ΠΆΠ½ΡΠ΅ Π²ΠΈΡΠ°ΠΌΠΈΠ½Ρ ΠΈ ΠΌΠΈΠ½Π΅ΡΠ°Π»Ρ, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠΊΡΡΡΠ°ΠΊΡ ΠΎΠ±Π»Π΅ΠΏΠΈΡ
ΠΈ Π΄Π»Ρ ΡΠΊΡΠ΅ΠΏΠ»Π΅Π½ΠΈΡ ΠΈ Π·Π°ΡΠΈΡΡ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΌΠ° Π² ΡΠ΅Π·ΠΎΠ½ ΠΏΡΠΎΡΡΡΠ΄ ΠΈ Π²ΠΈΡΡΡΠΎΠ².
β
ΠΠΈΡΠ°ΠΠΈΡΠΊΠΈ ΡΠ½ΠΈΠΆΠ°ΡΡ ΡΠΈΡΠΊ ΡΠ°Π·Π²ΠΈΡΠΈΡ ΠΏΡΠΎΡΡΡΠ΄Π½ΡΡ
Π·Π°Π±ΠΎΠ»Π΅Π²Π°Π½ΠΈΠΉ.
β
Π‘Π΄Π΅Π»Π°Π½Ρ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π½Π°ΡΡΡΠ°Π»ΡΠ½ΡΡ
ΡΠΎΠΊΠΎΠ², Π±Π΅Π· ΠΊΡΠ°ΡΠΈΡΠ΅Π»Π΅ΠΉ ΠΈ Π²ΠΊΡΡΠΎΠ²ΡΡ
Π΄ΠΎΠ±Π°Π²ΠΎΠΊ.
ΠΠΈΡΠ°ΠΌΠΈΡΠΊΠΈ Smart Fruits - Π΄Π΅ΡΠΈ ΠΎΠ±ΠΎΠΆΠ°ΡΡ, ΠΌΠ°ΠΌΡ - Π΄ΠΎΠ²Π΅ΡΡΡΡ!
ΠΠ΅ΡΠ΅ΠΉΡΠΈ Π½Π° ΡΠ°ΠΉΡ
ΠΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ Π»Π΅ΠΊΠ°ΡΡΡΠ²ΠΎΠΌ.
#ΡΠ΅ΠΊΠ»Π°ΠΌΠ°
vitamishki.ru
Π ΡΠ΅ΠΊΠ»Π°ΠΌΠΎΠ΄Π°ΡΠ΅Π»Π΅
6 522
ΠΠ°Π΄Π°ΡΠ°: 722. Remove Comments
Π‘Π»ΠΎΠΆΠ½ΠΎΡΡΡ: medium
ΠΠ°Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π½Π° C++, ΡΠ΄Π°Π»ΠΈΡΠ΅ ΠΈΠ· Π½Π΅Π΅ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ. ΠΡΡ
ΠΎΠ΄Π½ΡΠΉ ΡΠ΅ΠΊΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΌΠ°ΡΡΠΈΠ² ΡΡΡΠΎΠΊ source, Π³Π΄Π΅ source[i] - ΡΡΠΎ i-Ρ ΡΡΡΠΎΠΊΠ° ΠΈΡΡ
ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°. ΠΡΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΡΠ°Π·Π±ΠΈΠ΅Π½ΠΈΡ ΠΈΡΡ
ΠΎΠ΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ ΠΈΡΡ
ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠΌ Π½ΠΎΠ²ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ '\n'. Π C++ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π΄Π²Π° ΡΠΈΠΏΠ° ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π²: ΡΡΡΠΎΡΠ½ΡΠ΅ ΠΈ Π±Π»ΠΎΡΠ½ΡΠ΅. Π‘ΡΡΠΎΠΊΠ° "//" ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΡΡΡΠΎΡΠ½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΎΠ½ ΠΈ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ ΡΠΏΡΠ°Π²Π° ΠΎΡ Π½Π΅Π³ΠΎ Π² ΡΠΎΠΉ ΠΆΠ΅ ΡΡΡΠΎΠΊΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°ΡΡΡΡ. Π‘ΡΡΠΎΠΊΠ° "/*" ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ Π±Π»ΠΎΡΠ½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π²ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ Π΄ΠΎ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ (Π½Π΅ ΠΏΠ΅ΡΠ΅ΠΊΡΡΠ²Π°ΡΡΠ΅Π³ΠΎΡΡ) Π²Ρ
ΠΎΠΆΠ΄Π΅Π½ΠΈΡ "*/" Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°ΡΡΡΡ. (ΠΠ΄Π΅ΡΡ Π²Ρ
ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΡΡ Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅ ΡΡΠ΅Π½ΠΈΡ: ΡΡΡΠΎΠΊΠ° Π·Π° ΡΡΡΠΎΠΊΠΎΠΉ ΡΠ»Π΅Π²Π° Π½Π°ΠΏΡΠ°Π²ΠΎ.) Π§ΡΠΎΠ±Ρ Π±ΡΠ»ΠΎ ΠΏΠΎΠ½ΡΡΠ½ΠΎ, ΡΡΡΠΎΠΊΠ° "/*/" Π΅ΡΠ΅ Π½Π΅ Π·Π°Π²Π΅ΡΡΠ°Π΅Ρ Π±Π»ΠΎΡΠ½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΠ΅ Π±ΡΠ΄Π΅Ρ ΠΏΠ΅ΡΠ΅ΠΊΡΡΠ²Π°ΡΡ Π½Π°ΡΠ°Π»ΠΎ. ΠΠ΅ΡΠ²ΡΠΉ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ ΠΈΠΌΠ΅Π΅Ρ ΠΏΡΠΈΠΎΡΠΈΡΠ΅Ρ Π½Π°Π΄ ΠΎΡΡΠ°Π»ΡΠ½ΡΠΌΠΈ.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ ΡΡΡΠΎΠΊΠ° "//" Π²ΡΡΡΠ΅ΡΠ°Π΅ΡΡΡ Π² Π±Π»ΠΎΡΠ½ΠΎΠΌ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ, ΠΎΠ½Π° ΠΈΠ³Π½ΠΎΡΠΈΡΡΠ΅ΡΡΡ. ΠΠ½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ, Π΅ΡΠ»ΠΈ ΡΡΡΠΎΠΊΠ° "/*" Π²ΡΡΡΠ΅ΡΠ°Π΅ΡΡΡ Π² ΡΡΡΠΎΡΠ½ΠΎΠΌ ΠΈΠ»ΠΈ Π±Π»ΠΎΡΠ½ΠΎΠΌ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ, ΠΎΠ½Π° ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ³Π½ΠΎΡΠΈΡΡΠ΅ΡΡΡ. ΠΡΠ»ΠΈ ΠΏΠΎΡΠ»Π΅ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½Π°Ρ ΡΡΡΠΎΠΊΠ° ΠΊΠΎΠ΄Π° ΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΏΡΡΡΠΎΠΉ, Π²Ρ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡ ΡΡΡ ΡΡΡΠΎΠΊΡ: ΠΊΠ°ΠΆΠ΄Π°Ρ ΡΡΡΠΎΠΊΠ° Π² ΡΠΏΠΈΡΠΊΠ΅ ΠΎΡΠ²Π΅ΡΠΎΠ² Π±ΡΠ΄Π΅Ρ Π½Π΅ΠΏΡΡΡΠΎΠΉ.
ΠΡΠΈΠΌΠ΅Ρ:
Input: source = ["/*Test program */", "int main()", "{ ", " // variable declaration ", "int a, b, c;", "/* This is a test", " multiline ", " comment for ", " testing */", "a = b + c;", "}"]
Output: ["int main()","{ "," ","int a, b, c;","a = b + c;","}"]
π¨βπ» ΠΠ»Π³ΠΎΡΠΈΡΠΌ:
1β£Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΡΡΡΠΎΠΊΡ buffer Π΄Π»Ρ Ρ
ΡΠ°Π½Π΅Π½ΠΈΡ ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΡΡΡΠΎΠΊΠΈ ΠΊΠΎΠ΄Π° Π±Π΅Π· ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π² ΠΈ ΡΠ»Π°Π³ inBlock Π΄Π»Ρ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΡ, Π½Π°Ρ
ΠΎΠ΄ΠΈΠΌΡΡ Π»ΠΈ ΠΌΡ Π²Π½ΡΡΡΠΈ Π±Π»ΠΎΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡ.
2β£ΠΡΠΎΠΉΠ΄ΠΈΡΠ΅ ΠΏΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅ source ΠΈ ΠΏΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ ΡΠΈΠΌΠ²ΠΎΠ»Ρ Π² ΡΡΠΎΠΉ ΡΡΡΠΎΠΊΠ΅, ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Ρ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ: ΠΡΠ»ΠΈ Π²ΡΡΡΠ΅ΡΠ΅Π½ Π±Π»ΠΎΡΠ½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ /*, ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ ΡΠ»Π°Π³ inBlock ΠΈ ΠΏΡΠΎΠΏΡΡΡΠΈΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ Π΄ΠΎ */. ΠΡΠ»ΠΈ Π²ΡΡΡΠ΅ΡΠ΅Π½ ΡΡΡΠΎΡΠ½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ //, ΠΏΡΠ΅ΠΊΡΠ°ΡΠΈΡΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΡΡΡΠΎΠΊΠΈ. ΠΡΠ»ΠΈ Π½Π΅ Π½Π°Ρ
ΠΎΠ΄ΠΈΠΌΡΡ Π²Π½ΡΡΡΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡ, Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ» Π² buffer.
3β£ΠΠΎΡΠ»Π΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π²ΡΠ΅Ρ
ΡΡΡΠΎΠΊ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ Π½Π΅ΠΏΡΡΡΡΠ΅ ΡΡΡΠΎΠΊΠΈ ΠΈΠ· buffer Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ.
π Π Π΅ΡΠ΅Π½ΠΈΠ΅:
import java.util.*;
public class Solution {
public List<String> removeComments(String[] source) {
boolean inBlock = false;
StringBuilder buffer = new StringBuilder();
List<String> result = new ArrayList<>();
for (String line : source) {
int i = 0;
if (!inBlock) buffer = new StringBuilder();
while (i < line.length()) {
if (!inBlock && i + 1 < line.length() && line.charAt(i) == '/' && line.charAt(i + 1) == '*') {
inBlock = true;
i++;
} else if (inBlock && i + 1 < line.length() && line.charAt(i) == '*' && line.charAt(i + 1) == '/') {
inBlock = false;
i++;
} else if (!inBlock && i + 1 < line.length() && line.charAt(i) == '/' && line.charAt(i + 1) == '/') {
break;
} else if (!inBlock) {
buffer.append(line.charAt(i));
}
i++;
}
if (!inBlock && buffer.length() > 0) {
result.add(buffer.toString());
}
}
return result;
}
}
Π‘ΡΠ°Π²Ρ π ΠΈ Π·Π°Π±ΠΈΡΠ°ΠΉ π ΠΠ°Π·Ρ Π·Π½Π°Π½ΠΈΠΉ6 522
π¨π¨π¨π¨π¨π¨π¨π¨π¨π¨
ΠΠ°Π½Π°Π»Ρ Ρ Junior IT Π²Π°ΠΊΠ°Π½ΡΠΈΡΠΌΠΈ
ΠΈ ΡΡΠ°ΠΆΠΈΡΠΎΠ²ΠΊΠ°ΠΌΠΈ
ΠΠΎΠ΄ΠΏΠΈΡΡΠ²Π°ΠΉΡΡ ΠΈ Π·Π°Π±ΠΈΡΠ°ΠΉ ΡΠ²ΠΎΠΉ ΠΎΡΡΠ΅Ρ π€
1. Π‘ΡΠ°ΠΆΠΈΡΠΎΠ²ΠΊΠΈ ΠΈ Π²Π°ΠΊΠ°Π½ΡΠΈΠΈ ΠΏΠΎ Π ΠΎΡΡΠΈΠΈ ΠΈ ΠΌΠΈΡΡ
2. IT Π²Π°ΠΊΠ°Π½ΡΠΈΠΈ ΠΏΠΎ Π‘ΠΠ
3. IT ΡΡΠ°ΠΆΠΈΡΠΎΠ²ΠΊΠΈ ΠΏΠΎ Π‘ΠΠ
4. ΠΠ-Π°ΡΡΠΈΡΡΠ΅Π½Ρ Π΄Π»Ρ Π°Π²ΡΠΎΠΎΡΠΊΠ»ΠΈΠΊΠΎΠ²
5. DIGITAL ΠΈ IT ΡΡΠ°ΠΆΠΈΡΠΎΠ²ΠΊΠΈ ΠΈ Π²Π°ΠΊΠ°Π½ΡΠΈΠΈ
6. IT ΡΡΠ°ΠΆΠΈΡΠΎΠ²ΠΊΠΈ Π² ΡΠΎΠΏΠΎΠ²ΡΡ
ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡΡ
ΠΌΠΈΡΠ°
7. Π£Π΄Π°Π»ΡΠ½Π½ΡΠ΅ IT Π²Π°ΠΊΠ°Π½ΡΠΈΠΈ ΠΈ ΡΡΠ°ΠΆΠΈΡΠΎΠ²ΠΊΠΈ
8. Python Π²Π°ΠΊΠ°Π½ΡΠΈΠΈ ΠΈ ΡΡΠ°ΠΆΠΈΡΠΎΠ²ΠΊΠΈ
9. ΠΠΠΠ’ΠΠ₯ Π²Π°ΠΊΠ°Π½ΡΠΈΠΈ ΠΈ ΡΡΠ°ΠΆΠΈΡΠΎΠ²ΠΊΠΈ
10. Design Π²Π°ΠΊΠ°Π½ΡΠΈΠΈ ΠΈ ΡΡΠ°ΠΆΠΈΡΠΎΠ²ΠΊΠΈ
11. QA Π²Π°ΠΊΠ°Π½ΡΠΈΠΈ ΠΈ ΡΡΠ°ΠΆΠΈΡΠΎΠ²ΠΊΠΈ
12. Junior Π²Π°ΠΊΠ°Π½ΡΠΈΠΈ ΠΈ ΡΡΠ°ΠΆΠΈΡΠΎΠ²ΠΊΠΈ
13. Frontend Π²Π°ΠΊΠ°Π½ΡΠΈΠΈ ΠΈ Π²ΠΎΠΏΡΠΎΡΡ ΡΠΎΠ±Π΅ΡΠΎΠ²
14. ΠΠ°ΠΊΠ°Π½ΡΠΈΠΈ ΠΈ ΡΡΠ°ΠΆΠΈΡΠΎΠ²ΠΊΠΈ Π΄Π»Ρ Π°Π½Π°Π»ΠΈΡΠΈΠΊΠΎΠ²
15. ΠΠ°ΠΊΠ°Π½ΡΠΈΠΈ Π² ΡΡΡΡΠΊΠΈΡ
ΡΡΠ°ΡΡΠ°ΠΏΠ°Ρ
Π·Π° Π³ΡΠ°Π½ΠΈΡΠ΅ΠΉ
16. ΠΠ°ΠΊΠ°Π½ΡΠΈΠΈ ΠΈ ΡΡΠ°ΠΆΠΈΡΠΎΠ²ΠΊΠΈ Π΄Π»Ρ DevOps
17. ΠΠ°ΠΊΠ°Π½ΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΡ
Π½Π΅Ρ Π½Π° Π₯Π₯.Π Π£
6 522
ΠΠ½ΡΠ΅ΡΠ½Π΅Ρ-ΠΌΠ°Π³Π°Π·ΠΈΠ½ Π΄Π»Ρ ΡΠ°Π΄ΠΎΠ²ΠΎΠ΄ΠΎΠ²
ΠΠ½ΡΠ΅ΡΠ½Π΅Ρ-ΠΌΠ°Π³Π°Π·ΠΈΠ½ ΡΠ°ΡΡ Π΄Π»Ρ ΡΠ°ΡΡΠ°Π΄Ρ ΠΈ ΡΠ°ΠΆΠ΅Π½ΡΠ΅Π², ΠΎΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Ρ I ΠΠΏΡ/ΡΠΎΠ·Π½ΠΈΡΠ° I ΠΠΎΡΡΠ°Π²ΠΊΠ° ΠΏΠΎ Π ΠΎΡΡΠΈΠΈ I Π‘Π°ΠΌΠΎΠ²ΡΠ²ΠΎΠ· Π² Π‘ΠΠ± I ΠΠ°ΠΊΠ°Π·ΡΠ²Π°ΠΉΡΠ΅!
ΠΠ΅ΡΠ΅ΠΉΡΠΈ Π½Π° ΡΠ°ΠΉΡ
#ΡΠ΅ΠΊΠ»Π°ΠΌΠ°
paketrassada.ru
Π ΡΠ΅ΠΊΠ»Π°ΠΌΠΎΠ΄Π°ΡΠ΅Π»Π΅
6 522
ΠΠ°Π΄Π°ΡΠ°: 1422. Maximum Score After Splitting a String
Π‘Π»ΠΎΠΆΠ½ΠΎΡΡΡ: easy
ΠΠ°Π½Π° ΡΡΡΠΎΠΊΠ° s ΠΈΠ· Π½ΡΠ»Π΅ΠΉ ΠΈ Π΅Π΄ΠΈΠ½ΠΈΡ. ΠΠ΅ΡΠ½ΠΈΡΠ΅ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΎΡΠΊΠΎΠ² ΠΏΠΎΡΠ»Π΅ ΡΠ°Π·Π±ΠΈΠ΅Π½ΠΈΡ ΡΡΡΠΎΠΊΠΈ Π½Π° Π΄Π²Π΅ Π½Π΅ΠΏΡΡΡΡΠ΅ ΠΏΠΎΠ΄ΡΡΡΠΎΠΊΠΈ (Ρ.Π΅. Π»Π΅Π²ΡΡ ΠΏΠΎΠ΄ΡΡΡΠΎΠΊΡ ΠΈ ΠΏΡΠ°Π²ΡΡ ΠΏΠΎΠ΄ΡΡΡΠΎΠΊΡ).
ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΎΡΠΊΠΎΠ² ΠΏΠΎΡΠ»Π΅ ΡΠ°Π·Π±ΠΈΠ΅Π½ΠΈΡ ΡΡΡΠΎΠΊΠΈ - ΡΡΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π½ΡΠ»Π΅ΠΉ Π² Π»Π΅Π²ΠΎΠΉ ΠΏΠΎΠ΄ΡΡΡΠΎΠΊΠ΅ ΠΏΠ»ΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π΅Π΄ΠΈΠ½ΠΈΡ Π² ΠΏΡΠ°Π²ΠΎΠΉ ΠΏΠΎΠ΄ΡΡΡΠΎΠΊΠ΅.
ΠΡΠΈΠΌΠ΅Ρ:
Input: s = "011101" Output: 5 Explanation: All possible ways of splitting s into two non-empty substrings are: left = "0" and right = "11101", score = 1 + 4 = 5 left = "01" and right = "1101", score = 1 + 3 = 4 left = "011" and right = "101", score = 1 + 2 = 3 left = "0111" and right = "01", score = 1 + 1 = 2 left = "01110" and right = "1", score = 2 + 1 = 3π¨βπ» ΠΠ»Π³ΠΎΡΠΈΡΠΌ: 1β£ΠΠΎΡΡΠΈΡΠ°ΠΉΡΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π΅Π΄ΠΈΠ½ΠΈΡ Π² ΡΡΡΠΎΠΊΠ΅ ΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠΉΡΠ΅ ΡΡΡΡΡΠΈΠΊΠΈ Π½ΡΠ»Π΅ΠΉ ΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ. 2β£ΠΠ΅ΡΠ΅Π±ΠΈΡΠ°ΠΉΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ ΡΡΡΠΎΠΊΠΈ Π΄ΠΎ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ ΡΠΈΠΌΠ²ΠΎΠ»Π°, ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ ΡΡΡΡΡΠΈΠΊΠΈ Π½ΡΠ»Π΅ΠΉ ΠΈ Π΅Π΄ΠΈΠ½ΠΈΡ. 3β£ΠΠ±Π½ΠΎΠ²Π»ΡΠΉΡΠ΅ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, Π΅ΡΠ»ΠΈ ΡΠ΅ΠΊΡΡΠ°Ρ ΡΡΠΌΠΌΠ° Π½ΡΠ»Π΅ΠΉ ΠΈ Π΅Π΄ΠΈΠ½ΠΈΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ ΠΌΠ°ΠΊΡΠΈΠΌΡΠΌΠ°. π Π Π΅ΡΠ΅Π½ΠΈΠ΅:
class Solution {
public int maxScore(String s) {
int ones = 0;
for (int i = 0; i < s.length(); i++) {
if (s.charAt(i) == '1') {
ones++;
}
}
int ans = 0;
int zeros = 0;
for (int i = 0; i < s.length() - 1; i++) {
if (s.charAt(i) == '1') {
ones--;
} else {
zeros++;
}
ans = Math.max(ans, zeros + ones);
}
return ans;
}
}
Π‘ΡΠ°Π²Ρ π ΠΈ Π·Π°Π±ΠΈΡΠ°ΠΉ π ΠΠ°Π·Ρ Π·Π½Π°Π½ΠΈΠΉ6 522
ΠΠ°Π΄Π°ΡΠ°: 210. Course Schedule II
Π‘Π»ΠΎΠΆΠ½ΠΎΡΡΡ: medium
ΠΡΠ΅Π³ΠΎ Π΅ΡΡΡ numCourses ΠΊΡΡΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΡΠΎΠΉΡΠΈ, ΠΏΡΠΎΠ½ΡΠΌΠ΅ΡΠΎΠ²Π°Π½Π½ΡΡ
ΠΎΡ 0 Π΄ΠΎ numCourses - 1. ΠΠ°ΠΌ Π΄Π°Π½ ΠΌΠ°ΡΡΠΈΠ² prerequisites, Π³Π΄Π΅ prerequisites[i] = [ai, bi] ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΡΠΎ, ΡΡΠΎ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ½Π°ΡΠ°Π»Π° ΠΏΡΠΎΠΉΡΠΈ ΠΊΡΡΡ bi, Π΅ΡΠ»ΠΈ Ρ
ΠΎΡΠΈΡΠ΅ Π²Π·ΡΡΡ ΠΊΡΡΡ ai.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠ°ΡΠ° [0, 1] ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΡΠΎ, ΡΡΠΎ Π΄Π»Ρ ΠΏΡΠΎΡ
ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΠΊΡΡΡΠ° 0 ΡΠ½Π°ΡΠ°Π»Π° Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΎΠΉΡΠΈ ΠΊΡΡΡ 1.
ΠΠ΅ΡΠ½ΠΈΡΠ΅ ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΠΊΡΡΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΡΠΎΠΉΡΠΈ, ΡΡΠΎΠ±Ρ Π·Π°Π²Π΅ΡΡΠΈΡΡ Π²ΡΠ΅ ΠΊΡΡΡΡ. ΠΡΠ»ΠΈ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΡ
ΠΎΡΠ²Π΅ΡΠΎΠ², Π²Π΅ΡΠ½ΠΈΡΠ΅ Π»ΡΠ±ΠΎΠΉ ΠΈΠ· Π½ΠΈΡ
. ΠΡΠ»ΠΈ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π²Π΅ΡΡΠΈΡΡ Π²ΡΠ΅ ΠΊΡΡΡΡ, Π²Π΅ΡΠ½ΠΈΡΠ΅ ΠΏΡΡΡΠΎΠΉ ΠΌΠ°ΡΡΠΈΠ².
ΠΡΠΈΠΌΠ΅Ρ:
Input: numCourses = 4, prerequisites = [[1,0],[2,0],[3,1],[3,2]] Output: [0,2,1,3] ΠΠ±ΡΡΡΠ½Π΅Π½ΠΈΠ΅: ΠΡΠ΅Π³ΠΎ Π΅ΡΡΡ 4 ΠΊΡΡΡΠ°, ΠΊΠΎΡΠΎΡΡΠ΅ Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΎΠΉΡΠΈ. Π§ΡΠΎΠ±Ρ Π²Π·ΡΡΡ ΠΊΡΡΡ 3, Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ Π·Π°Π²Π΅ΡΡΠΈΡΡ ΠΎΠ±Π° ΠΊΡΡΡΠ° 1 ΠΈ 2. ΠΠ±Π° ΠΊΡΡΡΠ° 1 ΠΈ 2 Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π²Π·ΡΡΡ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ Π·Π°Π²Π΅ΡΡΠΈΡΠ΅ ΠΊΡΡΡ 0. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΡ ΠΏΠΎΡΡΠ΄ΠΊΠΎΠ² ΠΊΡΡΡΠΎΠ² β [0,1,2,3]. ΠΡΡΠ³ΠΎΠΉ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ ΠΏΠΎΡΡΠ΄ΠΎΠΊ β [0,2,1,3].π¨βπ» ΠΠ»Π³ΠΎΡΠΈΡΠΌ: 1β£ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΈ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΠ΅ Π³ΡΠ°ΡΠ°: ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠΉΡΠ΅ ΡΡΠ΅ΠΊ S, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΡΠΎΠΏΠΎΠ»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈ ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΠΊΡΡΡΠΎΠ² Π² Π½Π°ΡΠ΅ΠΌ Π³ΡΠ°ΡΠ΅. ΠΠΎΡΡΡΠΎΠΉΡΠ΅ ΡΠΏΠΈΡΠΎΠΊ ΡΠΌΠ΅ΠΆΠ½ΠΎΡΡΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΏΠ°ΡΡ ΡΠ΅Π±Π΅Ρ, ΡΠΊΠ°Π·Π°Π½Π½ΡΠ΅ Π½Π° Π²Ρ ΠΎΠ΄Π΅. ΠΠ°ΠΆΠ½ΠΎ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ ΠΏΠ°ΡΠ° Π²ΠΈΠ΄Π° [a, b] ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΡΠΎ, ΡΡΠΎ ΠΊΡΡΡ b Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΏΡΠΎΠΉΠ΄Π΅Π½, ΡΡΠΎΠ±Ρ Π²Π·ΡΡΡ ΠΊΡΡΡ a. ΠΡΠΎ ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Π΅Ρ ΡΠ΅Π±ΡΠΎ Π²ΠΈΠ΄Π° b β a. Π£ΡΡΠΈΡΠ΅ ΡΡΠΎ ΠΏΡΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ°. 2β£ΠΠ°ΠΏΡΡΠΊ ΠΏΠΎΠΈΡΠΊΠ° Π² Π³Π»ΡΠ±ΠΈΠ½Ρ (DFS): ΠΠ»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ·Π»Π° Π² Π½Π°ΡΠ΅ΠΌ Π³ΡΠ°ΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΠΏΠΎΠΈΡΠΊ Π² Π³Π»ΡΠ±ΠΈΠ½Ρ (DFS), Π΅ΡΠ»ΠΈ ΡΡΠΎΡ ΡΠ·Π΅Π» Π΅ΡΠ΅ Π½Π΅ Π±ΡΠ» ΠΏΠΎΡΠ΅ΡΠ΅Π½ Π²ΠΎ Π²ΡΠ΅ΠΌΡ DFS Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΡΠ·Π»Π°. ΠΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, ΡΡΠΎ ΠΌΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌ ΠΏΠΎΠΈΡΠΊ Π² Π³Π»ΡΠ±ΠΈΠ½Ρ Π΄Π»Ρ ΡΠ·Π»Π° N. Π Π΅ΠΊΡΡΡΠΈΠ²Π½ΠΎ ΠΎΠ±ΠΎΠΉΠ΄ΠΈΡΠ΅ Π²ΡΠ΅Ρ ΡΠΎΡΠ΅Π΄Π΅ΠΉ ΡΠ·Π»Π° N, ΠΊΠΎΡΠΎΡΡΠ΅ Π΅ΡΠ΅ Π½Π΅ Π±ΡΠ»ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π½Ρ. 3β£ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠ·Π»ΠΎΠ² ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°: ΠΠΎΡΠ»Π΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π²ΡΠ΅Ρ ΡΠΎΡΠ΅Π΄Π΅ΠΉ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΡΠ·Π΅Π» N Π² ΡΡΠ΅ΠΊ. ΠΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΡΠ΅ΠΊ Π΄Π»Ρ ΠΌΠΎΠ΄Π΅Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ ΠΏΠΎΡΡΠ΄ΠΊΠ°. ΠΠΎΠ³Π΄Π° ΠΌΡ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ ΡΠ·Π΅Π» N Π² ΡΡΠ΅ΠΊ, Π²ΡΠ΅ ΡΠ·Π»Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠ΅Π±ΡΡΡ ΡΠ·Π΅Π» N Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠ΅Π΄ΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΈΠΊΠ° (ΡΡΠ΅Π΄ΠΈ Π΄ΡΡΠ³ΠΈΡ ), ΡΠΆΠ΅ Π±ΡΠ΄ΡΡ Π² ΡΡΠ΅ΠΊΠ΅. ΠΠΎΡΠ»Π΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π²ΡΠ΅Ρ ΡΠ·Π»ΠΎΠ² ΠΏΡΠΎΡΡΠΎ Π²Π΅ΡΠ½ΠΈΡΠ΅ ΡΠ·Π»Ρ Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅ ΠΈΡ ΠΏΡΠΈΡΡΡΡΡΠ²ΠΈΡ Π² ΡΡΠ΅ΠΊΠ΅ ΠΎΡ Π²Π΅ΡΡΠΈΠ½Ρ Π΄ΠΎ ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΡ. π Π Π΅ΡΠ΅Π½ΠΈΠ΅:
class Solution {
static int WHITE = 1;
static int GRAY = 2;
static int BLACK = 3;
boolean isPossible;
Map<Integer, Integer> color;
Map<Integer, List<Integer>> adjList;
List<Integer> topologicalOrder;
private void init(int numCourses) {
this.isPossible = true;
this.color = new HashMap<>();
this.adjList = new HashMap<>();
this.topologicalOrder = new ArrayList<>();
for (int i = 0; i < numCourses; i++) {
this.color.put(i, WHITE);
}
}
private void dfs(int node) {
if (!this.isPossible) return;
this.color.put(node, GRAY);
for (Integer neighbor : this.adjList.getOrDefault(node, new ArrayList<>())) {
if (this.color.get(neighbor) == WHITE) {
this.dfs(neighbor);
} else if (this.color.get(neighbor) == GRAY) {
this.isPossible = false;
}
}
this.color.put(node, BLACK);
this.topologicalOrder.add(node);
}
public int[] findOrder(int numCourses, int[][] prerequisites) {
this.init(numCourses);
for (int i = 0; i < prerequisites.length; i++) {
int dest = prerequisites[i][0];
int src = prerequisites[i][1];
List<Integer> lst = adjList.getOrDefault(src, new ArrayList<>());
lst.add(dest);
adjList.put(src, lst);
}
for (int i = 0; i < numCourses; i++) {
if (this.color.get(i) == WHITE) {
this.dfs(i);
}
}
if (this.isPossible) {
int[] order = new int[numCourses];
for (int i = 0; i < numCourses; i++) {
order[i] = this.topologicalOrder.get(numCourses - i - 1);
}
return order;
} else {
return new int[0];
}
}
}
Π‘ΡΠ°Π²Ρ π ΠΈ Π·Π°Π±ΠΈΡΠ°ΠΉ π ΠΠ°Π·Ρ Π·Π½Π°Π½ΠΈΠΉ6 522
ΠΡΡΡΡ ΠΊΠΈΡΠ°ΠΉΡΠΊΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ° Ρ Π½ΡΠ»Ρ Π΄ΠΎ ΠΏΡΠΎΡΠΈ. ΠΠ½Π»Π°ΠΉΠ½ ΠΈ ΠΎΡΠ½ΠΎ.
πΠΠΎΠ²ΡΡΠ°ΠΉΡΠ΅ ΡΡΠΎΠ²Π΅Π½Ρ ΠΈΠ»ΠΈ ΠΈΠ·ΡΡΠ°ΠΉΡΠ΅ Ρ Π½ΡΠ»Ρ. ΠΠΎΠΌΠΎΠΆΠ΅ΠΌ ΠΈΠ·ΡΡΠΈΡΡ ΠΊΠΈΡΠ°ΠΉΡΠΊΠΈΠΉ Π»Π΅Π³ΠΊΠΎ ΠΈ ΠΏΡΠΎΡΡΠΎ.
β‘ΠΠ΅ΡΠ²ΠΎΠ΅ ΠΏΡΠΎΠ±Π½ΠΎΠ΅ Π·Π°Π½ΡΡΠΈΠ΅ - Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎ!
β
ΠΠ»Ρ Π±ΠΈΠ·Π½Π΅ΡΠ°.
β
ΠΠ»Ρ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ.
β
ΠΠ»Ρ ΠΏΡΡΠ΅ΡΠ΅ΡΡΠ²ΠΈΠΉ.
ΠΠ»Ρ Π²Π·ΡΠΎΡΠ»ΡΡ
ΠΈ Π΄Π΅ΡΠ΅ΠΉ.
ΠΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡΠ°Π»ΡΠ½ΡΠ΅ Π·Π°Π½ΡΡΠΈΡ ΠΈ Π³ΡΡΠΏΠΏΠΎΠ²ΠΎΠ΅ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅. Π Π°Π·Π³ΠΎΠ²ΠΎΡΠ½ΡΠΉ ΠΊΠ»ΡΠ±.
ΠΠ°ΠΏΠΈΡΠ°ΡΡΡΡ
#ΡΠ΅ΠΊΠ»Π°ΠΌΠ° 16+
chinesecontact.ru
Π ΡΠ΅ΠΊΠ»Π°ΠΌΠΎΠ΄Π°ΡΠ΅Π»Π΅
6 522
ΠΠ°Π΄Π°ΡΠ°: 344. Reverse String
Π‘Π»ΠΎΠΆΠ½ΠΎΡΡΡ: easy
ΠΠ°ΠΏΠΈΡΠΈΡΠ΅ ΡΡΠ½ΠΊΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠ΅ΡΠ΅Π²ΠΎΡΠ°ΡΠΈΠ²Π°Π΅Ρ ΡΡΡΠΎΠΊΡ. ΠΡ
ΠΎΠ΄Π½Π°Ρ ΡΡΡΠΎΠΊΠ° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π° Π² Π²ΠΈΠ΄Π΅ ΠΌΠ°ΡΡΠΈΠ²Π° ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² s.
ΠΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ, ΠΈΠ·ΠΌΠ΅Π½ΡΡ Π²Ρ
ΠΎΠ΄Π½ΠΎΠΉ ΠΌΠ°ΡΡΠΈΠ² Π½Π° ΠΌΠ΅ΡΡΠ΅ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ O(1) Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ.
ΠΡΠΈΠΌΠ΅Ρ:
Input: s = ["h","e","l","l","o"] Output: ["o","l","l","e","h"]π¨βπ» ΠΠ»Π³ΠΎΡΠΈΡΠΌ: 1β£ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ: Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ Π΄Π²Π° ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ: ΠΎΠ΄ΠΈΠ½ Π½Π° Π½Π°ΡΠ°Π»ΠΎ ΠΌΠ°ΡΡΠΈΠ²Π° (left), Π΄ΡΡΠ³ΠΎΠΉ Π½Π° ΠΊΠΎΠ½Π΅Ρ ΠΌΠ°ΡΡΠΈΠ²Π° (right). 2β£ΠΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ²: ΠΠΎΠΊΠ° Π»Π΅Π²ΡΠΉ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΠΌΠ΅Π½ΡΡΠ΅ ΠΏΡΠ°Π²ΠΎΠ³ΠΎ, ΠΎΠ±ΠΌΠ΅Π½ΡΠΉΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ, Π½Π° ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ Π»Π΅Π²ΡΠΉ ΠΈ ΠΏΡΠ°Π²ΡΠΉ ΡΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ. Π‘Π΄Π²ΠΈΠ½ΡΡΠ΅ Π»Π΅Π²ΡΠΉ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π²ΠΏΡΠ°Π²ΠΎ, Π° ΠΏΡΠ°Π²ΡΠΉ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π²Π»Π΅Π²ΠΎ. 3β£ΠΠ°Π²Π΅ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΡ: ΠΠΎΠ²ΡΠΎΡΡΠΉΡΠ΅ ΡΠ°Π³ 2 Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° Π»Π΅Π²ΡΠΉ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π΅ ΡΡΠ°Π½Π΅Ρ Π±ΠΎΠ»ΡΡΠ΅ ΠΈΠ»ΠΈ ΡΠ°Π²Π΅Π½ ΠΏΡΠ°Π²ΠΎΠΌΡ. π Π Π΅ΡΠ΅Π½ΠΈΠ΅:
public class Solution {
public void reverseString(char[] s) {
int left = 0, right = s.length - 1;
while (left < right) {
char temp = s[left];
s[left] = s[right];
s[right] = temp;
left++;
right--;
}
}
}
Π‘ΡΠ°Π²Ρ π ΠΈ Π·Π°Π±ΠΈΡΠ°ΠΉ π ΠΠ°Π·Ρ Π·Π½Π°Π½ΠΈΠΉ6 522
ΠΠ°Π΄Π°ΡΠ°: 765. Couples Holding Hands
Π‘Π»ΠΎΠΆΠ½ΠΎΡΡΡ: hard
ΠΡΡΡ n ΠΏΠ°Ρ, ΡΠΈΠ΄ΡΡΠΈΡ
Π½Π° 2n ΠΌΠ΅ΡΡΠ°Ρ
, ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π½ΡΡ
Π² ΡΡΠ΄, ΠΈ ΠΎΠ½ΠΈ Ρ
ΠΎΡΡΡ Π΄Π΅ΡΠΆΠ°ΡΡΡΡ Π·Π° ΡΡΠΊΠΈ.
ΠΡΠ΄ΠΈ ΠΈ ΠΌΠ΅ΡΡΠ° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Ρ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠΌ ΡΠ΅Π»ΡΡ
ΡΠΈΡΠ΅Π» row, Π³Π΄Π΅ row[i] β ΡΡΠΎ ID ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠ°, ΡΠΈΠ΄ΡΡΠ΅Π³ΠΎ Π½Π° i-ΠΌ ΠΌΠ΅ΡΡΠ΅. ΠΠ°ΡΡ ΠΏΡΠΎΠ½ΡΠΌΠ΅ΡΠΎΠ²Π°Π½Ρ ΠΏΠΎ ΠΏΠΎΡΡΠ΄ΠΊΡ: ΠΏΠ΅ΡΠ²Π°Ρ ΠΏΠ°ΡΠ° β (0, 1), Π²ΡΠΎΡΠ°Ρ ΠΏΠ°ΡΠ° β (2, 3) ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅, Π΄ΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ ΠΏΠ°ΡΡ β (2n - 2, 2n - 1).
ΠΠ΅ΡΠ½ΠΈΡΠ΅ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΎΠΊ, ΡΡΠΎΠ±Ρ ΠΊΠ°ΠΆΠ΄Π°Ρ ΠΏΠ°ΡΠ° ΡΠΈΠ΄Π΅Π»Π° ΡΡΠ΄ΠΎΠΌ. ΠΠ΅ΡΠ΅ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΡΠΎΡΡΠΎΠΈΡ ΠΈΠ· Π²ΡΠ±ΠΎΡΠ° Π»ΡΠ±ΡΡ
Π΄Π²ΡΡ
ΡΠ΅Π»ΠΎΠ²Π΅ΠΊ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΡΡΠ°ΡΡ ΠΈ ΠΌΠ΅Π½ΡΡΡΡΡ ΠΌΠ΅ΡΡΠ°ΠΌΠΈ.
ΠΡΠΈΠΌΠ΅Ρ:
Input: row = [0,2,1,3]
Output: 1
Explanation: We only need to swap the second (row[1]) and third (row[2]) person.
π¨βπ» ΠΠ»Π³ΠΎΡΠΈΡΠΌ:
1β£ΠΡ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΡΡ Π±Π΅Π· Π΄ΠΎΠΊΠ°Π·Π°ΡΠ΅Π»ΡΡΡΠ²Π°, ΡΡΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΌΡ Π΄Π΅Π»Π°Π΅ΠΌ Π»ΡΠ΄Π΅ΠΉ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π΄ΠΈΠ²Π°Π½Π΅ ΡΡΠ°ΡΡΠ»ΠΈΠ²ΡΠΌΠΈ ΠΏΠΎ ΠΏΠΎΡΡΠ΄ΠΊΡ, ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΌ. ΠΡΠΎ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠΈΠ»ΡΠ½Π΅Π΅, ΡΠ΅ΠΌ Π³ΠΈΠΏΠΎΡΠ΅Π·Π° ΠΎ ΠΆΠ°Π΄Π½ΠΎΠΌ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄Π΅, Π½ΠΎ ΠΊΠ°ΠΆΠ΅ΡΡΡ ΡΠ°Π·ΡΠΌΠ½ΡΠΌ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΏΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Ρ
ΠΎΠ΄Π΅ ΠΌΡ Π΄Π΅Π»Π°Π΅ΠΌ Ρ
ΠΎΡΡ Π±Ρ ΠΎΠ΄Π½Ρ ΠΏΠ°ΡΡ ΡΡΠ°ΡΡΠ»ΠΈΠ²ΠΎΠΉ.
2β£ΠΡΠΈ ΡΠ°ΠΊΠΎΠΌ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, Π΄Π»Ρ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-ΡΠΎ Π΄ΠΈΠ²Π°Π½Π° Ρ Π½Π΅ΡΡΠ°ΡΡΠ»ΠΈΠ²ΡΠΌΠΈ Π»ΡΠ΄ΡΠΌΠΈ X ΠΈ Y, ΠΌΡ Π»ΠΈΠ±ΠΎ Π·Π°ΠΌΠ΅Π½ΡΠ΅ΠΌ Y Π½Π° ΠΏΠ°ΡΡΠ½Π΅ΡΠ° X, Π»ΠΈΠ±ΠΎ Π·Π°ΠΌΠ΅Π½ΡΠ΅ΠΌ X Π½Π° ΠΏΠ°ΡΡΠ½Π΅ΡΠ° Y. ΠΠ»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· Π΄Π²ΡΡ
Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ ΠΎΠ±Π° Π²Π°ΡΠΈΠ°Π½ΡΠ°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠΎΠΌ.
3β£ΠΠ»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π΄ΠΈΠ²Π°Π½Π° Ρ Π΄Π²ΡΠΌΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠΌΠΈ (Ρ.Π΅. ΠΎΠ±Π° ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠ° Π½Π° Π΄ΠΈΠ²Π°Π½Π΅ Π½Π΅ΡΡΠ°ΡΡΠ»ΠΈΠ²Ρ) ΠΌΡ ΠΏΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ²ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ, Π½Π°ΠΉΠ΄Π΅ΠΌ ΠΎΡΠ²Π΅Ρ ΠΊΠ°ΠΊ ans1, Π·Π°ΡΠ΅ΠΌ ΠΎΡΠΌΠ΅Π½ΠΈΠΌ Π½Π°Ρ Ρ
ΠΎΠ΄ ΠΈ ΠΏΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ Π²ΡΠΎΡΠΎΠΉ Π²Π°ΡΠΈΠ°Π½Ρ, Π½Π°ΠΉΠ΄Π΅ΠΌ ΡΠ²ΡΠ·Π°Π½Π½ΡΠΉ ΠΎΡΠ²Π΅Ρ ΠΊΠ°ΠΊ ans2, ΠΎΡΠΌΠ΅Π½ΠΈΠΌ Π½Π°Ρ Ρ
ΠΎΠ΄ ΠΈ Π·Π°ΡΠ΅ΠΌ Π²Π΅ΡΠ½Π΅ΠΌ Π½Π°ΠΈΠΌΠ΅Π½ΡΡΠΈΠΉ ΠΎΡΠ²Π΅Ρ.
π Π Π΅ΡΠ΅Π½ΠΈΠ΅:
class Solution {
int N;
int[][] pairs;
public int minSwapsCouples(int[] row) {
N = row.length / 2;
pairs = new int[N][2];
for (int i = 0; i < N; ++i) {
pairs[i][0] = row[2 * i] / 2;
pairs[i][1] = row[2 * i + 1] / 2;
}
return solve(0);
}
public void swap(int a, int b, int c, int d) {
int t = pairs[a][b];
pairs[a][b] = pairs[c][d];
pairs[c][d] = t;
}
public int solve(int i) {
if (i == N) return 0;
int x = pairs[i][0], y = pairs[i][1];
if (x == y) return solve(i + 1);
int jx = 0, kx = 0, jy = 0, ky = 0;
for (int j = i + 1; j < N; ++j) {
for (int k = 0; k <= 1; ++k) {
if (pairs[j][k] == x) { jx = j; kx = k; }
if (pairs[j][k] == y) { jy = j; ky = k; }
}
}
swap(i, 1, jx, kx);
int ans1 = 1 + solve(i + 1);
swap(i, 1, jx, kx);
swap(i, 0, jy, ky);
int ans2 = 1 + solve(i + 1);
swap(i, 0, jy, ky);
return Math.min(ans1, ans2);
}
}
Π‘ΡΠ°Π²Ρ π ΠΈ Π·Π°Π±ΠΈΡΠ°ΠΉ π ΠΠ°Π·Ρ Π·Π½Π°Π½ΠΈΠΉ6 522
ΠΠ°Π΄Π°ΡΠ°: 759. Employee Free Time
Π‘Π»ΠΎΠΆΠ½ΠΎΡΡΡ: hard
ΠΠ°ΠΌ Π΄Π°Π½ ΡΠΏΠΈΡΠΎΠΊ schedule of employees, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΡΠ°Π±ΠΎΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠ°. Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠ° Π΅ΡΡΡ ΡΠΏΠΈΡΠΎΠΊ Π½Π΅ΠΏΠ΅ΡΠ΅ΡΠ΅ΠΊΠ°ΡΡΠΈΡ
ΡΡ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»ΠΎΠ², ΠΈ ΡΡΠΈ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»Ρ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Ρ Π² ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅. ΠΠ΅ΡΠ½ΠΈΡΠ΅ ΡΠΏΠΈΡΠΎΠΊ ΠΊΠΎΠ½Π΅ΡΠ½ΡΡ
ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»ΠΎΠ², ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡΠΈΡ
ΠΎΠ±ΡΠ΅Π΅ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ Π΄Π»Ρ Π²ΡΠ΅Ρ
ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΎΠ², ΡΠ°ΠΊΠΆΠ΅ Π² ΠΎΡΡΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅. (Π₯ΠΎΡΡ ΠΌΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅ΠΌ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»Ρ Π² ΡΠΎΡΠΌΠ΅ [x, y], ΠΎΠ±ΡΠ΅ΠΊΡΡ Π²Π½ΡΡΡΠΈ Π½ΠΈΡ
ΡΠ²Π»ΡΡΡΡΡ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»Π°ΠΌΠΈ, Π° Π½Π΅ ΡΠΏΠΈΡΠΊΠ°ΠΌΠΈ ΠΈΠ»ΠΈ ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, schedule[0][0].start = 1, schedule[0][0].end = 2, Π° schedule[0][0][0] Π½Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ).Π’Π°ΠΊΠΆΠ΅ ΠΌΡ Π½Π΅ Π±ΡΠ΄Π΅ΠΌ Π²ΠΊΠ»ΡΡΠ°ΡΡ Π² Π½Π°Ρ ΠΎΡΠ²Π΅Ρ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»Ρ ΡΠΈΠΏΠ° [5, 5], ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΠΈΠΌΠ΅ΡΡ Π½ΡΠ»Π΅Π²ΡΡ Π΄Π»ΠΈΠ½Ρ.
ΠΡΠΈΠΌΠ΅Ρ:
Input: schedule = [[[1,2],[5,6]],[[1,3]],[[4,10]]] Output: [[3,4]]π¨βπ» ΠΠ»Π³ΠΎΡΠΈΡΠΌ: 1β£ΠΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΠ΅ Π²ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»Ρ Π²ΡΠ΅Ρ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΎΠ² Π² ΠΎΠ΄ΠΈΠ½ ΡΠΏΠΈΡΠΎΠΊ ΠΈ ΠΎΡΡΠΎΡΡΠΈΡΡΠΉΡΠ΅ Π΅Π³ΠΎ ΠΏΠΎ Π½Π°ΡΠ°Π»ΡΠ½ΡΠΌ Π²ΡΠ΅ΠΌΠ΅Π½Π°ΠΌ. 2β£ΠΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΠ΅ ΠΏΠ΅ΡΠ΅ΡΠ΅ΠΊΠ°ΡΡΠΈΠ΅ΡΡ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»Ρ Π² ΠΎΠ΄ΠΈΠ½. 3β£ΠΠ°ΠΉΠ΄ΠΈΡΠ΅ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΊΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½Π½ΡΠΌΠΈ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»Π°ΠΌΠΈ, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡΠΈΠ΅ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ. π Π Π΅ΡΠ΅Π½ΠΈΠ΅:
import java.util.*;
class Interval {
public int start;
public int end;
public Interval(int start, int end) {
this.start = start;
this.end = end;
}
}
public class Solution {
public List<Interval> employeeFreeTime(List<List<Interval>> schedule) {
List<Interval> intervals = new ArrayList<>();
for (List<Interval> employee : schedule) {
intervals.addAll(employee);
}
intervals.sort((a, b) -> Integer.compare(a.start, b.start));
List<Interval> merged = new ArrayList<>();
for (Interval interval : intervals) {
if (merged.isEmpty() || merged.get(merged.size() - 1).end < interval.start) {
merged.add(interval);
} else {
merged.get(merged.size() - 1).end = Math.max(merged.get(merged.size() - 1).end, interval.end);
}
}
List<Interval> freeTime = new ArrayList<>();
for (int i = 1; i < merged.size(); i++) {
if (merged.get(i).start > merged.get(i - 1).end) {
freeTime.add(new Interval(merged.get(i - 1).end, merged.get(i).start));
}
}
return freeTime;
}
Π‘ΡΠ°Π²Ρ π ΠΈ Π·Π°Π±ΠΈΡΠ°ΠΉ π ΠΠ°Π·Ρ Π·Π½Π°Π½ΠΈΠΉ6 522
ΠΡΡ ΠΆΠ΅Π»Π°ΡΡΠΈΡ
Π·Π°ΠΏΠΎΠ»Π½ΡΡΡ ΠΊΠ°ΡΡΠΎΡΠΊΠΈ ΡΠΎΠ²Π°ΡΠΎΠ² Π½Π° ΠΠ!
Π Π°Π±ΠΎΡΠ° ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π½Π° ΡΠ΄Π°Π»Π΅Π½ΠΊΠ΅ Ρ Π·ΠΏ Π΄ΠΎ150 000 ΡΡΠ±Π»Π΅ΠΉ Π² ΠΌΠ΅ΡΡΡ.
ΠΠ΅Π· ΠΎΠΏΡΡΠ°, Π½ΡΠΆΠ΅Π½ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅Π»Π΅ΡΠΎΠ½, Π·Π°Π½ΡΡΠΎΡΡΡ 3-6 ΡΠ°ΡΠΎΠ² Π² Π΄Π΅Π½Ρ.
ΠΡΠ΅ΠΌΡ ΠΎΠ±ΡΡΠ°Ρ Π½Π° Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎΠΌ ΠΊΡΡΡΠ΅ ΠΈ ΠΏΠΎΡΠ»Π΅ Π²ΠΎΠ·ΡΠΌΡ Π½Π° ΡΠ°Π±ΠΎΡΡ:
β
3 Π΄Π½Ρ ΡΡΠΎΠΊΠΎΠ² ΠΏΠΎ 30 ΠΌΠΈΠ½ΡΡ
β
ΠΠΎΠΌΠ°ΡΠΊΠΈ Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΎΠΉ ΠΈ ΠΎΠΏΠ»Π°ΡΠΎΠΉ Π±ΠΎΠ½ΡΡΠ°ΠΌΠΈ
β
ΠΠ»Π°ΡΡ 10 ΡΡΡ Π·Π° ΠΊΠ°ΠΆΠ΄ΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π½ΡΡ Π΄ΠΎΠΌΠ°ΡΠΊΡ
ΠΡΠ΅ ΠΊΡΠΎ ΠΏΡΠΎΠΉΠ΄Π΅Ρ ΠΊΡΡΡ, ΠΏΠΎΠ»ΡΡΠ°Ρ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ ΠΎΡ ΡΠΊΠΎΠ»Ρ Ρ ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠΉ Π»ΠΈΡΠ΅Π½Π·ΠΈΠ΅ΠΉ.
β‘ ΠΠ°Π±ΠΎΡ Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°Π΅ΡΡΡ Π·Π°Π²ΡΡΠ°.
π ΠΠ»Ρ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ ΠΆΠΌΠΈΡΠ΅ ΠΊΠ½ΠΎΠΏΠΊΡ "ΠΠ°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°ΡΡΡΡ"
ΠΠ°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°ΡΡΡΡ
#ΡΠ΅ΠΊΠ»Π°ΠΌΠ° 16+
course.wildmanager.ru
Π ΡΠ΅ΠΊΠ»Π°ΠΌΠΎΠ΄Π°ΡΠ΅Π»Π΅
6 522
ΠΠ°Π΄Π°ΡΠ°: 1434. Number of Ways to Wear Different Hats to Each Other
Π‘Π»ΠΎΠΆΠ½ΠΎΡΡΡ: hard
ΠΠ°Π½ΠΎ n ΡΠ΅Π»ΠΎΠ²Π΅ΠΊ ΠΈ 40 Π²ΠΈΠ΄ΠΎΠ² ΡΠ»ΡΠΏ, ΠΏΡΠΎΠ½ΡΠΌΠ΅ΡΠΎΠ²Π°Π½Π½ΡΡ
ΠΎΡ 1 Π΄ΠΎ 40.
ΠΠ°Π½ Π΄Π²ΡΠΌΠ΅ΡΠ½ΡΠΉ ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½ΡΠΉ ΠΌΠ°ΡΡΠΈΠ² hats, Π³Π΄Π΅ hats[i] β ΡΠΏΠΈΡΠΎΠΊ Π²ΡΠ΅Ρ
ΡΠ»ΡΠΏ, ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°Π΅ΠΌΡΡ
i-ΠΌ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠΎΠΌ.
ΠΠ΅ΡΠ½ΡΡΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠΌΠΈ n ΡΠ΅Π»ΠΎΠ²Π΅ΠΊ ΠΌΠΎΠ³ΡΡ Π½ΠΎΡΠΈΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠ»ΡΠΏΡ Π΄ΡΡΠ³ Ρ Π΄ΡΡΠ³Π°.
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΡΠ²Π΅Ρ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ»ΠΈΡΠΊΠΎΠΌ Π±ΠΎΠ»ΡΡΠΈΠΌ, Π²Π΅ΡΠ½ΡΡΡ Π΅Π³ΠΎ ΠΏΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ 10^9 + 7.
ΠΡΠΈΠΌΠ΅Ρ:
Input: hats = [[3,4],[4,5],[5]] Output: 1 Explanation: There is only one way to choose hats given the conditions. First person choose hat 3, Second person choose hat 4 and last one hat 5.π¨βπ» ΠΠ»Π³ΠΎΡΠΈΡΠΌ: 1β£ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅: n - ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π»ΡΠ΄Π΅ΠΉ, done = 2^n - 1, MOD = 10^9 + 7, memo - Π΄Π²ΡΠΌΠ΅ΡΠ½ΡΠΉ ΠΌΠ°ΡΡΠΈΠ² ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ 41 * done, Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Π½ΡΠΉ -1, ΠΈ hatsToPeople - ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΡΠ»ΡΠΏ Π½Π° Π»ΡΠ΄Π΅ΠΉ. 2β£ΠΠ°ΠΏΠΎΠ»Π½ΠΈΡΡ hatsToPeople, ΡΠΎΠΏΠΎΡΡΠ°Π²ΠΈΠ² ΠΊΠ°ΠΆΠ΄ΡΡ ΡΠ»ΡΠΏΡ Π»ΡΠ΄ΡΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ Π΅Ρ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°ΡΡ. Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ dp(hat, mask), ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΌΠ΅ΠΌΠΎΠΈΠ·Π°ΡΠΈΡ Π΄Π»Ρ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠ»ΡΠΏ. 3β£ΠΠ΅ΡΠ½ΡΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠ·ΠΎΠ²Π° dp(1, 0), ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ΅ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠ»ΡΠΏ. π Π Π΅ΡΠ΅Π½ΠΈΠ΅:
class Solution {
int[][] memo;
int done;
int n;
int MOD = 1000000007;
Map<Integer, ArrayList<Integer>> hatsToPeople;
public int numberWays(List<List<Integer>> hats) {
n = hats.size();
hatsToPeople = new HashMap<>();
for (int i = 0; i < n; i++) {
for (int hat: hats.get(i)) {
hatsToPeople.computeIfAbsent(hat, k -> new ArrayList<>()).add(i);
}
}
done = (1 << n) - 1;
memo = new int[41][done];
for (int i = 0; i < 41; i++) {
Arrays.fill(memo[i], -1);
}
return dp(1, 0);
}
private int dp(int hat, int mask) {
if (mask == done) {
return 1;
}
if (hat > 40) {
return 0;
}
if (memo[hat][mask] != -1) {
return memo[hat][mask];
}
int ans = dp(hat + 1, mask);
if (hatsToPeople.containsKey(hat)) {
for (int person: hatsToPeople.get(hat)) {
if ((mask & (1 << person)) == 0) {
ans = (ans + dp(hat + 1, mask | (1 << person))) % MOD;
}
}
}
memo[hat][mask] = ans;
return ans;
}
}
Π‘ΡΠ°Π²Ρ π ΠΈ Π·Π°Π±ΠΈΡΠ°ΠΉ π ΠΠ°Π·Ρ Π·Π½Π°Π½ΠΈΠΉ6 522
ΠΠ½Π»Π°ΠΉΠ½-ΡΠΊΠΎΠ»Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Kata Academy
ΠΠ°ΡΠ°Π½ΡΠΈΡ ΡΡΡΠ΄ΠΎΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΏΠΎΡΠ»Π΅ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ. ΠΠ ΠΎΡ 120 000Ρ Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°Π½ΠΎ Π² Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠ΅
Π₯ΠΎΡΠ΅ΡΡ Π²ΠΎΠΉΡΠΈ Π² IT, Π½ΠΎ Ρ ΡΠ΅Π±Ρ Π½ΠΎΠ»Ρ ΠΎΠΏΡΡΠ°? Kata Academy β ΡΡΠΎ ΡΠ²ΠΎΠΉ ΡΠ°Π½Ρ ΠΎΠ±ΡΠ΅ΡΡΠΈ Π½ΠΎΠ²ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΈΡ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ.
ΠΠ½Π»Π°ΠΉΠ½-ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΡΠΈΡΡΡΡ ΠΈΠ· Π»ΡΠ±ΠΎΠ³ΠΎ Π³ΠΎΡΠΎΠ΄Π°. π»
ΠΠ΅ΡΠ΅Ρ
ΠΎΠ΄ΠΈ Π½Π° ΡΠ°ΠΉΡ ΠΈ ΠΎΡΡΠ°Π²Π»ΡΠΉ Π·Π°ΡΠ²ΠΊΡ β ΡΠ°ΡΡΠΊΠ°ΠΆΠ΅ΠΌ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΠΈ ΠΈ ΠΏΠΎΠΌΠΎΠΆΠ΅ΠΌ Π²ΡΠ±ΡΠ°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ.
ΠΠ°ΡΠ½ΠΈ ΡΠ²ΠΎΠΉ ΠΏΡΡΡ Π² IT Π²ΠΌΠ΅ΡΡΠ΅ Ρ Kata Academy β ΠΌΡ ΡΠ΅Π±Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠΌ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΠ°Π³Π΅! π
ΠΠ΅ΡΠ΅ΠΉΡΠΈ Π½Π° ΡΠ°ΠΉΡ
#ΡΠ΅ΠΊΠ»Π°ΠΌΠ° 16+
kata.academy
Π ΡΠ΅ΠΊΠ»Π°ΠΌΠΎΠ΄Π°ΡΠ΅Π»Π΅
6 522
ΠΠ°Π΄Π°ΡΠ°: 910. Smallest Range II
Π‘Π»ΠΎΠΆΠ½ΠΎΡΡΡ: medium
ΠΠ°ΠΌ Π΄Π°Π½ ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½ΡΠΉ ΠΌΠ°ΡΡΠΈΠ² nums ΠΈ ΡΠ΅Π»ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ k. ΠΠ»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΠ° i, Π³Π΄Π΅ 0 <= i < nums.length, ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΠ΅ nums[i] Π½Π° nums[i] + k ΠΈΠ»ΠΈ nums[i] - k. ΠΡΠ΅Π½ΠΊΠ° nums - ΡΡΠΎ ΡΠ°Π·Π½ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΌ ΠΈ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ Π² nums. ΠΠ΅ΡΠ½ΠΈΡΠ΅ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΡ ΠΎΡΠ΅Π½ΠΊΡ nums ΠΏΠΎΡΠ»Π΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ½Π΄Π΅ΠΊΡΠ΅.
ΠΡΠΈΠΌΠ΅Ρ:
Input: nums = [1], k = 0 Output: 0π¨βπ» ΠΠ»Π³ΠΎΡΠΈΡΠΌ: 1β£ΠΡΡΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΌΠ°ΡΡΠΈΠ² nums. 2β£Π Π°ΡΡΡΠΈΡΠ°ΡΡ Π½Π°ΡΠ°Π»ΡΠ½ΡΡ ΡΠ°Π·Π½ΠΈΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΌ ΠΈ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ. 3β£ΠΡΠΎΠΉΡΠΈΡΡ ΠΏΠΎ Π²ΡΠ΅ΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌ ΠΌΠ°ΡΡΠΈΠ²Π°, ΠΏΡΡΠ°ΡΡΡ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°Π·Π½ΠΈΡΡ, ΠΈΠ·ΠΌΠ΅Π½ΡΡ ΡΠ΅ΠΊΡΡΠΈΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π½Π° +k ΠΈ -k ΠΈ Π²ΡΡΠΈΡΠ»ΡΡ Π½ΠΎΠ²ΡΠ΅ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠ΅ ΠΈ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΌΠ°ΡΡΠΈΠ²Π°. π Π Π΅ΡΠ΅Π½ΠΈΠ΅:
import java.util.Arrays;
class Solution {
public int smallestRangeII(int[] nums, int k) {
Arrays.sort(nums);
int n = nums.length;
int minVal = nums[0];
int maxVal = nums[n - 1];
int result = maxVal - minVal;
for (int i = 0; i < n - 1; i++) {
int high = Math.max(nums[i] + k, maxVal - k);
int low = Math.min(nums[i + 1] - k, minVal + k);
result = Math.min(result, high - low);
}
return result;
}
}
Π‘ΡΠ°Π²Ρ π ΠΈ Π·Π°Π±ΠΈΡΠ°ΠΉ π ΠΠ°Π·Ρ Π·Π½Π°Π½ΠΈΠΉ6 522
ΠΠ°Π΄Π°ΡΠ°: 981. Time Based Key-Value Store
Π‘Π»ΠΎΠΆΠ½ΠΎΡΡΡ: medium
Π‘ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΡΠΉΡΠ΅ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ
Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π΄Π»Ρ ΠΊΠ»ΡΡΠ΅ΠΉ ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΌΠΎΠΆΠ΅Ρ Ρ
ΡΠ°Π½ΠΈΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΠΊΠ»ΡΡΠ° Π² ΡΠ°Π·Π½ΡΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΌΠ΅ΡΠΊΠΈ ΠΈ ΠΈΠ·Π²Π»Π΅ΠΊΠ°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊΠ»ΡΡΠ° Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ.
Π Π΅Π°Π»ΠΈΠ·ΡΠΉΡΠ΅ ΠΊΠ»Π°ΡΡ TimeMap:
TimeMap() ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ
.
void set(String key, String value, int timestamp) Π‘ΠΎΡ
ΡΠ°Π½ΡΠ΅Ρ ΠΊΠ»ΡΡ key Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ value Π² Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ timestamp.
String get(String key, int timestamp) ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΡΠ°ΠΊΠΎΠ΅ ΡΡΠΎ set Π±ΡΠ» Π²ΡΠ·Π²Π°Π½ ΡΠ°Π½Π΅Π΅ Ρ timestamp_prev <= timestamp. ΠΡΠ»ΠΈ ΡΠ°ΠΊΠΈΡ
Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΡΠ²ΡΠ·Π°Π½Π½ΠΎΠ΅ Ρ Π½Π°ΠΈΠ±ΠΎΠ»ΡΡΠΈΠΌ timestamp_prev. ΠΡΠ»ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π½Π΅Ρ, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ "".
ΠΡΠΈΠΌΠ΅Ρ:
Input ["TimeMap", "set", "get", "get", "set", "get", "get"] [[], ["foo", "bar", 1], ["foo", 1], ["foo", 3], ["foo", "bar2", 4], ["foo", 4], ["foo", 5]] Output [null, null, "bar", "bar", null, "bar2", "bar2"]π¨βπ» ΠΠ»Π³ΠΎΡΠΈΡΠΌ: 1β£Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ hashmap keyTimeMap, ΠΊΠΎΡΠΎΡΡΠΉ Ρ ΡΠ°Π½ΠΈΡ ΡΡΡΠΎΠΊΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΊΠ»ΡΡΠ° ΠΈ Π΄ΡΡΠ³ΠΎΠΉ hashmap Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΠΊΠ°ΠΊ ΠΎΠ±ΡΡΠΆΠ΄Π°Π»ΠΎΡΡ Π²ΡΡΠ΅. 2β£Π ΡΡΠ½ΠΊΡΠΈΠΈ set() ΡΠΎΡ ΡΠ°Π½ΠΈΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π² ΠΏΠΎΠ·ΠΈΡΠΈΠΈ timestamp Π² ΠΊΠΎΡΠ·ΠΈΠ½Π΅ ΠΊΠ»ΡΡΠ° keyTimeMap, Ρ.Π΅. keyTimeMap[key][timestamp] = value. 3β£Π ΡΡΠ½ΠΊΡΠΈΠΈ get() ΠΈΡΠ΅ΡΠΈΡΡΠΉΡΠ΅ΡΡ ΠΏΠΎ Π²ΡΠ΅ΠΌ Π²ΡΠ΅ΠΌΠ΅Π½Π°ΠΌ Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅ ΡΠ±ΡΠ²Π°Π½ΠΈΡ ΠΎΡ timestamp Π΄ΠΎ 1. ΠΠ»Ρ Π»ΡΠ±ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΈ, Π΅ΡΠ»ΠΈ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π² ΠΊΠΎΡΠ·ΠΈΠ½Π΅ ΠΊΠ»ΡΡΠ°, Π²Π΅ΡΠ½ΠΈΡΠ΅ ΡΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅. Π ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, Π² ΠΊΠΎΠ½ΡΠ΅ Π²Π΅ΡΠ½ΠΈΡΠ΅ ΠΏΡΡΡΡΡ ΡΡΡΠΎΠΊΡ. π Π Π΅ΡΠ΅Π½ΠΈΠ΅:
import java.util.*;
class TimeMap {
private Map<String, TreeMap<Integer, String>> keyTimeMap;
public TimeMap() {
keyTimeMap = new HashMap<>();
}
public void set(String key, String value, int timestamp) {
keyTimeMap.computeIfAbsent(key, k -> new TreeMap<>()).put(timestamp, value);
}
public String get(String key, int timestamp) {
if (!keyTimeMap.containsKey(key)) {
return "";
}
TreeMap<Integer, String> times = keyTimeMap.get(key);
for (int currTime = timestamp; currTime >= 1; --currTime) {
if (times.containsKey(currTime)) {
return times.get(currTime);
}
}
return "";
}
}
Π‘ΡΠ°Π²Ρ π ΠΈ Π·Π°Π±ΠΈΡΠ°ΠΉ π ΠΠ°Π·Ρ Π·Π½Π°Π½ΠΈΠΉ6 522
ΠΠ°Π΄Π°ΡΠ°: 214. Shortest Palindrome
Π‘Π»ΠΎΠΆΠ½ΠΎΡΡΡ: hard
ΠΠ°Π½Π° ΡΡΡΠΎΠΊΠ° s. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΡ s Π² ΠΏΠ°Π»ΠΈΠ½Π΄ΡΠΎΠΌ, Π΄ΠΎΠ±Π°Π²ΠΈΠ² ΡΠΈΠΌΠ²ΠΎΠ»Ρ Π² Π½Π°ΡΠ°Π»ΠΎ ΡΡΡΠΎΠΊΠΈ.
ΠΠ΅ΡΠ½ΠΈΡΠ΅ ΡΠ°ΠΌΡΠΉ ΠΊΠΎΡΠΎΡΠΊΠΈΠΉ ΠΏΠ°Π»ΠΈΠ½Π΄ΡΠΎΠΌ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ, Π²ΡΠΏΠΎΠ»Π½ΡΡ ΡΡΠΎ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅.
ΠΡΠΈΠΌΠ΅Ρ:
Input: s = "aacecaaa" Output: "aaacecaaa"π¨βπ» ΠΠ»Π³ΠΎΡΠΈΡΠΌ: 1β£Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ: Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΠΎΠ±ΡΠ°ΡΠ½ΡΡ ΡΡΡΠΎΠΊΡ rev ΠΎΡ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ s, ΡΡΠΎΠ±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Ρ Π΄Π»Ρ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ. 2β£ΠΡΠ΅ΡΠ°ΡΠΈΡ Π΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠ° Π½Π°ΠΈΠ±ΠΎΠ»ΡΡΠ΅Π³ΠΎ ΠΏΠ°Π»ΠΈΠ½Π΄ΡΠΎΠΌΠ°: ΠΠ΅ΡΠ΅Π±ΠΈΡΠ°ΠΉΡΠ΅ ΠΈΠ½Π΄Π΅ΠΊΡ i ΠΎΡ 0 Π΄ΠΎ size(s) - 1. ΠΠ»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΠΉΡΠ΅, ΡΠ°Π²Π½Π° Π»ΠΈ ΠΏΠΎΠ΄ΡΡΡΠΎΠΊΠ° s ΠΎΡ Π½Π°ΡΠ°Π»Π° Π΄ΠΎ n - i ΠΏΠΎΠ΄ΡΡΡΠΎΠΊΠ΅ rev ΠΎΡ i Π΄ΠΎ ΠΊΠΎΠ½ΡΠ° ΡΡΡΠΎΠΊΠΈ. ΠΡΠ»ΠΈ ΡΡΠ»ΠΎΠ²ΠΈΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ, ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΏΠΎΠ΄ΡΡΡΠΎΠΊΠ° s ΠΎΡ Π½Π°ΡΠ°Π»Π° Π΄ΠΎ n - i ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠ°Π»ΠΈΠ½Π΄ΡΠΎΠΌΠΎΠΌ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ rev ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΉ ΡΡΡΠΎΠΊΠΎΠΉ s. 3β£ΠΠΎΠ·Π²ΡΠ°Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°: ΠΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ Π½Π°ΠΉΠ΄Π΅Π½ Π½Π°ΠΈΠ±ΠΎΠ»ΡΡΠΈΠΉ ΠΏΠ°Π»ΠΈΠ½Π΄ΡΠΎΠΌ, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΠΉΡΠ΅ ΡΡΡΠΎΠΊΡ, ΡΠΎΡΡΠΎΡΡΡΡ ΠΈΠ· ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΉ ΠΏΠΎΠ΄ΡΡΡΠΎΠΊΠΈ rev ΠΎΡ Π½Π°ΡΠ°Π»Π° Π΄ΠΎ i + ΠΈΡΡ ΠΎΠ΄Π½Π°Ρ ΡΡΡΠΎΠΊΠ° s. π Π Π΅ΡΠ΅Π½ΠΈΠ΅:
class Solution {
public String shortestPalindrome(String s) {
int n = s.length();
String rev = new StringBuilder(s).reverse().toString();
for (int i = 0; i < n; i++) {
if (s.substring(0, n - i).equals(rev.substring(i))) return (
rev.substring(0, i) + s
);
}
return "";
}
}
Π‘ΡΠ°Π²Ρ π ΠΈ Π·Π°Π±ΠΈΡΠ°ΠΉ π ΠΠ°Π·Ρ Π·Π½Π°Π½ΠΈΠΉ6 522
ΠΠ°Π΄Π°ΡΠ°: 995. Minimum Number of K Consecutive Bit Flips
Π‘Π»ΠΎΠΆΠ½ΠΎΡΡΡ: hard
ΠΠ°Π½ Π±ΠΈΠ½Π°ΡΠ½ΡΠΉ ΠΌΠ°ΡΡΠΈΠ² nums ΠΈ ΡΠ΅Π»ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ k.
ΠΠΏΠ΅ΡΠ°ΡΠΈΡ ΠΏΠ΅ΡΠ΅Π²ΠΎΡΠΎΡΠ° k-Π±ΠΈΡ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² Π²ΡΠ±ΠΎΡΠ΅ ΠΏΠΎΠ΄ΠΌΠ°ΡΡΠΈΠ²Π° Π΄Π»ΠΈΠ½ΠΎΠΉ k ΠΈΠ· nums ΠΈ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ 0 Π² ΠΏΠΎΠ΄ΠΌΠ°ΡΡΠΈΠ²Π΅ Π½Π° 1 ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ 1 Π² ΠΏΠΎΠ΄ΠΌΠ°ΡΡΠΈΠ²Π΅ Π½Π° 0.
ΠΠ΅ΡΠ½ΠΈΡΠ΅ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ k-Π±ΠΈΡΠ½ΡΡ
ΠΏΠ΅ΡΠ΅Π²ΠΎΡΠΎΡΠΎΠ², Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΡΡ
Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ Π½Π΅ ΠΎΡΡΠ°Π»ΠΎΡΡ 0. ΠΡΠ»ΠΈ ΡΡΠΎ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Π΅ΡΠ½ΠΈΡΠ΅ -1.
ΠΠΎΠ΄ΠΌΠ°ΡΡΠΈΠ² - ΡΡΠΎ Π½Π΅ΠΏΡΠ΅ΡΡΠ²Π½Π°Ρ ΡΠ°ΡΡΡ ΠΌΠ°ΡΡΠΈΠ²Π°.
ΠΡΠΈΠΌΠ΅Ρ:
Input: nums = [0,1,0], k = 1 Output: 2 Explanation: Flip nums[0], then flip nums[2].π¨βπ» ΠΠ»Π³ΠΎΡΠΈΡΠΌ: 1β£ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ : Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΠΌΠ°ΡΡΠΈΠ² flip, ΡΡΠΎΠ±Ρ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ, ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°Π· Π±ΡΠ» ΠΏΠ΅ΡΠ΅Π²Π΅ΡΠ½ΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ. ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠΉΡΠ΅ flips Π΄Π»Ρ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΡΠ΅ΠΊΡΡΠΈΡ ΠΏΠ΅ΡΠ΅Π²ΠΎΡΠΎΡΠΎΠ². 2β£ΠΠ΅ΡΠ΅Π±ΠΎΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΌΠ°ΡΡΠΈΠ²Π°: ΠΠ»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΠ΅, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π»ΠΈ Π΅Π³ΠΎ ΠΏΠ΅ΡΠ΅Π²ΠΎΡΠ°ΡΠΈΠ²Π°ΡΡ, ΡΡΠΈΡΡΠ²Π°Ρ ΡΠ΅ΠΊΡΡΠ΅Π΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠ΅ΡΠ΅Π²ΠΎΡΠΎΡΠΎΠ² ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π² ΠΌΠ°ΡΡΠΈΠ²Π΅. ΠΡΠ»ΠΈ Π½ΡΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π²Π΅ΡΠ½ΡΡΡ, ΡΠ²Π΅Π»ΠΈΡΡΡΠ΅ ΡΡΠ΅ΡΡΠΈΠΊ ΠΏΠ΅ΡΠ΅Π²ΠΎΡΠΎΡΠΎΠ² ΠΈ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΠ΅ ΠΌΠ°ΡΡΠΈΠ² flip. 3β£ΠΡΠΎΠ²Π΅ΡΠΊΠ° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π·Π°Π΄Π°ΡΠΈ: ΠΡΠ»ΠΈ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠ΅ΡΠ΅Π²ΠΎΡΠΎΡΠΎΠ² Π±ΠΎΠ»ΡΡΠ΅ Π΄Π»ΠΈΠ½Ρ ΠΌΠ°ΡΡΠΈΠ²Π°, Π²Π΅ΡΠ½ΠΈΡΠ΅ -1. π Π Π΅ΡΠ΅Π½ΠΈΠ΅:
public class Solution {
public int minKBitFlips(int[] nums, int k) {
int n = nums.length;
int flip = 0;
int flips = 0;
int[] flipQueue = new int[n];
for (int i = 0; i < n; i++) {
if (i >= k) {
flip ^= flipQueue[i - k];
}
if (nums[i] == flip) {
if (i + k > n) return -1;
flips++;
flip ^= 1;
flipQueue[i] = 1;
}
}
return flips;
}
}
Π‘ΡΠ°Π²Ρ π ΠΈ Π·Π°Π±ΠΈΡΠ°ΠΉ π ΠΠ°Π·Ρ Π·Π½Π°Π½ΠΈΠΉ6 522
ΠΠ°ΠΊ frontend-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΎΡΡΠ΅Ρ Π² Big Tech?
ΠΠ»Π°ΡΡΡ ΠΊΠ°ΠΊ Π΄ΠΆΡΠ½Ρ, Π° ΡΠΏΡΠ°ΡΠΈΠ²Π°ΡΡ ΠΊΠ°ΠΊ Ρ Π»ΠΈΠ΄Π° π ΠΠ°ΡΠΏΠ»Π°ΡΠ° Π½Π΅ ΡΠ°ΡΡΡΡ, Π·Π°Π΄Π°ΡΠΈ ΡΠΊΡΡΠ½ΡΠ΅.
ΠΡΠΎΠ±ΡΠ΅ΡΡ ΠΎΡΠΊΠ»ΠΈΠΊΠ°ΡΡΡΡ, Π½ΠΎ Π½Π° ΡΠ΅Π·ΡΠΌΠ΅ ΠΊΠ»ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π½ΠΎΡΠ½Π΅ΠΉΠΌ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ, Π° Π½Π° ΡΠΎΠ±Π΅ΡΠ°Ρ
Π²Π°Π»ΡΡ Π½Π° Π°Π»Π³ΠΎΡΠΈΡΠΌΠ°Ρ
? ΠΡΠΈ ΡΡΠΎΠΌ Π²ΠΎΠΊΡΡΠ³ ΠΊΡΠΎ-ΡΠΎ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΠΎΡΡΠ΅ΡΡ Π² Π―Π½Π΄Π΅ΠΊΡ ΠΈΠ»ΠΈ VK...
Π‘ΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎΡΡΡ Ρ ΠΌΠ°Π»Π΅Π½ΡΠΊΠΎΠΉ Π·ΠΏ, ΠΈΠ»ΠΈ Π΄Π΅ΡΡΡΠΎΠΉ ΡΡΠ½ΠΊΠ° ΠΈ Π²ΡΡ
ΠΎΠ΄ Π½Π° ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΡ? Π‘ΠΈΠ½ΡΡ ΠΈΠ»ΠΈ ΠΊΡΠ°ΡΠ½Π°Ρ ΡΠ°Π±Π»Π΅ΡΠΊΠ°, ΠΠ΅ΠΎ?! πΎ
ΠΠ΅Π½Ρ Π·ΠΎΠ²ΡΡ Π’ΠΈΡ ΠΎΠ½, ΠΏΡΠΈΠ²Π΅Ρ! Π― β Π΄Π΅ΠΉΡΡΠ²ΡΡΡΠΈΠΉ Frontend-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΈ ΠΌΠ΅Π½ΡΠΎΡ.ΠΠΎΠΌΠΎΠ³Π°Ρ ΡΡΡΡΠΎΠΈΡΡΡΡ Π½Π° Ρ ΠΎΡΠΎΡΠΈΠ΅ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ Π² Big Tech ΠΈ ΡΠΎΠΏΡΠΎΠ²ΠΎΠΆΠ΄Π°Ρ Π½Π° ΠΈΡΠΏΡΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠΌ ΡΡΠΎΠΊΠ΅. Π ΡΠ²ΠΎΠ΅ΠΌ ΠΊΠ°Π½Π°Π»Π΅: πΠ Π°Π·Π±ΠΈΡΠ°Ρ ΡΠ°ΠΌΡΠ΅ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠ΅ ΠΈ ΠΊΠ°Π²Π΅ΡΠ·Π½ΡΠ΅ Π²ΠΎΠΏΡΠΎΡΡ Π½Π° ΡΠΎΠ±Π΅ΡΠ°Ρ πΠ Π°ΡΡΠΊΠ°Π·ΡΠ²Π°Ρ ΠΊΠ°ΠΊ ΠΏΡΠΎΠΉΡΠΈ ΡΠΈΠ»ΡΡΡ HR πΠΠΎΡΡΡΡ Ρ ΡΠ±Π΅ΠΆΠ΄Π΅Π½ΠΈΡΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠ΅ΡΠ°ΡΡ ΡΠ°Π·Π²ΠΈΠ²Π°ΡΡΡΡ πΠΠ΅Π»ΡΡΡ Π»Π°ΠΉΡΡ Π°ΠΊΠ°ΠΌΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΊΠ°ΠΊ Π°ΠΊΠΊΡΡΠ°ΡΠ½ΠΎ βΠΏΠΈΠ½Π³ΠΎΠ²Π°ΡΡβ ΡΠ΅ΠΊΡΡΡΠ΅ΡΠΎΠ² Π Π΅Π³ΡΠ»ΡΡΠ½ΠΎ ΠΏΡΠ±Π»ΠΈΠΊΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΡΠ΅ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Ρ: βͺοΈ60 Π²ΠΎΠΏΡΠΎΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΡΠ½ΠΎ ΠΏΠΎΠΌΠΎΠ³ΡΡ ΡΠ΅Π±Π΅ Π½Π° ΡΠΎΠ±Π΅ΡΠ΅Π΄ΠΎΠ²Π°Π½ΠΈΠΈ. βͺοΈΠΠΎΠ΄Π±ΠΎΡΠΊΠ° ΠΈΠ· 100+ ΠΊΠ°Π½Π°Π»ΠΎΠ² Ρ Π²Π°ΠΊΠ°Π½ΡΠΈΡΠΌΠΈ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² βͺοΈ10 Π·Π°Π΄ΡΠΎΡΡΠΊΠΈΡ Π²ΠΎΠΏΡΠΎΡΠΎΠ² ΠΏΡΠΎ JavaScript, ΠΏΠΎΡΠ»Π΅ ΠΊΠΎΡΠΎΡΡΡ ΡΡ ΡΡΠΎΠΌΠ½ΠΈΡΡΡΡ, ΡΡΠΎ Π²ΠΎΠΎΠ±ΡΠ΅ Π·Π½Π°Π΅ΡΡ JS. Π§Π°ΡΡΡ 1 βͺοΈΠ§Π΅ΠΊ Π»ΠΈΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠ²ΠΎΠ΅Π³ΠΎ ΡΠ΅Π·ΡΠΌΠ΅ ΠΠΎΠ΄ΠΏΠΈΡΡΠ²Π°ΠΉΡΡ, Π½Π°Ρ ΡΠΆΠ΅ 4500 π€: ΡΡΡΠ»ΠΊΠ° Π Π΅ΠΊΠ»Π°ΠΌΠ°, erid 2W5zFJsgVhi: ΠΠ ΠΠ°Π»Π°ΠΊΡΠΈΠΎΠ½ΠΎΠ² Π’ΠΈΡ ΠΎΠ½ ΠΠΈΡΠ°Π»ΡΠ΅Π²ΠΈΡ, ΠΠΠ 771618975809
6 522
ΠΠ°Π΄Π°ΡΠ°: 186. Reverse Words in a String II
Π‘Π»ΠΎΠΆΠ½ΠΎΡΡΡ: medium
ΠΠ°Π½ ΠΌΠ°ΡΡΠΈΠ² ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² s, ΠΏΠ΅ΡΠ΅Π²Π΅ΡΠ½ΠΈΡΠ΅ ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΡΠ»ΠΎΠ².
Π‘Π»ΠΎΠ²ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², Π½Π΅ ΡΠ²Π»ΡΡΡΠΈΡ
ΡΡ ΠΏΡΠΎΠ±Π΅Π»Π°ΠΌΠΈ. Π‘Π»ΠΎΠ²Π° Π² s Π±ΡΠ΄ΡΡ ΡΠ°Π·Π΄Π΅Π»Π΅Π½Ρ ΠΎΠ΄Π½ΠΈΠΌ ΠΏΡΠΎΠ±Π΅Π»ΠΎΠΌ.
ΠΠ°Ρ ΠΊΠΎΠ΄ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠ΅ΡΠ°ΡΡ Π·Π°Π΄Π°ΡΡ Π½Π° ΠΌΠ΅ΡΡΠ΅, ΡΠΎ Π΅ΡΡΡ Π±Π΅Π· Π²ΡΠ΄Π΅Π»Π΅Π½ΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π°.
ΠΡΠΈΠΌΠ΅Ρ:
Input: s = ["a"] Output: ["a"]π¨βπ» ΠΠ»Π³ΠΎΡΠΈΡΠΌ: 1β£ΠΠ΅ΡΠ΅Π²Π΅ΡΠ½ΡΡΡ Π²ΡΡ ΡΡΡΠΎΠΊΡ: ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ ΡΡΠ½ΠΊΡΠΈΡ reverse, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠ΅ΡΠ΅Π²ΠΎΡΠ°ΡΠΈΠ²Π°Π΅Ρ Π²Π΅ΡΡ ΠΌΠ°ΡΡΠΈΠ² ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ΠΎΡ Π½Π°ΡΠ°Π»Π° Π΄ΠΎ ΠΊΠΎΠ½ΡΠ°. 2β£ΠΠ΅ΡΠ΅Π²Π΅ΡΠ½ΡΡΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ: ΠΏΡΠΎΠΉΡΠΈ ΠΏΠΎ Π²ΡΠ΅ΠΉ ΡΡΡΠΎΠΊΠ΅, ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡ Π³ΡΠ°Π½ΠΈΡΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π° ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΡ reverse Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π²ΠΎΡΠ°ΡΠΈΠ²Π°Π½ΠΈΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² Π² ΠΏΡΠ΅Π΄Π΅Π»Π°Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π°. 3β£ΠΠΊΠΎΠ½ΡΠ°ΡΠ΅Π»ΡΠ½Π°Ρ ΠΊΠΎΡΡΠ΅ΠΊΡΠΈΡΠΎΠ²ΠΊΠ°: ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ, ΡΡΠΎΠ±Ρ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ ΠΎΡΡΠ°Π²Π°Π»ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΏΡΠΎΠ±Π΅Π», ΠΈ ΡΠ΄Π°Π»ΠΈΡΡ Π»ΠΈΡΠ½ΠΈΠ΅ ΠΏΡΠΎΠ±Π΅Π»Ρ Π² Π½Π°ΡΠ°Π»Π΅ ΠΈ ΠΊΠΎΠ½ΡΠ΅ ΡΡΡΠΎΠΊΠΈ, Π΅ΡΠ»ΠΈ ΡΡΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ. π Π Π΅ΡΠ΅Π½ΠΈΠ΅:
class Solution {
public void reverse(char[] s, int left, int right) {
while (left < right) {
char tmp = s[left];
s[left++] = s[right];
s[right--] = tmp;
}
}
public void reverseEachWord(char[] s) {
int n = s.length;
int start = 0, end = 0;
while (start < n) {
while (end < n && s[end] != ' ') ++end;
reverse(s, start, end - 1); start = end + 1;
++end;
}
}
public void reverseWords(char[] s) {
reverse(s, 0, s.length - 1);
reverseEachWord(s);
}
}
Π‘ΡΠ°Π²Ρ π ΠΈ Π·Π°Π±ΠΈΡΠ°ΠΉ π ΠΠ°Π·Ρ Π·Π½Π°Π½ΠΈΠΉ6 522
CΡΠ°ΠΆΠΈΡΠΎΠ²ΠΊΠΈ ΠΈ Π²Π°ΠΊΠ°Π½ΡΠΈΠΈ Π΄Π»Ρ JAVA ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ².
- ΠΠ°ΠΊΠ°Π½ΡΠΈΠΈ ΠΊΠΎΡΠΎΡΡΡ
Π½Π΅Ρ Π½Π° Π΄ΠΆΠΎΠ±-Π°Π³ΡΠ΅Π³Π°ΡΠΎΡΠ°Ρ
- Π’ΠΎΠ»ΡΠΊΠΎ ΠΏΡΡΠΌΡΠ΅ ΠΊΠΎΠ½ΡΠ°ΠΊΡΡ HR Π² Telegram
π @jobs_java
π€ ML & DS π©βπ» DevOps
π¨ββοΈ ΠΠ & OSINT π£ Go
π©βπ» Mobile π©βπ» C#
π©βπ» Node.js π©βπ» Python
π QA π©βπ» Java
π©βπ» UX/UI π©βπ» Frontend
πΌοΈ PHP π Analyst
πΌ 1C π₯ SQL
π©βπ» IT HR
ΠΠΎΠΊΠ° Π΄ΡΡΠ³ΠΈΠ΅ Π»ΠΈΡΡΠ°ΡΡ Π΄ΠΆΠΎΠ±-ΡΠ°ΠΉΡΡ β ΡΡ ΡΠΆΠ΅ ΠΏΠΈΡΠ΅ΡΡ HR Π² Telegram.
