After the early failures, including a phone screen with Facebook, and an onsite with Google & Apple (with Google, I think I got rejected purely because I bombed the DP question I got really badly, I felt I did strong on all my other sessions), I got accepted by two different teams within Apple after back-to-back 6-7 hour onsites with Apple (with Apple, you interview with the team - I did a total of 3 onsites with Apple, and failed two phone interviews & an onsite for 3 teams).
IMO it is better to optimize for career growth and work on the algorithms/data structures for interview purposes as minimal as possible. They're important, but being good at your regular job is moreso IMO. That has been my guiding philosophy, and it has finally paid off for me - I have 4 1/2 years of experience in predominantly frontend work (and some fullstack as well).
Just food for thought - of course, it's all up to you how you approach interviewing. Personally, I don't fear failure, and use it as an opportunity to improve.