I am programming from quite some time. I am able to solve easy questions quite easily, but I am unable to solve medium and hard problems , I am not able to approach .
Please Help me how can I approach difficult problems . Any help will be highly appreciated.
I’d suggest you to read the editorials. If you can’t understand them, then you should probably go for easier problems. The trick is, many problems are similar and once you’ve seen ( and solved!) thousands of problems, you will spot the trick behind them.
Edit:
@Kuruma I’ve also been struggling with math due to the poor math background. In our country the mathematics education is pretty poor, compared to other countries like China or Russia. That’s why I also try to read some mathematics book while studying CS since they have a lot in common.
a) I struggle with Maths/Ad-hoc problems due to weak maths background;
b) I can “understand” all the concepts in the editorials for medium problems (after all, I studied flow algorithms/trees at university and I must have read [read - NOT implemented] over 100s of editorials for medium, easy-medium problems), but, when I read the problem either:
b1) I find that after reading it I cant figure out what is the specific algorithm which is needed (I usually have no time to dedicate myself into this more deeply, because I’m working…although I really, really love algorithms/DS);
OR
b2) Even if I figure out the algorithm, I can’t code it by myself or make the adaptations needed to fit it to a specific problem (for example, changing the query or update function for segment trees problems, although I now am more or less comfortable with the standard RMQ, max, min values and range updates via lazy propagation, but that is as far as I go);