Honestly, it’s expected that you will forget stuff and need to look things up. That is how software development works. The retention comes from looking up the same thing a few times until you use it enough times that it sticks. Unfortunately, that takes time and lots of practice trying to make stuff.
The goal is not to ‘just do it’ and ‘learn at a very minimal level’, which is why we have the projects. Once you’ve covered the fCC challenges (without copying the solutions), I’d do the projects. Do our projects; do other projects from other websites; make up your own projects. Ultimately, practicing the core concepts of programming by doing things with them is the only way to learn.
The algorithms stuff is the heart of programming - previous challenges are all about syntax while the algorithms are about synthesizing multiple ideas to solve problems. The big idea is that these challenges are prototypes of problems you will run into in various full projects, so it’s important to work through how to solve problems like these well. The good thing is that you’ll keep seeing better ways to solve algorithms problems with more and more practice and practical experience.
Fortunately, we’re here to help if you get stuck. I’d encourage you to reach out on the forum when you hit a roadblock instead of going to the solution.
For problems like these, sometimes just starting to write out what you know and don’t know can be a huge help to moving forward, and we can help clarify murky points in what you write.
(By the way, in case I didn’t say - it is totally normal and ok to be frustrated with this stuff. Code is hard, and algorithms especially so. Frustration is totally normal.)