Click here to Skip to main content
15,889,034 members
Home / Discussions / Java
   

Java

 
QuestionJAVA PROGRAMMING Pin
Member 150686089-Feb-21 2:02
Member 150686089-Feb-21 2:02 
AnswerRe: JAVA PROGRAMMING Pin
Richard MacCutchan9-Feb-21 2:49
mveRichard MacCutchan9-Feb-21 2:49 
QuestionBarrons Ap Computer Science A / question on compound boolean Pin
Ap_noob12-Jan-21 11:45
Ap_noob12-Jan-21 11:45 
AnswerRe: Barrons Ap Computer Science A / question on compound boolean Pin
Richard MacCutchan12-Jan-21 21:40
mveRichard MacCutchan12-Jan-21 21:40 
QuestionConvert string array to integer without using loop? Thanks Azbilegt Chuluunbat Pin
Azbilegt Chuluunbat30-Dec-20 6:48
Azbilegt Chuluunbat30-Dec-20 6:48 
AnswerRe: Convert string array to integer without using loop? Thanks Azbilegt Chuluunbat Pin
Victor Nijegorodov30-Dec-20 7:20
Victor Nijegorodov30-Dec-20 7:20 
AnswerRe: Convert string array to integer without using loop? Thanks Azbilegt Chuluunbat Pin
Richard MacCutchan30-Dec-20 21:26
mveRichard MacCutchan30-Dec-20 21:26 
AnswerRe: Convert string array to integer without using loop? Thanks Azbilegt Chuluunbat Pin
Randor 31-Dec-20 0:30
professional Randor 31-Dec-20 0:30 
QuestionDon't understand the error Pin
rorilila25-Dec-20 23:13
rorilila25-Dec-20 23:13 
AnswerRe: Don't understand the error Pin
Sandeep Mewara25-Dec-20 23:26
mveSandeep Mewara25-Dec-20 23:26 
AnswerRe: Don't understand the error Pin
Richard MacCutchan25-Dec-20 23:31
mveRichard MacCutchan25-Dec-20 23:31 
QuestionIs truncating a table faster than dropping and re-creating it in SQL? Thanks Azbilegt Chuluunbat Pin
Azbilegt Chuluunbat20-Dec-20 13:54
Azbilegt Chuluunbat20-Dec-20 13:54 
AnswerRe: Is truncating a table faster than dropping and re-creating it in SQL? Thanks Azbilegt Chuluunbat Pin
Richard MacCutchan20-Dec-20 22:08
mveRichard MacCutchan20-Dec-20 22:08 
AnswerRe: Is truncating a table faster than dropping and re-creating it in SQL? Thanks Azbilegt Chuluunbat Pin
Dave Kreskowiak21-Dec-20 3:49
mveDave Kreskowiak21-Dec-20 3:49 
AnswerRe: Is truncating a table faster than dropping and re-creating it in SQL? Thanks Azbilegt Chuluunbat Pin
BabyYoda21-Dec-20 3:57
BabyYoda21-Dec-20 3:57 
AnswerRe: Is truncating a table faster than dropping and re-creating it in SQL? Thanks Azbilegt Chuluunbat Pin
Gerry Schmitz21-Dec-20 7:59
mveGerry Schmitz21-Dec-20 7:59 
QuestionIs there any Java library to invoke SQL queries on SQL Server? Thanks Azbilegt Chuluunbat Pin
Azbilegt Chuluunbat20-Dec-20 5:28
Azbilegt Chuluunbat20-Dec-20 5:28 
AnswerRe: Is there any Java library to invoke SQL queries on SQL Server? Thanks Azbilegt Chuluunbat Pin
Richard MacCutchan20-Dec-20 6:09
mveRichard MacCutchan20-Dec-20 6:09 
QuestionProgramación orientada a objetos en Java Pin
Member 1501835311-Dec-20 2:07
Member 1501835311-Dec-20 2:07 
AnswerRe: Programación orientada a objetos en Java Pin
OriginalGriff11-Dec-20 2:08
mveOriginalGriff11-Dec-20 2:08 
QuestionMessage Removed Pin
7-Dec-20 22:05
Braisdom Wong7-Dec-20 22:05 
QuestionMy First Java Pin
Nano Tape5-Dec-20 14:58
Nano Tape5-Dec-20 14:58 
AnswerRe: My First Java Pin
Richard MacCutchan5-Dec-20 21:31
mveRichard MacCutchan5-Dec-20 21:31 
QuestionDefault Sudoko grid conversion from 9*9 to all grid size Pin
payugaka3-Dec-20 17:22
payugaka3-Dec-20 17:22 
I have coded for Sudoku puzzle in java.The thing is my code has limitation for giving inputs for 9*9 grid. How do I make my code adaptable for all the grids.Please have patience.I am new to java.
What changes do I need to make so that the code can run on all grid sizes?The grid is square not a rectangle.


Java
class Solution {
    public void solveSudoku(char[][] board) {
        if(solveSudoku2(board)) {
            return;
        }
    }
 
    public boolean solveSudoku2(char[][] board) {
        boolean isEmpty = true;
        int row = -1;
        int col = -1;
        int n = board.length;
 
        //this code is used to check if there exists any empty cell in sudoku board
        //if there is any empty cell, that means we are not done yet and we need to solve it further,
        // so we cannot return true at any point until all the cells are full
        //by empty cell, I mean cells having '.' as the value
        for(int i = 0; i < board.length; i++) {
            for(int j = 0; j < board[0].length; j++) {
               if(board[i][j] == '.') {
                   row = i;
                   col = j;
                   isEmpty = false;
                   break;
               }
            }
            if(!isEmpty) {
                break;
            }
        }
 
        if(isEmpty) {
            return true;
        }
 
        //loop for all the numbers and start placing in the empty cells
        //numbers start from 1 to n
 
        for(int num = 1; num <= n; num++) {
            //convert number to char
            char char_num = (char)(num + '0');
            //check if the number we are adding satisfies all the sudoku rules,
            // if it does, then we place that number in the cell
            if(checkSafe(board,char_num,row,col)) {
                board[row][col] = (char)(num + '0');
 
                //using this number in place row,col, we check for all the other empty places and see if the board is returning true or not
                // if the board is not filled that means that we need to use other number in row,col place.
                //hence backtrack.
                if(solveSudoku2(board)) {
                    return true;
                } else {
                    board[row][col] = '.';
                }
            }
        }
        return false;
    }
 
    public boolean checkSafe(char[][] board, char num, int row, int col) {
        //checkk if num is present in the row
        for(int i = 0; i< board.length; i++ ) {
            if(board[row][i] == num) {
                return false;
            }
        }
 
        for(int j = 0; j < board[0].length; j++) {
            if(board[j][col] == num) {
                return false;
            }
        }
 
        int checknum = (int)Math.sqrt(board.length);
        //check for the current grid. grid will be basically checknum*checknum matrix. where every matrix will start from startrow to  startrow + checknum having checknum length.
        // so, we we have row = 0, then matrix will start from 0 to 2, i.e. the first 3x3 matrix.
        // however, we have row = 2, then also the matrix will start from 0 to 2 - the first 3x3 matrix.
        //however, if row = 3, then we will start our matrix from 3 and cotinute upto 5.
 
        int startrow = row - row % checknum;
        int startcol = col - col % checknum;
        for(int k = startrow; k < startrow + checknum; k++) {
            for(int l = startcol; l < startcol + checknum; l++) {
                if(board[k][l] == num) {
                    return false;
                }   
            }
        }
        return true;
    }
}

AnswerRe: Default Sudoko grid conversion from 9*9 to all grid size Pin
Richard MacCutchan3-Dec-20 22:55
mveRichard MacCutchan3-Dec-20 22:55 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.