ΠžΠ±Ρ‰ΠΈΠ΅ вопросы Π½Π° собСсСдовании программиста: ΠΊΠ°ΠΊΠΈΠ΅ Π·Π°Π΄Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ ΡΠΏΡ€Π°ΡˆΠΈΠ²Π°ΡŽΡ‚, ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ°

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

Как ΠΏΡ€ΠΎΠΉΡ‚ΠΈ собСсСдованиС программисту β€” новости ΠΈ ΠΎΠ±Π·ΠΎΡ€Ρ‹ Ρ€Ρ‹Π½ΠΊΠ° HR

Π‘ΠΎΠ³Π»Π°ΡΠΈΡ‚Π΅ΡΡŒ, ΠΎΡ‚ собСсСдования зависит ΠΌΠ½ΠΎΠ³ΠΎΠ΅. Если Π²Ρ‹ Π½Π΅ проявили сСбя с Π΄ΠΎΠ»ΠΆΠ½ΠΎΠΉ стороны ΠΏΡ€ΠΈ Π»ΠΈΡ‡Π½ΠΎΠΌ ΠΈΠ½Ρ‚Π΅Ρ€Π²ΡŒΡŽ с Ρ€Π°Π±ΠΎΡ‚ΠΎΠ΄Π°Ρ‚Π΅Π»Π΅ΠΌ, Ρ‚ΠΎ Π΄Π°ΠΆΠ΅ шансов ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ тСстовоС Π·Π°Π΄Π°Π½ΠΈΠ΅ Ρƒ вас ΠΎΡ‡Π΅Π½ΡŒ ΠΌΠ°Π»ΠΎ. Если ΠΆΠ΅ Π·Π°Π΄Π°Π½ΠΈΠ΅ Π²Ρ‹ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ»ΠΈ Ρ€Π°Π½Π΅Π΅, Π° Π»ΠΈΡ‡Π½ΡƒΡŽ бСсСду ΠΏΡ€ΠΎΠ²Π°Π»ΠΈΠ»ΠΈ, Ρ‚ΠΎ шансов ΠΏΠΎΠΏΠ°ΡΡ‚ΡŒ Π½Π° эту Ρ€Π°Π±ΠΎΡ‚Ρƒ Ρ‚ΠΎΠΆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ. КакиС вопросы Π·Π°Π΄Π°ΡŽΡ‚ программисту Π½Π° собСсСдовании? Как ΠΊ Π½Π΅ΠΌΡƒ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΡ‚ΡŒΡΡ?

Π’ классичСском Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π΅ собСсСдованиС программиста ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ Π² 2 этапа. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ HR-спСциалист. Он просит Ρ€Π°ΡΡΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΎΠ± ΡƒΡ€ΠΎΠ²Π½Π΅ вашСй ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ, ΠΎΠΏΡ‹Ρ‚Π΅, цСлях, Π»ΠΈΡ‡Π½Ρ‹Ρ… качСствах. Π”Π°Π»Π΅Π΅ Π²Ρ‹ выполняСтС тСстовоС Π·Π°Π΄Π°Π½ΠΈΠ΅ ΠΈ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚Π΅ Π½Π° Π²Ρ‚ΠΎΡ€ΠΎΠ΅ ΠΈΠ½Ρ‚Π΅Ρ€Π²ΡŒΡŽ – с тСхничСским спСциалистом.

Если HR-Π° Π² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Π½Π΅Ρ‚, вас сразу протСстируСт программист, Π° Π·Π°Ρ‚Π΅ΠΌ Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ тСстовоС Π·Π°Π΄Π°Π½ΠΈΠ΅ (ΠΏΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°ΠΌ бСсСды). Π•ΡΡ‚ΡŒ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π²Π°Ρ€ΠΈΠ°Ρ†ΠΈΠΈ – Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, 3-этапноС собСсСдованиС, ΠΈΡ‚ΠΎΠ³ΠΎΠΌ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ являСтся ΠΈΠ½Ρ‚Π΅Ρ€Π²ΡŒΡŽ с Ρ€ΡƒΠΊΠΎΠ²ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΌ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ. Но ΠΏΠ΅Ρ€Π²Ρ‹Π΅ Π΄Π²Π° – самыС популярныС.

ΠŸΠ»Π°ΡΡ‚ ΠΎΠ±Ρ‰ΠΈΡ… вопросов ΠΌΠΎΠΆΠ΅Ρ‚ Π² сСбя Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅:

  • Π”Π°ΠΉΡ‚Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ компилятору ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Ρƒ;
  • НазовитС Ρ‚ΠΈΠΏΡ‹ констант;
  • Π§Ρ‚ΠΎ прСдставляСт собой мСтодология Agile;
  • Π’ Ρ‡Π΅ΠΌ ΠΏΠ»ΡŽΡΡ‹ ΠΈ минусы ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΠ³ΠΎ программирования;
  • КакиС нововвСдСния Π±Ρ‹Π»ΠΈ Π² послСднСС врСмя Π² языкС N ΠΈ Ρ‚.ΠΏ.

Π’Π°ΠΊΠΆΠ΅ Π½Π° собСсСдовании Π½Π° Π΄ΠΎΠ»ΠΆΠ½ΠΎΡΡ‚ΡŒ программиста ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΏΡ€Π°ΡˆΠΈΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ сортировки (слияниС, вставка, ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΏΡƒΠ·Ρ‹Ρ€ΡŒΠΊΠ° ΠΈ ΠΏΡ€.) ΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ поиска Π² массивС Π΄Π°Π½Π½Ρ‹Ρ…, пСрСстановки ΠΈ Π·Π°ΠΌΠ΅Π½Ρ‹.

Π§Ρ‚ΠΎ касаСтся ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ умСния Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с ΠΊΡ€ΡƒΠΏΠ½Ρ‹ΠΌΠΈ массивами, Ρ‚ΠΎ здСсь программистам Π½Π° собСсСдовании ΠΌΠΎΠ³ΡƒΡ‚ ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ:

  • Найти максимум ΠΈ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ Π² массивС ΠΈΠ· 100 чисСл с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹;
  • Β«Π Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΒ» массив Ρ†Π΅Π»Ρ‹Ρ… чисСл Π±Π΅Π· примСнСния ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ;
  • ΠΠ°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ вставки ΠΏΡ€ΠΎΠΏΡƒΡ‰Π΅Π½Π½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈ удалСния Π΄ΡƒΠ±Π»Π΅ΠΉ Π² массивС Ρ†Π΅Π»Ρ‹Ρ… чисСл Π±Π΅Π· примСнСния Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΠΈ Ρ‚.Π΄.

Π­Ρ‚ΠΎ самыС простыС Π·Π°Π΄Π°Ρ‡ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠ΅Ρ€Π΅Π΄ Π²Π°ΠΌΠΈ ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ. ΠžΠΏΡ‹Ρ‚Π½Ρ‹ΠΉ спСциалист Π»Π΅Π³ΠΊΠΎ с Π½ΠΈΠΌΠΈ справится. А Π²ΠΎΡ‚ Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Β«ΠΏΠΎΡΡ‹ΠΏΠ°Ρ‚ΡŒΡΡΒ» Π΄Π°ΠΆΠ΅ Π½Π° Π·Π°Π΄Π°Ρ‡Π°Ρ… ΠΏΠΎ Ρ€Π°Π±ΠΎΡ‚Π΅ со строками, Π·Π°ΠΏΡƒΡ‚Π°Π²ΡˆΠΈΡΡŒ Π² совмСстимости Ρ‚ΠΈΠΏΠΎΠ². Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Ρ‚Π°ΠΊΠΈΡ… Π·Π°Π΄Π°Ρ‡:

  • ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ строку Π½Π° Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Ρ†ΠΈΡ„Ρ€ ΠΈΠ»ΠΈ Π΄ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… символов;
  • ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ для подсчСта гласных Π² строкС;
  • ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ для поиска Π² Ρ€Π΅Π·ΡŽΠΌΠ΅ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΈΡ… ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π² Π½ΡƒΠΆΠ½Ρ‹Π΅ массивы для ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

Вакая ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° позволяСт сразу ΠΎΡ‚ΡΠ΅ΡΡ‚ΡŒ Π½Π΅ΠΎΠΏΡ‹Ρ‚Π½Ρ‹Ρ… ΠΊΠ°Π½Π΄ΠΈΠ΄Π°Ρ‚ΠΎΠ². А для IT-спСциалистов с высоким ΡƒΡ€ΠΎΠ²Π½Π΅ΠΌ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ эти ΠΈ Π±ΠΎΠ»Π΅Π΅ слоТныС Π·Π°Π΄Π°Ρ‡ΠΈ Π½Π΅ составит Ρ‚Ρ€ΡƒΠ΄Π°. Однако ΠΏΠΎΡ‚Ρ€Π΅Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΠ΅Ρ€Π΅Π΄ собСсСдованиСм Ρ‚ΠΎΠΆΠ΅ Π½Π΅ ΠΏΠΎΠΌΠ΅ΡˆΠ°Π΅Ρ‚.

Π­Ρ‚ΠΎ Π±Ρ‹Π»ΠΈ ΠΎΠ±Ρ‰ΠΈΠ΅ вопросы. По ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌΡƒ языку программирования, ΠΊΡ€ΠΎΠΌΠ΅ ΠΎΠ±Ρ‰ΠΈΡ…, ΠΏΠ΅Ρ€Π΅Π΄ Π²Π°ΠΌΠΈ Π±ΡƒΠ΄ΡƒΡ‚ поставлСны совсСм Π΄Ρ€ΡƒΠ³ΠΈΠ΅ вопросы ΠΈ Π·Π°Π΄Π°Ρ‡ΠΈ. Π’ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ всС ΠΈΡ… ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ. Но Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΌ языком, придСтся Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π½ΡŒΠΊΠΎ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΡ‚ΡŒΡΡ, Ρ‚ΠΎΠ³Π΄Π° собСсСдованиС ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΠΉΠ΄Π΅Ρ‚ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ.

50 вопросов ΠΈ ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ² ΠΏΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ для ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ ΠΊ тСхничСскому ΠΈΠ½Ρ‚Π΅Ρ€Π²ΡŒΡŽ

Π“ΠΎΡ‚ΠΎΠ²ΡΡΡŒ к собСсСдованию, ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠ΅ программисты понятия Π½Π΅Β ΠΈΠΌΠ΅ΡŽΡ‚, ΠΊΠ°ΠΊΠΈΡ… вопросов ΠΎΠΆΠΈΠ΄Π°Ρ‚ΡŒ ΠΎΡ‚Β ΠΈΠ½Ρ‚Π΅Ρ€Π²ΡŒΠ΅ΡŽΡ€ΠΎΠ²Β β€” Π±ΡƒΠ΄ΡŒ то собСсСдованиС в стартап ΠΈΠ»ΠΈ тСхнологичСский Π³ΠΈΠ³Π°Π½Ρ‚ Π²Ρ€ΠΎΠ΄Π΅Β Amazon,Β MicrosoftΒ ΠΈΠ»ΠΈΒ Google. Π’Β ΡΡ‚Π°Ρ‚ΡŒΠ΅ Π½Π°Β Hacker Noon Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΒ Π”ΠΆΠ°Π²ΠΈΠ½ ΠŸΠΎΠ»Β ΡΠΎΠ±Ρ€Π°Π»Β Π²ΠΎΠΏΡ€ΠΎΡΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π»ΡŽΠ±ΡΡ‚ Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ Π½Π°Β Ρ‚Π°ΠΊΠΈΡ… ΠΈΠ½Ρ‚Π΅Ρ€Π²ΡŒΡŽ, Π°Β Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΡ‚Π²Π΅Ρ‚Ρ‹ Π½Π°Β Π½ΠΈΡ… ΠΈΒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ рСсурсы для ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ. Π‘Π°ΠΉΡ‚ DEV.BY ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π» ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΡΡ‚Π°Ρ‚ΡŒΠΈ.

ВсС задания, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ с большой Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒΡŽ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ°Ρ‚ ΠΊΠΎΠ΄Π΅Ρ€Ρƒ на тСхничСском собСсСдовании, ΠΌΠΎΠΆΠ½ΠΎ условно Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½Π°Β Π΄Π²Π΅ Π³Ρ€ΡƒΠΏΠΏΡ‹: ΠΎΠ±Ρ‰ΠΈΠ΅ логичСскиС Π·Π°Π΄Π°Ρ‡ΠΈ Ρ‚ΠΈΠΏΠ° Β«ΠΏΠΎΠΌΠ΅Π½ΡΡ‚ΡŒ значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, Π½Π΅Β ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽΒ», Π°Β Ρ‚Π°ΠΊΠΆΠ΅ вопросы по структурам Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°ΠΌ. НаиболСС частыС из послСдних: массивы, связныС списки, строки, Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹Π΅ Π΄Π΅Ρ€Π΅Π²ΡŒΡ, Π°Β Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ вопросы ΠΏΠΎΒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°ΠΌΒ β€” ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΎΠ½ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ рассмотрСны Π½ΠΈΠΆΠ΅.

Но прСТдС Ρ‡Π΅ΠΌ ΠΏΡ€ΠΈΡΡ‚ΡƒΠΏΠΈΡ‚ΡŒ ΠΊΒ Π½ΠΈΠΌ, понадобится Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ эти Ρ‚Π΅ΠΌΡ‹, ΠΈΠ»ΠΈ ΠΏΠΎΒ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅ ΠΎΡΠ²Π΅ΠΆΠΈΡ‚ΡŒ Π½Π°Π²Ρ‹ΠΊΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ ΠΏΠΎΒ Π½ΠΈΠΌ. Для этого ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠΉΡ‚ΠΈ курс ΠΏΠΎΒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°ΠΌ и структурам Π΄Π°Π½Π½Ρ‹Ρ…Β Π ΠΎΠ±Π΅Ρ€Ρ‚Π° Π₯ΠΎΡ€Π²ΠΈΠΊΠ°:Β Ρ‡Π°ΡΡ‚ΡŒ 1Β ΠΈΒ Ρ‡Π°ΡΡ‚ΡŒ 2.

Бписок Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ часто Π·Π°Π΄Π°Π²Π°Π΅ΠΌΡ‹Ρ… вопросов для собСсСдований ΠΏΠΎΒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ.

1. ΠœΠ°ΡΡΠΈΠ²Ρ‹

ΠœΠ°ΡΡΠΈΠ²Β β€” это ваТнСйшая структура Π΄Π°Π½Π½Ρ‹Ρ…, хранящая Π½Π°Π±ΠΎΡ€ элСмСнтов Π²Β Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎΠΌ участкС памяти. Π­Ρ‚ΠΎ излюблСнная Ρ‚Π΅ΠΌΠ° ΠΈΠ½Ρ‚Π΅Ρ€Π²ΡŒΡŽΠ΅Ρ€ΠΎΠ², ΠΈΒ ΠΌΠ½ΠΎΠ³ΠΎ вопросов ΠΏΠΎΒ Π½Π΅ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΆΠΈΠ΄Π°Ρ‚ΡŒΒ Π²Β Π»ΡŽΠ±ΠΎΠΌ собСсСдовании, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ на рСвСрс, сортировку ΠΈΠ»ΠΈ поиск элСмСнтов массива.

Π“Π»Π°Π²Π½Ρ‹ΠΉ плюс Ρ‚Π°ΠΊΠΎΠΉ структуры Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠ°ΠΊ массив — он обСспСчиваСт быстрый поиск ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ О(1) ΠΏΡ€ΠΈ Π·Π½Π°Π½ΠΈΠΈ индСксов, Π½ΠΎΒ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈΒ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ элСмСнтов ΠΈΠ·Β Π½Π΅Π³ΠΎ происходит ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ нСльзя ΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ массива послС создания. Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ ΠΈΠ»ΠΈ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ массив, Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ ΠΈΒ ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²Β Π½Π΅Π³ΠΎ всС элСмСнты из старого.

Π§Ρ‚ΠΎΠ±Ρ‹ ΡΒ Π»Ρ‘Π³ΠΊΠΎΡΡ‚ΡŒΡŽ ΠΎΡ‚Π²Π΅Ρ‡Π°Ρ‚ΡŒ на вопросы, связанным с массивами, Π½ΡƒΠΆΠ½ΠΎ Ρ…ΠΎΡ€ΠΎΡˆΠΎ Ρ€Π°Π·Π±ΠΈΡ€Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ с самими массивами, Ρ‚Π°ΠΊ и с базовыми конструкторами, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ рСкурсия и основныС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹.

Π’ΠΎΡ‚ самыС частыС вопросы:

  1. Как Π½Π°ΠΉΡ‚ΠΈ ΠΏΡ€ΠΎΠΏΡƒΡ‰Π΅Π½Π½ΠΎΠ΅ число Π²Β Π·Π°Π΄Π°Π½Π½ΠΎΠΌ массивС Ρ†Π΅Π»Ρ‹Ρ… чисСл ΠΎΡ‚Β 1 Π΄ΠΎΒ 100? (Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅)
  2. Как Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰Π΅Π΅ΡΡ число Π²Β Π·Π°Π΄Π°Π½Π½ΠΎΠΌ массивС Ρ†Π΅Π»Ρ‹Ρ… чисСл? (Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅)
  3. Как Π½Π°ΠΉΡ‚ΠΈ наибольшСС и наимСньшСС число в нСотсортированном массивС? (
    Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅
    )
  4. Как Π½Π°ΠΉΡ‚ΠΈ всС ΠΏΠ°Ρ€Ρ‹ в массивС Ρ†Π΅Π»Ρ‹Ρ… чисСл, сумма ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ€Π°Π²Π½Π° Π·Π°Π΄Π°Π½Π½ΠΎΠΌΡƒ числу? (Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅)
  5. Как Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΠ΅ΡΡ числа в массивС, Ссли ΠΈΡ…Β Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΎ? (Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅)
  6. Как ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΠ΅ΡΡ элСмСнты ΠΈΠ·Β Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ массива Π²Β Java? (Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅)
  7. Как ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ массив Ρ†Π΅Π»Ρ‹Ρ… чисСл Π±Π΅Π· Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ памяти ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° быстрой сортировки? (Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅)
  8. Как ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΠ΅ΡΡ элСмСнты из массива Π±Π΅Π· Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ памяти? (Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅
    )
  9. Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΠΎΠΌΠ΅Π½ΡΡ‚ΡŒ порядок элСмСнтов в массивС Π½Π°Β ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ Π±Π΅Π· Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ памяти Π²Β Java? (Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅)
  10. Как ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΠ΅ΡΡ элСмСнты из массива Π±Π΅Π· использования ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΉ? (Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅)

Π­Ρ‚ΠΈ вопросы ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ Π½Π΅Β Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ€Π°Π·Π²ΠΈΡ‚ΡŒ Π½Π°Π²Ρ‹ΠΊΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡, Π½ΠΎΒ ΠΈΒ ΠΏΡ€ΠΎΠΊΠ°Ρ‡Π°Ρ‚ΡŒ знания по массивам. Π‘ΠΎΠ»Π΅Π΅ слоТныС вопросы ΠΏΠΎΒ Ρ‚Π΅ΠΌΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ в курсС ΠΏΠΎΒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°ΠΌΒ The Coding Interview Bootcamp: Algorithms + Data Structures, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½ΠΎΠΌ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ для ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ к собСсСдованиям Π²Β Ρ‚Π°ΠΊΠΈΡ… тСхнологичСских Π³ΠΈΠ³Π°Π½Ρ‚Π°Ρ…, ΠΊΠ°ΠΊ Google, Microsoft, Apple ΠΈΠ»ΠΈ Facebook.

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡƒΠΏΡ€Π°ΠΆΠ½ΡΡ‚ΡŒΡΡ на этой ΠΏΠΎΠ΄Π±ΠΎΡ€ΠΊΠ΅ ΠΈΠ·Β 30 вопросов.

The Coding Interview Bootcamp

2. Бвязный список:

Π•Ρ‰Ρ‘ ΠΎΠ΄Π½Π° базовая структура Π΄Π°Π½Π½Ρ‹Ρ…Β β€” связный список. Как и массив, это линСйная структура Π΄Π°Π½Π½Ρ‹Ρ…, и элСмСнты Π²Β Π½Ρ‘ΠΌ хранятся Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎ, Π½ΠΎΒ Π²Β ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ от массива — Π½Π΅Β Π²Β Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½Ρ‹Ρ… областях. Они разбросаны в памяти ΠΈΒ ΡΠΎΠ΅Π΄ΠΈΠ½ΡΡŽΡ‚ΡΡ ΡΒ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡƒΠ·Π»ΠΎΠ². Бвязный список — Π½ΠΈΡ‡Ρ‚ΠΎ ΠΈΠ½ΠΎΠ΅, ΠΊΠ°ΠΊ список ΡƒΠ·Π»ΠΎΠ², ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ·Β ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… содСрТит собствСнно Π΄Π°Π½Π½Ρ‹Π΅ и ссылку Π½Π°Β ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΡƒΠ·Π΅Π».

Благодаря Ρ‚Π°ΠΊΠΎΠΉ структурС Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ ΠΈΒ ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ элСмСнты в связном спискС достаточно Π»Π΅Π³ΠΊΠΎ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π½ΡƒΠΆΠ½ΠΎ просто ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ссылку Π±Π΅Π· нСобходимости ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ список. ΠŸΡ€ΠΈ этом ΠΈΡΠΊΠ°Ρ‚ΡŒ элСмСнты слоТнСС; поиск по односвязному списку Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎΠ΅ врСмя O(n).

В этой ΡΡ‚Π°Ρ‚ΡŒΠ΅Β ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΏΡ€ΠΎΡ‡Π΅ΡΡ‚ΡŒ о различиях ΠΌΠ΅ΠΆΠ΄Ρƒ массивами и односвязными списками.

Π•ΡΡ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ Π²ΠΈΠ΄Ρ‹ связных списков: односвязный список, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт ΠΏΠ΅Ρ€Π΅Π΄Π²ΠΈΠ³Π°Ρ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Β ΠΎΠ΄Π½Ρƒ сторону: Π²Β Π½Π°Ρ‡Π°Π»ΠΎ ΠΈΠ»ΠΈ Π²Β ΠΊΠΎΠ½Π΅Ρ†; двусвязный список, Π΄Π°ΡŽΡ‰ΠΈΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ пСрСмСщСния ΠΊΠ°ΠΊ Π²ΠΏΠ΅Ρ€Ρ‘Π΄, Ρ‚Π°ΠΊ ΠΈΒ Π½Π°Π·Π°Π΄; ΠΊΠΎΠ»ΡŒΡ†Π΅Π²ΠΎΠΉ список, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅Ρ‚ Π·Π°Ρ†ΠΈΠΊΠ»Π΅Π½Π½ΡƒΡŽ структуру.

Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΡΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒΡΡ с вопросами ΠΏΠΎΒ Π»ΠΈΠ½Π΅ΠΉΠ½Ρ‹ΠΌ спискам, Π²Π°ΠΆΠ½ΠΎ Ρ…ΠΎΡ€ΠΎΡˆΠΎ Π·Π½Π°Ρ‚ΡŒΒ Ρ€Π΅ΠΊΡƒΡ€ΡΠΈΡŽ. Если ΠΈΠ·Π²Π»Π΅Ρ‡ΡŒ из связного списка ΠΎΠ΄ΠΈΠ½ ΡƒΠ·Π΅Π», ΠΎΡΡ‚Π°Π²ΡˆΠ°ΡΡΡ структура ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ Π±ΡƒΠ΄Π΅Ρ‚ связным списком, и поэтому для ΠΌΠ½ΠΎΠ³ΠΈΡ… Π·Π°Π΄Π°Ρ‡ в этой Ρ‚Π΅ΠΌΠ΅ Π±ΠΎΠ»Π΅Π΅ простыми ΡΠ²Π»ΡΡŽΡ‚ΡΡ рСкурсивныС Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, Ρ‡Π΅ΠΌ ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅.

Вопросы для собСсСдования:

  1. Как Π½Π°ΠΉΡ‚ΠΈ Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½Ρ‹ΠΉ элСмСнт в односвязном спискС Π·Π°Β ΠΎΠ΄ΠΈΠ½ ΠΏΡ€ΠΎΡ…ΠΎΠ΄? (Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅)
  2. Как ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π·Π°Π΄Π°Π½Π½Ρ‹ΠΉ связный список Π½Π°Β Ρ†ΠΈΠΊΠ»ΠΈΡ‡Π½ΠΎΡΡ‚ΡŒ? Как Π½Π°ΠΉΡ‚ΠΈ исходный ΡƒΠ·Π΅Π» Ρ†ΠΈΠΊΠ»Π°? (
    Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅)
  3. Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ рСвСрс связного списка? (Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅)
  4. Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ рСвСрс односвязного списка Π±Π΅Π· рСкурсии? (Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅)
  5. Как ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΠ΅ΡΡ ΡƒΠ·Π»Ρ‹ из нСсортированного связного списка? (Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅)
  6. Как Π½Π°ΠΉΡ‚ΠΈ Π΄Π»ΠΈΠ½Ρƒ односвязного списка? (Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅)
  7. Как Π½Π°ΠΉΡ‚ΠΈ 3-ΠΉ ΡƒΠ·Π΅Π» с конца в односвязном спискС? (Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅)
  8. Как Π½Π°ΠΉΡ‚ΠΈ сумму Π΄Π²ΡƒΡ… связных списков, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ стСк? (Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅
    )

Π­Ρ‚ΠΈ вопросы ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°Π·Π²ΠΈΡ‚ΡŒ ΡƒΠΌΠ΅Π½ΠΈΠ΅ Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ Π·Π°Π΄Π°Ρ‡ΠΈ на связныС списки ΠΈΒ ΡƒΠ³Π»ΡƒΠ±ΠΈΡ‚ΡŒ Π·Π½Π°Π½ΠΈΠ΅ этой структуры Π΄Π°Π½Π½Ρ‹Ρ…. Если ΠΎΠ½ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ трудности, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ свои знания структур Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ², пройдя курс Data Structures and Algorithms: Deep Dive Using Java.

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡ‚Ρ€Π΅Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ на этом спискС ΠΈΠ·Β 30 вопросов.

3. Π‘Ρ‚Ρ€ΠΎΠΊΠΈ

Помимо массивов и связных списков, Π΅Ρ‰Ρ‘ ΠΎΠ΄Π½ΠΎΠΉ популярной Ρ‚Π΅ΠΌΠΎΠΉ ΡΠ²Π»ΡΡŽΡ‚ΡΡ строки: вопросы по ним Π½Π΅ΠΈΠ·ΠΌΠ΅Π½Π½ΠΎ Π·Π²ΡƒΡ‡Π°Ρ‚ Π½Π°Β ΠΊΠ°ΠΆΠ΄ΠΎΠΌ собСсСдовании на долТности Π²Β ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ.

Плюсом здСсь ΠΌΠΎΠΆΠ½ΠΎ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ зная массивы, ΠΎΡ‡Π΅Π½ΡŒ Π»Π΅Π³ΠΊΠΎ Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ Π·Π°Π΄Π°Ρ‡ΠΈ на строки, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ строка прСдставляСт собой массив символов. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, всС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, усвоСнныС ΠΏΡ€ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΈ вопросов на массивы, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ и для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ вопросов на строки.

Π’ΠΎΡ‚ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ частыС ΠΈΠ·Β Π½ΠΈΡ…:

  1. Как вывСсти ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΠ΅ΡΡ символы из строки? (Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅)
  2. Как ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, ΡΠ²Π»ΡΡŽΡ‚ΡΡΒ Π»ΠΈ Π΄Π²Π΅ строки Π°Π½Π°Π³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ? (Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅)
  3. Как вывСсти ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Π½Π΅ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΠΉΡΡ символ из строки? (Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅)
  4. Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ рСвСрс Π·Π°Π΄Π°Π½Π½ΠΎΠΉ строки с использованиСм рСкурсии? (Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅)
  5. Как ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ строка состоит Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ·Β Ρ†ΠΈΡ„Ρ€? (Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅)
  6. Как Π½Π°ΠΉΡ‚ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΠΉΡΡ символ в строкС? (Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅)
  7. Как ΠΏΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ количСство гласных и согласных Π·Π²ΡƒΠΊΠΎΠ² Π²Β Π·Π°Π΄Π°Π½Π½ΠΎΠΉ строкС? (Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅)
  8. Как ΠΏΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ, сколько Ρ€Π°Π· в строкС встрСчаСтся Π·Π°Π΄Π°Π½Π½Ρ‹ΠΉ символ? (Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅)
  9. Как Π½Π°ΠΉΡ‚ΠΈ всС Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ пСрСстановки элСмСнтов строки? (Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅)
  10. Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ рСвСрс слов Π²Β Π·Π°Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΈ, Π½Π΅Β ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ классы-ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ? (Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅)
  11. Как ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, являСтся ли ΠΎΠ΄Π½Π° строка пСрСстановкой Π΄Ρ€ΡƒΠ³ΠΎΠΉ? (Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅)
  12. Как ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, являСтся ли заданная строка ΠΏΠ°Π»ΠΈΠ½Π΄Ρ€ΠΎΠΌΠΎΠΌ? (Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅)

Π‘ΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ эти вопросы Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ о достаточно Ρ…ΠΎΡ€ΠΎΡˆΠ΅ΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ Π²Π»Π°Π΄Π΅Π½ΠΈΠΉ строками. Π‘ΠΎΠ»Π΅Π΅ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π²Β ΠΊΠ½ΠΈΠ³Π΅ «Алгоритмы. Руководство по разработкС» БтивСна Π‘ΠΊΠΈΠ΅Π½Ρ‹.

Π•Ρ‰Ρ‘ 20 вопросов ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈΒ Π·Π΄Π΅ΡΡŒ.

4. Π”Π²ΠΎΠΈΡ‡Π½ΠΎΠ΅ Π΄Π΅Ρ€Π΅Π²ΠΎ поиска

ВсС рассмотрСнныС Π²Ρ‹ΡˆΠ΅ структуры — Π»ΠΈΠ½Π΅ΠΉΠ½Ρ‹Π΅, ΠΎΠ΄Π½Π°ΠΊΠΎ Π²Β Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ всю ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, и здСсь ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ такая структура Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠ°ΠΊ Π΄Π΅Ρ€Π΅Π²ΠΎ.

Π”Π΅Ρ€Π΅Π²ΠΎ позволяСт Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π²Β Π²ΠΈΠ΄Π΅ ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ. В зависимости от способа хранСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Π΄Π΅Ρ€Π΅Π²ΡŒΠ΅Π², Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€Β Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ΅ Π΄Π΅Ρ€Π΅Π²ΠΎ, Π²Β ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΡƒΠ·Π΅Π» ΠΈΠΌΠ΅Π΅Ρ‚ Π½Π΅Β Π±ΠΎΠ»Π΅Π΅ Π΄Π²ΡƒΡ… Π΄ΠΎΡ‡Π΅Ρ€Π½ΠΈΡ… элСмСнтов. Наряду с двоичным Π΄Π΅Ρ€Π΅Π²ΠΎΠΌ поиска, это ΠΎΠ΄Π½Π° из самых ΡˆΠΈΡ€ΠΎΠΊΠΎ распространённых Π΄Ρ€Π΅Π²ΠΎΠ²ΠΈΠ΄Π½Ρ‹Ρ… структур Π΄Π°Π½Π½Ρ‹Ρ…, Π°Β Π·Π½Π°Ρ‡ΠΈΡ‚, ΠΏΠΎΒ Π½Π΅ΠΌΡƒ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ попадётся мноТСство вопросов, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΈΡ…Β ΠΎΠ±Ρ…ΠΎΠ΄, подсчёт ΡƒΠ·Π»ΠΎΠ², ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π³Π»ΡƒΠ±ΠΈΠ½Ρ‹ и сбалансированности Π΄Π΅Ρ€Π΅Π²Π°.

Π‘Π΅ΠΊΡ€Π΅Ρ‚ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠ³ΠΎ прохоТдСния вопросов, связанных с двоичным Π΄Π΅Ρ€Π΅Π²ΠΎΠΌΒ β€” ΠΎΡΠ½ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Π½ΠΈΠ΅ Ρ‚Π΅ΠΎΡ€ΠΈΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΈΠ»ΠΈ Π³Π»ΡƒΠ±ΠΈΠ½Π° Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ³ΠΎ Π΄Π΅Ρ€Π΅Π²Π°, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ лист ΠΈΒ ΡƒΠ·Π΅Π», Π°Β Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ основных Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² ΠΎΠ±Ρ…ΠΎΠ΄Π° Π΄Π΅Ρ€Π΅Π²Π°: в прямом, симмСтричном ΠΈΒ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΌ порядкС.

НаиболСС распространённыС вопросы ΠΏΠΎΒ Π±ΠΈΠ½Π°Ρ€Π½Ρ‹ΠΌ Π΄Π΅Ρ€Π΅Π²ΡŒΡΠΌ:

  1. Как рСализуСтся Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ΅ Π΄Π΅Ρ€Π΅Π²ΠΎ поиска? (Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅)
  2. Как Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΎΠ±Ρ…ΠΎΠ΄ в прямом порядкС Π²Β Π·Π°Π΄Π°Π½Π½ΠΎΠΌ Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠΌ Π΄Π΅Ρ€Π΅Π²Π΅? (Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅)
  3. Как ΠΎΠ±ΠΎΠΉΡ‚ΠΈ Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ΅ Π΄Π΅Ρ€Π΅Π²ΠΎ в прямом порядкС Π±Π΅Π· рСкурсии? (Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅)
  4. Как Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ симмСтричный ΠΎΠ±Ρ…ΠΎΠ΄ Π²Β Π·Π°Π΄Π°Π½Π½ΠΎΠΌ Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠΌ Π΄Π΅Ρ€Π΅Π²Π΅? (Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅)
  5. Как вывСсти всС ΡƒΠ·Π»Ρ‹ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ³ΠΎ Π΄Π΅Ρ€Π΅Π²Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ симмСтричный ΠΎΠ±Ρ…ΠΎΠ΄ Π±Π΅Π· рСкурсии? (Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅)
  6. Как примСняСтся Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΎΠ±Ρ…ΠΎΠ΄Π° Π²Β ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΌ порядкС? (Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅)
  7. Как ΠΎΠ±ΠΎΠΉΡ‚ΠΈ Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ΅ Π΄Π΅Ρ€Π΅Π²ΠΎ Π²Β ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΌ порядкС Π±Π΅Π· рСкурсии? (Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅)
  8. Как вывСсти Π½Π°Β ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ всС Π»ΠΈΡΡ‚ΡŒΡ Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ³ΠΎ Π΄Π΅Ρ€Π΅Π²Π° поиска? (Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅)
  9. Как ΠΏΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ количСство Π»ΠΈΡΡ‚ΡŒΠ΅Π² Π²Β Π·Π°Π΄Π°Π½Π½ΠΎΠΌ Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠΌ Π΄Π΅Ρ€Π΅Π²Π΅? (Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅)
  10. Как Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΉ поиск Π²Β Π·Π°Π΄Π°Π½Π½ΠΎΠΌ массивС? (Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅)

Если ΠΏΡ€ΠΎΠΉΡ‚ΠΈ эти вопросы ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ слишком слоТно, Π½Π΅Β ΠΏΠΎΠΌΠ΅ΡˆΠ°Π΅Ρ‚ ΠΏΡ€ΠΎΠΉΡ‚ΠΈ ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ качСствСнный курс по структурам Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°ΠΌ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€Β From 0 toΒ 1: Data Structures & Algorithms inΒ Java. Π’ΠΎΡ‚ Π΅Ρ‰Ρ‘ Π΄Π²Π° списка книг и курсов на эту Ρ‚Π΅ΠΌΡƒ.

From 0 toΒ 1: Data Structures & Algorithms inΒ Java

5. ΠŸΡ€ΠΎΡ‡ΠΈΠ΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ и вопросы

Помимо вопросов, ΠΊΠ°ΡΠ°ΡŽΡ‰ΠΈΡ…ΡΡ структур Π΄Π°Π½Π½Ρ‹Ρ…, Π²Β Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ собСсСдований Π½Π°Β Π΄ΠΎΠ»ΠΆΠ½ΠΎΡΡ‚ΡŒ программиста Π·Π°Π΄Π°ΡŽΡ‚ вопросы ΠΏΠΎΒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°ΠΌ, ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ, поразрядным опСрациям, Π°Β Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠ±Ρ‰ΠΈΠ΅ логичСскиС Π·Π°Π΄Π°Ρ‡ΠΈ.

ΠžΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½ΠΎ Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΡ‚ΡŒΡΡ по этим Ρ‚Π΅ΠΌΠ°ΠΌ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π½Π°Β Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… собСсСдованиях ΠΏΠΎΒ Π½ΠΈΠΌ часто ΠΏΠΎΠΏΠ°Π΄Π°ΡŽΡ‚ΡΡ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½Ρ‹Π΅ ΠΊΠ°Π²Π΅Ρ€Π·Π½Ρ‹Π΅ вопросы. Если ΠΏΡ€ΠΎΡ€Π΅ΡˆΠ°Ρ‚ΡŒ ΠΈΡ…Β Π·Π°Ρ€Π°Π½Π΅Π΅, ΠΎΠ½ΠΈ Π½Π΅Β Π²Ρ‹Π·ΠΎΠ²ΡƒΡ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, а это придаст увСрСнности в сСбС ΠΏΡ€ΠΈ объяснСнии Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΈΠ½Ρ‚Π΅Ρ€Π²ΡŒΡŽΠ΅Ρ€Ρƒ.

  1. Как рСализуСтся сортировка ΠΏΡƒΠ·Ρ‹Ρ€ΡŒΠΊΠΎΠΌ? (Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅)
  2. Как рСализуСтся итСративная быстрая сортировка? (Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅)
  3. Как рСализуСтся сортировка вставками? (Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅)
  4. Как рСализуСтся сортировка слияниСм? (Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅)
  5. Как рСализуСтся блочная сортировка? (Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅)
  6. Как рСализуСтся сортировка подсчётом? (Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅)
  7. Как рСализуСтся поразрядная сортировка? (Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅)
  8. Как ΠΏΠΎΠΌΠ΅Π½ΡΡ‚ΡŒ мСстами значСния Π΄Π²ΡƒΡ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π±Π΅Π· использования Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ΠΉ? (Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅)
  9. Как ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, ΠΏΠ΅Ρ€Π΅ΡΠ΅ΠΊΠ°ΡŽΡ‚ΡΡΒ Π»ΠΈ Π΄Π²Π° ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ°? (Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅)
  10. Как ΡΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΡ€Π³ΠΎΠ²Ρ‹ΠΉ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚? (Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅)

Π‘Π²Ρ‹ΡˆΠ΅ 189 вопросов для прохоТдСния собСсСдования ΠΏΠΎΒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ с отвСтами ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π²Β ΠΊΠ½ΠΈΠ³Π΅ Β«ΠšΠ°Ρ€ΡŒΠ΅Ρ€Π° программиста» (6-Π΅ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅) Гэйл Π›Π°ΠΊΠΌΠ°Π½ ΠœΠ°ΠΊΠ΄Π°ΡƒΡΠ»Π».

Π—Π΄Π΅ΡΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠΉΡ‚ΠΈ Π΅Ρ‰Ρ‘Β 50 вопросов ΠΏΠΎΒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽΒ Π΄Π»Ρ прохоТдСния собСсСдований ΠΏΠΎΒ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Ρƒ; Π·Π°ΠΊΡ€Π΅ΠΏΠΈΡ‚ΡŒ Π½Π°Π²Ρ‹ΠΊΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΒ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π²ΠΎΡ‚ этих подборок книг и курсов.

Π’ΠΎΡ‚ Π΅Ρ‰Ρ‘ нСсколько рСсурсов ΠΈΒ ΠΏΠΎΠ΄Π±ΠΎΡ€ΠΎΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΡ‚ΡŒΡΡ к собСсСдованию:

  • 10 ΠΊΠ½ΠΈΠ³ для ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ к тСхничСскому собСсСдованию ΠΏΠΎΒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ/Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅
  • 10 ΠΊΠ½ΠΈΠ³ ΠΏΠΎΒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ программист
  • 5 Π»ΡƒΡ‡ΡˆΠΈΡ… ΠΊΠ½ΠΈΠ³ по структурам Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°ΠΌ для Java-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ²
  • Онлайн-курс ΠΏΠΎΒ Π°Π½Π°Π»ΠΈΠ·Ρƒ структур Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² с подготовкой к собСсСдованию



20 Π»ΡƒΡ‡ΡˆΠΈΡ… вопросов для ΠΈΠ½Ρ‚Π΅Ρ€Π²ΡŒΡŽ ΠΏΠΎ динамичСскому ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ с Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΠΌΠΈ | ΠΎΡ‚ javinpaul | Javarevisited

ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° ΠΊ собСсСдованию ΠΏΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ? Π’ΠΎΡ‚ 20 Π·Π°Π΄Π°Ρ‡ ΠΏΠΎ динамичСскому ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ свои Π½Π°Π²Ρ‹ΠΊΠΈ ΠΈ Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΡ‚ΡŒΡΡ.

ΠŸΡ€ΠΈΠ²Π΅Ρ‚, рСбята, Ссли Π²Ρ‹ Π³ΠΎΡ‚ΠΎΠ²ΠΈΡ‚Π΅ΡΡŒ ΠΊ собСсСдованию ΠΏΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π΄Π²Π΅ Ρ‚Π΅ΠΌΡ‹, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅, я Π±Ρ‹ сказал, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ особоС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠΎΠ΄Π½Π° ΠΈΠ· Π½ΠΈΡ… β€” систСмный Π΄ΠΈΠ·Π°ΠΉΠ½, Π° другая β€” динамичСскоС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΎΠ±Π΅ ΠΎΠ½ΠΈ слоТны для освоСния, Π½ΠΎ Ρ‡Ρ€Π΅Π·Π²Ρ‹Ρ‡Π°ΠΉΠ½ΠΎ Π²Π°ΠΆΠ½Ρ‹ для тСхничСских ΠΈΠ½Ρ‚Π΅Ρ€Π²ΡŒΡŽ.

Π’ ΠΏΡ€ΠΎΡˆΠ»ΠΎΠΌ я подСлился Π»ΡƒΡ‡ΡˆΠΈΠΌΠΈ курсами ΠΏΠΎ динамичСскому ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ , Π° Ρ‚Π°ΠΊΠΆΠ΅ Π»ΡƒΡ‡ΡˆΠΈΠΌΠΈ курсами ΠΏΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ систСм, ΠΊΠ½ΠΈΠ³Π°ΠΌΠΈ ΠΈ вопросами для собСсСдований ΠΏΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ систСм, ΠΈ Π² этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ я ΡΠΎΠ±ΠΈΡ€Π°ΡŽΡΡŒ ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ Π»ΡƒΡ‡ΡˆΠΈΠΌΠΈ вопросами ΠΏΠΎ динамичСскому ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ ΠΈΠ· ΠΈΠ½Ρ‚Π΅Ρ€Π²ΡŒΡŽ для ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ эти вопросы, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ динамичСскоС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, Π½ΠΎ ΠΈ ΠΎΡΠ²ΠΎΠΈΡ‚ΡŒ Π΅Π³ΠΎ.

ДинамичСскоС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ β€” ΠΎΠ΄Π½Π° ΠΈΠ· самых слоТных ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΉ для освоСния программистами, Π½ΠΎ Π² Ρ‚ΠΎ ΠΆΠ΅ врСмя ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠΉΡ‚ΠΈ любоС собСсСдованиС ΠΏΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ.

Π’ настоящСС врСмя Π²Ρ‹ Π½Π°ΠΉΠ΄Π΅Ρ‚Π΅ ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅ ΠΎΠ΄Π½Ρƒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ динамичСского программирования Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ собСсСдовании ΠΏΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ, ΠΈ ΠΈΠΌΠ΅Π½Π½ΠΎ здСсь застрСваСт Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ программистов.

Они ΠΏΡ‹Ρ‚Π°ΡŽΡ‚ΡΡ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ‚Π°ΠΊΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, ΠΊΠ°ΠΊ раздСляй ΠΈ властвуй , Π½ΠΎ Π² ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΌ ΠΈΡ‚ΠΎΠ³Π΅ тСрпят Π½Π΅ΡƒΠ΄Π°Ρ‡Ρƒ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ ΠΏΡ€ΠΈΠΉΡ‚ΠΈ ΠΊ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡŽ Ρ‚Π°ΠΊΠΈΡ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, Ссли Π²Ρ‹ Π½Π΅ Ρ€Π΅ΡˆΠΈΠ»ΠΈ ΠΏΡ€ΠΈΠ»ΠΈΡ‡Π½ΠΎΠ΅ количСство вопросов кодирования Π½Π° основС динамичСского программирования.

Π­Ρ‚ΠΎ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΡ…ΠΎΠΆΠ΅ Π½Π° вопросов ΠΏΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ систСмы , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ каТутся простыми, Π½ΠΎ ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ ΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ ΠΈΡ… Ρ€Π΅ΡˆΠΈΡ‚ΡŒ, Π²Ρ‹ часто застрСваСтС, поэтому я ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽ Π²Π°ΠΌ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ большС ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒΡΡ.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΌΠΎΡ‡ΡŒ Π²Π°ΠΌ с ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΎΠΉ, я подСлюсь Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΈΠ· часто Π·Π°Π΄Π°Π²Π°Π΅ΠΌΡ‹Ρ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ динамичСского программирования ΠΈΠ· ΠΈΠ½Ρ‚Π΅Ρ€Π²ΡŒΡŽ ΠΏΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ s . Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ эту Π·Π°Π΄Π°Ρ‡Ρƒ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ кодирования Π½Π° основС динамичСского программирования, Π½ΠΎ ΠΈ ΠΊΠ°ΠΊ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊ Π½ΠΈΠΌ ΠΈ Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ ΠΈΡ… Π·Π° Π·Π°Π΄Π°Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΠΊ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.

Π― Ρ‚Π°ΠΊΠΆΠ΅ размСстил Π²ΠΈΠ΄Π΅ΠΎ ΠΈ ссылки, Π³Π΄Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ этих ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ динамичСского программирования, Ссли Π²Ρ‹ застряли. Π― Ρ‚Π°ΠΊΠΆΠ΅ подСлился ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌΠΈ рСсурсами, Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ ΠΎΠ½Π»Π°ΠΉΠ½-курсы ΠΈ ΡƒΡ‡Π΅Π±Π½Ρ‹Π΅ пособия, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ динамичСскоС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΎΡΠ²Π΅ΠΆΠΈΡ‚ΡŒ свои знания.

Если Π±ΡƒΠ΄Π΅Ρ‚ спрос, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, я смогу ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒ свои Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ этих Π·Π°Π΄Π°Ρ‡ ΠΈ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΡΡ‚Π°Ρ‚ΡŒΡΡ…, Π½ΠΎ это Π½Π΅ ΠΌΠ΅ΡˆΠ°Π΅Ρ‚ Π²Π°ΠΌ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒΡΡ. Π’Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π½Π°Ρ‡Π°Ρ‚ΡŒ свою ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΡƒ прямо сСйчас ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ большС Π·Π°Π΄Π°Ρ‡ динамичСского программирования для своих ΠΈΠ½Ρ‚Π΅Ρ€Π²ΡŒΡŽ ΠΏΠΎ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ.

Если Ρƒ вас Π΅ΡΡ‚ΡŒ вопрос ΠΏΠΎ динамичСскому ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π² этом спискС, Π½Π΅ ΡΡ‚Π΅ΡΠ½ΡΠΉΡ‚Π΅ΡΡŒ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Ρ‚ΡŒ, ΠΈ я добавлю. МнС нравится ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ этот список, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρƒ нас Π±Ρ‹Π»ΠΎ достаточно вопросов ΠΏΠΎ динамичСскому ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ для ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ со всСми уровнями слоТности, Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ Π»Π΅Π³ΠΊΠΈΠΉ, срСдний ΠΈ слоТный.

ΠšΠ»ΡŽΡ‡ΠΎΠΌ ΠΊ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡŽ Π·Π°Π΄Π°Ρ‡ динамичСского программирования являСтся ΠΈΡ… пСрвая идСнтификация. Π­Ρ‚ΠΎ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΡ…ΠΎΠΆΠ΅ Π½Π° рСкурсивныС Π·Π°Π΄Π°Ρ‡ΠΈ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с Π±ΠΈΠ½Π°Ρ€Π½Ρ‹ΠΌΠΈ Π΄Π΅Ρ€Π΅Π²ΡŒΡΠΌΠΈ ΠΈ Π·Π°Π΄Π°Ρ‡ΠΈ Π½Π° основС связанных списков, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ Ρ€Π΅ΡˆΠ°Π»ΠΈ Ρ€Π°Π½Π΅Π΅. Π‘Π½Π°Ρ‡Π°Π»Π° Π²Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅, ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ всю ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ Π½Π° Π±ΠΎΠ»Π΅Π΅ ΠΌΠ΅Π»ΠΊΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹.

НапримСр, Π² Π·Π°Π΄Π°Ρ‡Π΅ ΠΎ подъСмС ΠΏΠΎ лСстницС Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ Π·Π°Π΄Π°Ρ‡Ρƒ с n шагами Π½Π° Π·Π°Π΄Π°Ρ‡ΠΈ с 1 ΠΈΠ»ΠΈ 2 шагами.

Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ‹ это сдСлаСтС, Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅, ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎΠ»Π½ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΏΡƒΡ‚Π΅ΠΌ объСдинСния Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ ΠΏΠΎΠ΄Π·Π°Π΄Π°Ρ‡, это ΠΊΠ»ΡŽΡ‡. Если это Ρ‚Π°ΠΊ, Ρ‚ΠΎ это, скорСС всСго, ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с динамичСским ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ, ΠΈ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ раздСляй ΠΈ властвуй, Ρ€Π΅ΠΊΡƒΡ€ΡΠΈΡŽ ΠΈ ΠΌΠ΅ΠΌΠΎΠΈΠ·Π°Ρ†ΠΈΡŽ для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ.

Π’ΠΎΡ‚ 7 шагов Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ основных Π·Π°Π΄Π°Ρ‡ динамичСского программирования (DP)

  1. Π Π°ΡΠΏΠΎΠ·Π½Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ DP, Ρ€Π°Π·Π±ΠΈΠ² Π΅Π΅ Π½Π° ΠΏΠΎΠ΄Π·Π°Π΄Π°Ρ‡ΠΈ
  2. Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹.
  3. Π§Π΅Ρ‚ΠΊΠΎ Π²Ρ‹Ρ€Π°Π·ΠΈΡ‚ΡŒ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ рСкуррСнтности ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡŽ рСкурсии.
  4. ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅ Π±Π°Π·ΠΎΠ²Ρ‹Π΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹.
  5. Π Π΅ΡˆΠΈΡ‚Π΅, Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π»ΠΈ Π²Ρ‹ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ это ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎ ΠΈΠ»ΠΈ рСкурсивно.
  6. Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ памятку.
  7. ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ.

Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ FAST для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ динамичСского программирования, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ являСтся Π°Π±Π±Ρ€Π΅Π²ΠΈΠ°Ρ‚ΡƒΡ€ΠΎΠΉ для 4 шагов, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ любой Π·Π°Π΄Π°Ρ‡ΠΈ динамичСского программирования:

  • Поиск ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ
  • Анализ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ
  • ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄Π·Π°Π΄Π°Ρ‡
  • ИзмСнСниС Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ

Π­Ρ‚ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для выявлСния ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ динамичСского программирования. Π― Ρ‚Π°ΠΊΠΆΠ΅ Π½Π°ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ курс Master the art of Dynamic Programming Π½Π° Udemy, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΏΠ°Ρ€Ρƒ ΠΏΠΎΡˆΠ°Π³ΠΎΠ²Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊ эти шаги ΡΠΎΡ‡Π΅Ρ‚Π°ΡŽΡ‚ΡΡ Π΄Ρ€ΡƒΠ³ с Π΄Ρ€ΡƒΠ³ΠΎΠΌ, особСнно Ссли Π²Ρ‹ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Ρ€Π΅ΡˆΠ°Π»ΠΈ Π·Π°Π΄Π°Ρ‡Ρƒ динамичСского программирования.

Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½Π° ΠΊΠ½ΠΈΠ³Π°, я Π½Π°ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ ΠΊΠ½ΠΈΠ³Ρƒ ΠΠ΄ΠΈΡ‚ΡŒΠΈ Π‘Ρ…Π°Ρ€Π³Π°Π²Ρ‹ Grokking Algorithms, которая Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ ΠΎΠ±ΡŠΡΡΠ½ΡΠ΅Ρ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ Кнапсака ΠΈ ΡƒΡ‡ΠΈΡ‚ Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ Π·Π°Π΄Π°Ρ‡ΠΈ динамичСского программирования.

НС тСряя большС Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Π²ΠΎΡ‚ список самых популярных ΠΈ часто Π·Π°Π΄Π°Π²Π°Π΅ΠΌΡ‹Ρ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ кодирования Π½Π° основС динамичСского программирования ΠΈΠ· ΠΈΠ½Ρ‚Π΅Ρ€Π²ΡŒΡŽ.

Они Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ подходят для ΠΎΡ‚Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ этой слоТной Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΈ, Π½ΠΎ ΠΈ Π΄Π°ΡŽΡ‚ Π²Π°ΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ свои Π½Π°Π²Ρ‹ΠΊΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡ DP.

Если Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ 5 ΠΈΠ· этих 10 вопросов Π±Π΅Π· Ρ‡ΡŒΠ΅ΠΉ-Π»ΠΈΠ±ΠΎ ΠΏΠΎΠΌΠΎΡ‰ΠΈ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠΉΡ‚ΠΈ собСсСдованиС ΠΏΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ.

1. Π—Π°Π΄Π°Ρ‡Π° ΠΎ подъСмС ΠΏΠΎ лСстницС

Π­Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ· самых популярных Π·Π°Π΄Π°Ρ‡ кодирования, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° динамичСского программирования. Π’ этой Π·Π°Π΄Π°Ρ‡Π΅ Π²Ρ‹ ΠΏΠΎΠ΄Π½ΠΈΠΌΠ°Π΅Ρ‚Π΅ΡΡŒ ΠΏΠΎ лСстницС. ВрСбуСтся n шагов, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ Π΄ΠΎ Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ΄Π½ΡΡ‚ΡŒΡΡ Π½Π° 1 ΠΈΠ»ΠΈ 2 ΡΡ‚ΡƒΠΏΠ΅Π½ΡŒΠΊΠΈ. Вопрос Π² Ρ‚ΠΎΠΌ, сколькими Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ способами Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ΄Π½ΡΡ‚ΡŒΡΡ Π½Π° Π²Π΅Ρ€ΡˆΠΈΠ½Ρƒ?

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅. Π—Π°Π΄Π°Π½Π½ΠΎΠ΅ n Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ Ρ†Π΅Π»Ρ‹ΠΌ числом.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 1:

Π’Π²ΠΎΠ΄: 2
Π’Ρ‹Π²ΠΎΠ΄: 2
ОбъяснСниС: Π•ΡΡ‚ΡŒ Π΄Π²Π° способа Π²Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ Π½Π° Π²Π΅Ρ€ΡˆΠΈΠ½Ρƒ.
1. 1 шаг + 1 шаг
2. 2 шага

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 2:

Π’Π²ΠΎΠ΄: 3
Π’Ρ‹Π²ΠΎΠ΄: 3
ПояснСниС: Π•ΡΡ‚ΡŒ Ρ‚Ρ€ΠΈ способа ΠΏΠΎΠ΄Π½ΡΡ‚ΡŒΡΡ Π½Π° Π²Π΅Ρ€ΡˆΠΈΠ½Ρƒ.
1. 1 шаг + 1 шаг + 1 шаг
2. 1 шаг + 2 шага
3. 2 шага + 1 шаг.

Если Π²Ρ‹ застряли, Π²Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ это Π²ΠΈΠ΄Π΅ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ прСдставлСниС, ΠΈ Ссли Π²Π°ΠΌ Π½ΡƒΠΆΠ΅Π½ курс, Master the Coding Interview: Big Tech (FAANG) Interviews ΠΎΡ‚ АндрСя НСгаойС β€” Π»ΡƒΡ‡ΡˆΠΈΠΉ курс, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π²Ρ‹ Π½Π°ΠΉΠ΄Π΅Ρ‚Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ этой ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, Π½ΠΎ ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΡ… Π΄Ρ€ΡƒΠ³ΠΈΡ…, ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… этой.

2. Π—Π°Π΄Π°Ρ‡Π° ΠΎ Ρ€ΡŽΠΊΠ·Π°ΠΊΠ΅ [Ρ€Π΅ΡˆΠ΅Π½ΠΎ]

Π­Ρ‚ΠΎ Π΅Ρ‰Π΅ ΠΎΠ΄Π½Π° распространСнная Π·Π°Π΄Π°Ρ‡Π° кодирования Π½Π° основС динамичСского программирования ΠΈ шаблон, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ вопросы. Π’ этом Ρ‚ΠΈΠΏΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ Π²Π°ΠΌ Π±ΡƒΠ΄ΡƒΡ‚ Π΄Π°Π½Ρ‹ вСса ΠΈ ΠΏΡ€ΠΈΠ±Ρ‹Π»ΡŒ Β«NΒ» ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚ΠΎΠ², помСститС эти ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Ρ‹ Π² Ρ€ΡŽΠΊΠ·Π°ΠΊ Π²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒΡŽ Β«CΒ». Π’Π°ΡˆΠ° Ρ†Π΅Π»ΡŒ: ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΏΡ€ΠΈΠ±Ρ‹Π»ΡŒ ΠΎΡ‚ ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚ΠΎΠ² Π² Ρ€ΡŽΠΊΠ·Π°ΠΊΠ΅. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·.

Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ этой Π·Π°Π΄Π°Ρ‡ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя, ΠΊΠ°ΠΊΠΈΠ΅ Ρ„Ρ€ΡƒΠΊΡ‚Ρ‹ Π² Ρ€ΡŽΠΊΠ·Π°ΠΊΠ΅ Π²Ρ‹ Π±Ρ‹ ΠΏΠΎΠ»ΠΎΠΆΠΈΠ»ΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΏΡ€ΠΈΠ±Ρ‹Π»ΡŒ. Π’ΠΎΡ‚ вСс ΠΈ ΠΏΡ€ΠΈΠ±Ρ‹Π»ΡŒ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ„Ρ€ΡƒΠΊΡ‚Π°:

ΠŸΡ€Π΅Π΄ΠΌΠ΅Ρ‚Ρ‹: { Π―Π±Π»ΠΎΠΊΠΎ, АпСльсин, Π‘Π°Π½Π°Π½, Дыня }
ВСс: { 2, 3, 1, 4 }
ΠŸΡ€ΠΈΠ±Ρ‹Π»ΡŒ: { 4, 5, 3, 7 }
Π’ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ Ρ€ΡŽΠΊΠ·Π°ΠΊΠ°: 5

ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ Π² Ρ€ΡŽΠΊΠ·Π°ΠΊ Ρ€Π°Π·Π½Ρ‹Π΅ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ Ρ„Ρ€ΡƒΠΊΡ‚ΠΎΠ², Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡ… ΠΎΠ±Ρ‰ΠΈΠΉ вСс Π±Ρ‹Π» Π½Π΅ Π±ΠΎΠ»Π΅Π΅ 5.

Π―Π±Π»ΠΎΠΊΠΎ + АпСльсин (ΠΎΠ±Ρ‰ΠΈΠΉ вСс 5) => 9 ΠΏΡ€ΠΈΠ±Ρ‹Π»ΡŒ
Π―Π±Π»ΠΎΠΊΠΎ + Π‘Π°Π½Π°Π½ (ΠΎΠ±Ρ‰ΠΈΠΉ вСс 3) => 7 ΠΏΡ€ΠΈΠ±Ρ‹Π»ΡŒ
АпСльсин + Π‘Π°Π½Π°Π½ (ΠΎΠ±Ρ‰ΠΈΠΉ вСс 4) => 8 ΠΏΡ€ΠΈΠ±Ρ‹Π»ΡŒ
Π‘Π°Π½Π°Π½ + Дыня (ΠΎΠ±Ρ‰ΠΈΠΉ вСс 5) => 10 ΠΏΡ€ΠΈΠ±Ρ‹Π»ΡŒ

Π­Ρ‚ΠΎ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π‘Π°Π½Π°Π½ + Дыня являСтся Π»ΡƒΡ‡ΡˆΠΈΠΌ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½Π° Π΄Π°Π΅Ρ‚ Π½Π°ΠΌ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΏΡ€ΠΈΠ±Ρ‹Π»ΡŒ ΠΈ ΠΎΠ±Ρ‰ΠΈΠΉ вСс Π½Π΅ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π΅Ρ‚ возмоТности. Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ этот бСсплатный ΡƒΡ€ΠΎΠΊ ΠΈΠ· курса динамичСского программирования Π½Π° Educative для ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ³ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ этой ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹.

3. Π—Π°Π΄Π°Ρ‡Π° рСдактирования расстояния

Π­Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ· самых простых Π·Π°Π΄Π°Ρ‡ динамичСского программирования. Π’ этом вопросС Π²Π°ΠΌ Π±ΡƒΠ΄ΡƒΡ‚ Π΄Π°Π½Ρ‹ Π΄Π²Π° слова слово1 ΠΈ слово2, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΉΡ‚ΠΈ минимальноС количСство ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… для прСобразования слова1 Π² слово2.

Над словом Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½Ρ‹ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ 3 ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ:

  • Вставка символа
  • Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ символа
  • Π—Π°ΠΌΠ΅Π½Π° символа

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 1:
Π’Π²ΠΎΠ΄: слово1 = «лошадь», слово2 = «рос»
Π’Ρ‹Ρ…ΠΎΠ΄: 3
ОбъяснСниС:
лошадь -> rorse (Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ 'h' Π½Π° 'r')
rorse -> rose (ΡƒΠ±Ρ€Π°Ρ‚ΡŒ 'r')
rose -> ros (ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ 'e')

И, Ссли Ссли Π²Ρ‹ застряли, посмотритС этот ΡƒΡ‡Π΅Π±Π½ΠΈΠΊ Π½Π° YouTube, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΉΡ‚ΠΈ пошаговоС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅:

4. Бамая длинная палиндромная ΠΏΠΎΠ΄ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Вопрос

Π­Ρ‚ΠΎ Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ распространСнный вопрос ΠΈ шаблон динамичСского программирования. Π’ этом Ρ‚ΠΈΠΏΠ΅ вопроса DP Π²Π°ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π΄Π°Π½Π° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, Π½Π°ΠΉΠ΄ΠΈΡ‚Π΅ Π΄Π»ΠΈΠ½Ρƒ Π΅Π΅ самой Π΄Π»ΠΈΠ½Π½ΠΎΠΉ ΠΏΠ°Π»ΠΈΠ½Π΄Ρ€ΠΎΠΌΠ½ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ (ΠΈΠ»ΠΈ LPS). Π’ ΠΏΠ°Π»ΠΈΠ½Π΄Ρ€ΠΎΠΌΠ½ΠΎΠΉ ΠΏΠΎΠ΄ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ элСмСнты Ρ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ Π²ΠΏΠ΅Ρ€Π΅Π΄ ΠΈ Π½Π°Π·Π°Π΄.

ΠŸΠΎΠ΄ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ β€” это ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, которая ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π° ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΡƒΡ‚Π΅ΠΌ удалСния Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… элСмСнтов ΠΈΠ»ΠΈ ΠΈΡ… отсутствия Π±Π΅Π· измСнСния порядка ΠΎΡΡ‚Π°Π²ΡˆΠΈΡ…ΡΡ элСмСнтов.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 1:
Π’Π²ΠΎΠ΄:
Β«bbbabΒ»

Π’Ρ‹Π²ΠΎΠ΄:
4

ОбъяснСниС: LPS β€” это Β«bbbbΒ».

И, Ссли Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, посмотритС этот Π²ΠΈΠ΄Π΅ΠΎΡƒΡ€ΠΎΠΊ Π½Π° YouTube, ΠΎΠ½ бСсплатный ΠΈ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ пошаговоС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ этой ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ динамичСского программирования.

4. Π›ΡƒΡ‡ΡˆΠ΅Π΅ врСмя для ΠΏΠΎΠΊΡƒΠΏΠΊΠΈ ΠΈ ΠΏΡ€ΠΎΠ΄Π°ΠΆΠΈ Π°ΠΊΡ†ΠΈΠΉ Π—Π°Π΄Π°Ρ‡Π°

Π­Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ· слоТных Π·Π°Π΄Π°Ρ‡ динамичСского программирования, для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ трСбуСтся Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠΏΡ‹Ρ‚. Π’ этом вопросС Π²Π°ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π΄Π°Π½ массив, i-ΠΉ элСмСнт ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ β€” Ρ†Π΅Π½Π° Π΄Π°Π½Π½ΠΎΠΉ Π°ΠΊΡ†ΠΈΠΈ Π² i-ΠΉ дСнь.

Если Π±Ρ‹ Π²Π°ΠΌ Π±Ρ‹Π»ΠΎ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΎ ΡΠΎΠ²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ Π½Π΅ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠΉ сдСлки (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΡƒΠΏΠΈΡ‚ΡŒ ΠΎΠ΄Π½Ρƒ ΠΈ ΠΏΡ€ΠΎΠ΄Π°Ρ‚ΡŒ ΠΎΠ΄Π½Ρƒ Π°ΠΊΡ†ΠΈΡŽ), Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°ΠΉΡ‚Π΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ для нахоТдСния максимальной ΠΏΡ€ΠΈΠ±Ρ‹Π»ΠΈ.

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ΄Π°Ρ‚ΡŒ Π°ΠΊΡ†ΠΈΡŽ Π΄ΠΎ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΊΡƒΠΏΠΈΡ‚Π΅ Π΅Π΅.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 1:
Π’Π²ΠΎΠ΄: [7,1,5,3,6,4]
Π’Ρ‹Π²ΠΎΠ΄: 5
ОбъяснСниС: ΠŸΠΎΠΊΡƒΠΏΠΊΠ° Π² дСнь 2 (Ρ†Π΅Π½Π° = 1) ΠΈ ΠΏΡ€ΠΎΠ΄Π°ΠΆΠ° Π² дСнь 5 (Ρ†Π΅Π½Π° = 6), ΠΏΡ€ΠΈΠ±Ρ‹Π»ΡŒ = 6–1 = 5. 90Β 103 НС 7–1 = 6, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Ρ†Π΅Π½Π° ΠΏΡ€ΠΎΠ΄Π°ΠΆΠΈ Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ большС, Ρ‡Π΅ΠΌ Ρ†Π΅Π½Π° ΠΏΠΎΠΊΡƒΠΏΠΊΠΈ.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ эту Π·Π°Π΄Π°Ρ‡Ρƒ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ, Π½ΠΎ Ссли Π²Ρ‹ застряли, Π²Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ см. Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ здСсь Π½Π° ΠžΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΌ.

5. Π—Π°Π΄Π°Ρ‡Π° Π€ΠΈΠ±ΠΎΠ½Π°Ρ‡Ρ‡ΠΈ [РСшСниС]

Π­Ρ‚ΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· самых простых вопросов динамичСского программирования, ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ· вас ΡƒΠΆΠ΅ Ρ€Π΅ΡˆΠΈΠ»ΠΈ Π΅Π³ΠΎ, Π΄Π°ΠΆΠ΅ Π½Π΅ подозрСвая, Ρ‡Ρ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ динамичСскоС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅. Π­Ρ‚ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ распространСнный ΠΏΡ€ΠΈΠΌΠ΅Ρ€ DP, ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ инструкторы ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ числа Π€ΠΈΠ±ΠΎΠ½Π°Ρ‡Ρ‡ΠΈ для обучСния динамичСскому ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ. Π’ этом вопросС Π²Π°ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ для вычислСния n-Π³ΠΎ числа Π€ΠΈΠ±ΠΎΠ½Π°Ρ‡Ρ‡ΠΈ.

Числа Π€ΠΈΠ±ΠΎΠ½Π°Ρ‡Ρ‡ΠΈ β€” это ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ чисСл, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ число являСтся суммой Π΄Π²ΡƒΡ… ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… чисСл. ΠŸΠ΅Ρ€Π²Ρ‹Π΅ нСсколько чисСл Π€ΠΈΠ±ΠΎΠ½Π°Ρ‡Ρ‡ΠΈ β€” это 0, 1, 2, 3, 5, 8 ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅.

ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ числа Π€ΠΈΠ±ΠΎΠ½Π°Ρ‡Ρ‡ΠΈ ΠΊΠ°ΠΊ:

Π€ΠΈΠ±ΠΎΠ½Π°Ρ‡Ρ‡ΠΈ (n) = Π€ΠΈΠ±ΠΎΠ½Π°Ρ‡Ρ‡ΠΈ (n-1) + Π€ΠΈΠ±ΠΎΠ½Π°Ρ‡Ρ‡ΠΈ (n-2) для n > 1 (1) = 1

Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΌΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ N-Π΅ число Π€ΠΈΠ±ΠΎΠ½Π°Ρ‡Ρ‡ΠΈ Π² Java, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ большС ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ эту ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ.

6. Π—Π°Π΄Π°Ρ‡Π° Π½Π° Ρ€Π°Π·ΠΌΠ΅Π½ ΠΌΠΎΠ½Π΅Ρ‚

Π’Π°ΠΌ Π΄Π°Π½Ρ‹ ΠΌΠΎΠ½Π΅Ρ‚Ρ‹ Ρ€Π°Π·Π½ΠΎΠ³ΠΎ Π½ΠΎΠΌΠΈΠ½Π°Π»Π° ΠΈ общая сумма Π΄Π΅Π½Π΅Π³. ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ для вычислСния наимСньшСго количСства ΠΌΠΎΠ½Π΅Ρ‚, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ для получСния этой суммы. Если эта сумма Π΄Π΅Π½Π΅Π³ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ составлСна ​​из любой ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ ΠΌΠΎΠ½Π΅Ρ‚, Π²Π΅Ρ€Π½ΠΈΡ‚Π΅ -1.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 1:
Π’Π²ΠΎΠ΄: ΠΌΠΎΠ½Π΅Ρ‚Ρ‹ = [1, 2, 5], количСство = 11
Π’Ρ‹Π²ΠΎΠ΄: 3
ОбъяснСниС: 11 = 5 + 5 + 1

И, Ссли Π²Ρ‹ застряли, Π²ΠΎΡ‚ руководство, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎΠΌΠΎΡ‰ΡŒ

7. Бамая длинная общая подстрока

ИмСя Π΄Π²Π΅ строки 1' ΠΈ 's2', Π½Π°ΠΉΠ΄ΠΈΡ‚Π΅ Π΄Π»ΠΈΠ½Ρƒ самой Π΄Π»ΠΈΠ½Π½ΠΎΠΉ ΠΎΠ±Ρ‰Π΅ΠΉ подстроки Π² ΠΎΠ±Π΅ΠΈΡ… строках.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 1:

Π’Π²ΠΎΠ΄: s1 = Β«abdcaΒ»
s2 = Β«cbdaΒ»

Π’Ρ‹Π²ΠΎΠ΄: 2

ОбъяснСниС: Бамая длинная общая подстрока β€” Β«bdΒ».

А Π²ΠΎΡ‚ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΎ самой Π΄Π»ΠΈΠ½Π½ΠΎΠΉ ΠΎΠ±Ρ‰Π΅ΠΉ подстрокС:

8. Бамая длинная общая ΠΏΠΎΠ΄ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ

ИмСя Π΄Π²Π΅ строки 1’ ΠΈ β€˜s2’, Π½Π°ΠΉΠ΄ΠΈΡ‚Π΅ Π΄Π»ΠΈΠ½Ρƒ самой Π΄Π»ΠΈΠ½Π½ΠΎΠΉ ΠΏΠΎΠ΄ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, которая являСтся ΠΎΠ±Ρ‰Π΅ΠΉ Π² ΠΎΠ±Π΅ΠΈΡ… строках.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 1:
Π’Π²ΠΎΠ΄: s1 = Β«abdcaΒ»
s2 = Β«cbdaΒ»

Π’Ρ‹Π²ΠΎΠ΄: 3
ОбъяснСниС: Бамая длинная подстрока β€” Β«bdaΒ».

И, Ссли Π²Ρ‹ застряли, Π²Ρ‹ всСгда ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ это Π²ΠΈΠ΄Π΅ΠΎ Π½Π° YouTube, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΈΠ΄Π΅ΠΈ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ эту ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ Вопрос ΠΏΠΎ динамичСскому ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ :

9. Π—Π°Π΄Π°Ρ‡Π° ΠΎ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠΈ суммы подмноТСств

Π­Ρ‚ΠΎ Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ популярный вопрос ΠΏΠΎ динамичСскому ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΡ…ΠΎΠΆ Π½Π° Π·Π°Π΄Π°Ρ‡Ρƒ ΠΎ Ρ€ΡŽΠΊΠ·Π°ΠΊΠ΅ . Если Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅, ΠΊΠ°ΠΊ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ Ρ€ΡŽΠΊΠ·Π°ΠΊ, Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΈ это.

Π’ этой Π·Π°Π΄Π°Ρ‡Π΅ Π²Π°ΠΌ Π΄Π°Π½ Π½Π°Π±ΠΎΡ€ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… чисСл. НайдитС, ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π½Π° Π΄Π²Π° подмноТСства Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ сумма элСмСнтов Π² ΠΎΠ±ΠΎΠΈΡ… подмноТСствах Π±Ρ‹Π»Π° Ρ€Π°Π²Π½Π°.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 1:

Π’Π²ΠΎΠ΄: {1, 2, 3, 4}

Π’Ρ‹Π²ΠΎΠ΄: True

ОбъяснСниС: Π”Π°Π½Π½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½Π° Π΄Π²Π° подмноТСства с ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠΉ суммой: {1, 4} ΠΈ {2, 3}

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 2:

Π’Π²ΠΎΠ΄: {1, 1, 3, 4 , 7}

Π’Ρ‹Π²ΠΎΠ΄: True

ОбъяснСниС: Π”Π°Π½Π½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½Π° Π΄Π²Π° подмноТСства с ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠΉ суммой: {1, 3, 4} ΠΈ {1, 7}

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 3:

Π’Π²ΠΎΠ΄: {2, 3, 4, 6}

Π’Ρ‹Π²ΠΎΠ΄: Π›ΠΎΠΆΡŒ

ОбъяснСниС: Π”Π°Π½Π½ΠΎΠ΅ мноТСство Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΎ Π½Π° Π΄Π²Π° подмноТСства с ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠΉ суммой.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ, Π½ΠΎ Ссли Π²Ρ‹ застряли, Ρ‚ΠΎ Π²Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ здСсь Π½Π° сайтС Educative. Π­Ρ‚ΠΎΡ‚ бСсплатный ΡƒΡ€ΠΎΠΊ являСтся Ρ‡Π°ΡΡ‚ΡŒΡŽ ΠΈΡ… курса динамичСского программирования, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ ΠΎΠ±ΡŠΡΡΠ½ΡΠ΅Ρ‚ эту ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, ΠΊΠ°ΠΊ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ Π΅Π΅ Π² вашСм Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅.

10. НСпрСрывная сумма подмассивов

Π­Ρ‚ΠΎ Π΅Ρ‰Π΅ ΠΎΠ΄Π½Π° популярная Π·Π°Π΄Π°Ρ‡Π° кодирования Π½Π° основС динамичСского программирования ΠΈΠ· ΠΈΠ½Ρ‚Π΅Ρ€Π²ΡŒΡŽ. Π’ этой Π·Π°Π΄Π°Ρ‡Π΅ Π²Π°ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ Π΄Π°Π½ список Π½Π΅ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… чисСл ΠΈ Ρ†Π΅Π»Π΅Π²ΠΎΠ΅ Ρ†Π΅Π»ΠΎΠ΅ число k. ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡŽΡ‰ΡƒΡŽ, Π΅ΡΡ‚ΡŒ Π»ΠΈ Π² массивС Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½Ρ‹ΠΉ подмассив Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ 2, сумма ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΊΡ€Π°Ρ‚Π½Π° k, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ суммируСтся Π΄ΠΎ n*k, Π³Π΄Π΅ n Ρ‚Π°ΠΊΠΆΠ΅ являСтся Ρ†Π΅Π»Ρ‹ΠΌ числом.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 1:
Π’Π²ΠΎΠ΄: [23, 2, 4, 6, 7], k=6

Π’Ρ‹Π²ΠΎΠ΄: True
ОбъяснСниС: ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ [2, 4] являСтся Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½Ρ‹ΠΌ подмассивом Ρ€Π°Π·ΠΌΠ΅Ρ€Π° 2 ΠΈ Π² суммС Π΄Π°Π΅Ρ‚ 6.

И, Ссли Π²Ρ‹ застряли, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ это Π²ΠΈΠ΄Π΅ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ прСдставлСниС ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ эту ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ DP, Π½ΠΎ я ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽ сначала ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ сСбя

10 Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… вопросов для собСсСдования ΠΏΠΎ динамичСскому ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ для ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ

И Π²ΠΎΡ‚ Π΅Ρ‰Π΅ 10 динамичСских ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Вопросы для ΠΈΠ½Ρ‚Π΅Ρ€Π²ΡŒΡŽ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒ

  • ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° ΠΏΠ΅Ρ€Π΅Ρ€Ρ‹Π²Π° слов
  • ΠœΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π΅Π·Π°Π½ΠΈΠΈ Π²Π΅Ρ€Π΅Π²ΠΊΠΈ
  • ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° с броском кости
  • Π£ΠΊΠ»Π°Π΄ΠΊΠΈ ΠΊΠΎΡ€ΠΎΠ±ΠΊΠΈ
  • Π—Π°Π³Π°Π΄ΠΊΠ° падСния яиц
  • .

    Π­Ρ‚ΠΎ всС ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΈΠ· часто Π·Π°Π΄Π°Π²Π°Π΅ΠΌΡ‹Ρ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ динамичСского программирования ΠΈΠ· ΠΈΠ½Ρ‚Π΅Ρ€Π²ΡŒΡŽ . ΠšΡΡ‚Π°Ρ‚ΠΈ, это всСго лишь нСбольшой ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΉ динамичСского программирования ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΡ‚ΡŒΡΡ Π½Π° собСсСдовании ΠΏΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ.

    РСшСниС этих Π·Π°Π΄Π°Ρ‡ даст Π²Π°ΠΌ достаточно ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ Π²Ρ‹ΡΠ²Π»ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ динамичСского программирования Π²ΠΎ врСмя собСсСдований ΠΏΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΊΠ°ΠΊ ΠΈΡ… Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ Π·Π° ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠ΅ врСмя.

    Π­Ρ‚ΠΈ вопросы Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ всС основныС ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ динамичСского программирования, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Π·Π°Π΄Π°Ρ‡Π° ΠΎ Ρ€ΡŽΠΊΠ·Π°ΠΊΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ мноТСства Π·Π°Π΄Π°Ρ‡ DP.

    НСкоторыС ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ рСсурсы для собСсСдований ΠΏΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ:

    • 10 ΠΊΠ½ΠΈΠ³ для ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ ΠΊ собСсСдованиям ΠΏΠΎ тСхничСскому ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ/ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ
    • 10 курсов ΠΏΠΎ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ΅ ΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ БобСсСдованиС
    • 10 ΠΊΠ½ΠΈΠ³ ΠΏΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ программист
    • 5 Π»ΡƒΡ‡ΡˆΠΈΡ… ΠΊΠ½ΠΈΠ³ ΠΏΠΎ структурС Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°ΠΌ для Java-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ²
    • 5 Π»ΡƒΡ‡ΡˆΠΈΡ… бСсплатных курсов ΠΏΠΎ структурС Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°ΠΌ
    • 20+ строковых Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² 90 вопросов для собСсСдования 90 вопросов ΠΏΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°ΠΌ 9054
    • ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ эти вопросы для собСсСдования ΠΏΠΎ Java для программистов
    • Π‘ΠΎΠ»Π΅Π΅ 20 Π·Π°Π΄Π°Ρ‡ Π½Π° основС массивов для собСсСдований
    • 10 курсов ΠΏΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°ΠΌ Младший Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡ€ΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒΡΡ Π² 2021 Π³.
    • 7 Π»ΡƒΡ‡ΡˆΠΈΡ… курсов для изучСния структуры Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ²
    • 25 вопросов для собСсСдования ΠΏΠΎ Π΄ΠΈΠ·Π°ΠΉΠ½Ρƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния для программистов
    • 30 Π»ΡƒΡ‡ΡˆΠΈΡ… вопросов ΠΏΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ
    • 5 Π»ΡƒΡ‡ΡˆΠΈΡ… курсов для изучСния динамичСского программирования для собСсСдований
    • 10 Π»ΡƒΡ‡ΡˆΠΈΡ… курсов для изучСния систСмного Π΄ΠΈΠ·Π°ΠΉΠ½Π° для Π˜Π½Ρ‚Π΅Ρ€Π²ΡŒΡŽ

    Бпасибо, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π»ΠΈ эту ΡΡ‚Π°Ρ‚ΡŒΡŽ. Если Π²Π°ΠΌ нравятся эти Π·Π°Π΄Π°Ρ‡ΠΈ динамичСского программирования ΠΈ вопросы для ΠΈΠ½Ρ‚Π΅Ρ€Π²ΡŒΡŽ , ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚Π΅ΡΡŒ ΠΈΠΌΠΈ со своими Π΄Ρ€ΡƒΠ·ΡŒΡΠΌΠΈ ΠΈ ΠΊΠΎΠ»Π»Π΅Π³Π°ΠΌΠΈ. Если Ρƒ вас Π΅ΡΡ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ вопросы ΠΈΠ»ΠΈ ΠΎΡ‚Π·Ρ‹Π²Ρ‹, поТалуйста, Π½Π°ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΎΠ± этом.

    P. S. β€” Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ большС ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ дСсятки Π΄Ρ€ΡƒΠ³ΠΈΡ… Π·Π°Π΄Π°Ρ‡ ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ шаблона, ΠΎΠ·Π½Π°ΠΊΠΎΠΌΡŒΡ‚Π΅ΡΡŒ с Grokking Dynamic Programming Patterns для ΠΈΠ½Ρ‚Π΅Ρ€Π²ΡŒΡŽ ΠΏΠΎ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ Π½Π° Educative. Π­Ρ‚ΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΉ тСкстовый ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ курс для развития Π²Π°ΡˆΠΈΡ… Π½Π°Π²Ρ‹ΠΊΠΎΠ² динамичСского программирования.

    ΠžΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Ρ‚Π°ΠΊΠΆΠ΅ являСтся ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΌ рСсурсом для ΠΈΠ½Ρ‚Π΅Ρ€Π²ΡŒΡŽ ΠΏΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ, ΠΈ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊΠΎ всСм ΠΈΡ… курсам всСго Π·Π° 14,9 Π΄ΠΎΠ»Π»Π°Ρ€ΠΎΠ² БША Π² мСсяц . Π― Π½Π°ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ это всСм, ΠΊΡ‚ΠΎ готовится ΠΊ собСсСдованию ΠΏΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ.

    Grokking Π¨Π°Π±Π»ΠΎΠ½Ρ‹ динамичСского программирования для собСсСдований ΠΏΠΎ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ β€” ΡƒΡ‡ΠΈΡ‚Π΅ΡΡŒ Π² ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅

    Π”Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π·Π°Π΄Π°Ρ‡ΠΈ динамичСского программирования (DP) ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ΄Π½ΠΈΠΌΠΈ ΠΈΠ· самых ΠΏΡƒΠ³Π°ΡŽΡ‰ΠΈΡ… Π½Π° собСсСдовании ΠΏΠΎ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ. Π”Π°ΠΆΠ΅ когда…

    www.educative.io

    HR Вопросы для ΠΈΠ½Ρ‚Π΅Ρ€Π²ΡŒΡŽ для программистов

    • ВрСмя чтСния: