The best way is to solve questions on your own and see all its alternative solution which are efficient and practice them as well. If you can't understand those efficient solutions, try to search about those things and apply them on your own.
I was in same situation few months ago, then i started solving questions from different sites like GeeksForGeeks, Hackerrank, Codechef etc. Now, I am not that good but I have seen the improvement by practicing.
Last but not the least, KEEP PRACTICING because "PRACTICE MAKES A MAN PERFECT".