How can I decrease the time complexity and increase efficiency, without writing a new algorithm. My solution solves the majority of sudoku puzzles in a fast time, but for some difficult ones it can take over a minute! I have added some of the difficult puzzles below the code.