int maxMultiple(int divisor, int bound) { return (bound / divisor) * divisor; }
Previous Next
int maxMultiple(int divisor, int bound) { return (bound / divisor) * divisor; }
int seatsInTheater(int nCols, int nRows, int col, int row) { return (nCols - col + 1) * (nRows - row); }
int candies(int n, int m) { return m / n * n; }
bool sudoku(int[][] grid) { var horizontalLists = new List<List<int>>(); var verticalLists = new List<List<int>>(); var clustersLists = new List<List<int>>(); for (var y = 0; y < 9; y++) verticalLists.Add(grid[y].ToList()); for (var x = 0; x < 9; x++) { var horizontalList = new List<int>(); for (var y = 0; y < 9; y++) horizontalList.Add(grid[y][x]); horizontalLists.Add(horizontalList); } for (var x = 0; x < 9; x += 3) for (var y = 0; y < 9; y += 3) { var clustersList = new List<int>(); clustersList.Add(grid[y][x]); clustersList.Add(grid[y + 1][x]); clustersList.Add(grid[y + 2][x]); clustersList.Add(grid[y][x + 1]); clustersList.Add(grid[y + 1][x + 1]); clustersList.Add(grid[y + 2][x + 1]); clustersList.Add(grid[y][x + 2]); clustersList.Add(grid[y + 1][x + 2]); clustersList.Add(grid[y + 2][x + 2]); clustersLists.Add(clustersList); } return !horizontalLists.Any( horizontalList => horizontalList.Any(i => horizontalList.Count(i1 => i1 == i) != 1)) && !verticalLists.Any( verticalList => verticalList.Any(i => verticalList.Count(i1 => i1 == i) != 1)) && !clustersLists.Any( clustersList => clustersList.Any(i => clustersList.Count(i1 => i1 == i) != 1)); }
int[][] spiralNumbers(int n) { var answer = new int[n][]; for (var i = 0; i < n; i++) answer[i] = new int[n]; var j = 1; var start = 0; var row = start; var col = start; var end = n - 1; while (j <= n * n) { // Horizontal to the right while (true) { if (answer[row][col] == 0) { answer[row][col] = j; j++; } if (col == end) break; col++; } // Vertically down while (true) { if (answer[row][col] == 0) { answer[row][col] = j; j++; } if (row == end) break; row++; } // Horizontal to the left while (true) { if (answer[row][col] == 0) { answer[row][col] = j; j++; } if (col == start) break; col--; } // Vertically up while (true) { if (answer[row][col] == 0) { answer[row][col] = j; j++; } if (row == start) break; row--; } row++; start++; end--; } return answer; }