As from my Experience, solving more number of easy problems for 3/4th time of your goal and then try difficult problems. When you solve easy ones you will understand the patterns and your brain get used to solve and find algorithms to solve difficult one's easily. Hope it helps your competitive programming
Give me six hours to chop down a tree and I will spend the first four sharpening the axe (Abraham Lincoln)