Using array views to avoid memory allocation
Sudoku is a popular mathematical puzzle. If you have never played this game it is worth reading a description of it at https://www.kristanix.com/sudokuepic/sudoku-rules.php or https://en.wikipedia.org/wiki/Sudoku.
In this recipe, we will show how you can solve this puzzle using a backtracking approach. The general idea of this algorithm is to incrementally test candidate solutions of Sudoku, and if they fail, go back (backtrack) one step. You can read more about this method at https://www.geeksforgeeks.org/backtracking-introduction/ or https://en.wikipedia.org/wiki/Backtracking.
Solving Sudoku using backtracking is a basic computational technique. In this recipe, we will show how using array views can improve the performance of such code.
Getting ready
We want to solve 50 Sudoku problems specified in the Project Euler problem 96, see https://projecteuler.net/problem=96. The task is to find the sum of 50 three-digit numbers present in the top left...