It can be really hard to know if an idea will really work or if you should dismiss it because it's wrong in subtle ways. The best programmers recognize this and take deliberate steps to get better at proving and disproving ideas, but this is super rare. Most people just throw stuff at the wall and hope that it works.
"Pray and hope" is okay at the beginner level, but will become a serious limiting factor if you want to go past that. This is why so much of my teaching is focused around helping students reason about correctness, and I try to model it as much as I can, like I did here in this video.
My teaching work: [ Ссылка ]
My video for the "original" Two Sum: [ Ссылка ]
Problem link: [ Ссылка ]
0:00 Two Sum II problem statement is silly
0:27 Example analysis
1:00 Exploit sorting? [Key Question]
1:33 Smallest & Largest? [Key Question]
3:57 Other Cases? [Key Question]
5:36 Time & Space Complexity
5:59 Implementation
7:40 The Rare (Killer) Skill
![](https://s2.save4k.ru/pic/C3PFKlDeB7M/maxresdefault.jpg)