LeetCode #36 Valid Sudoku Reescrit i traduït
Resum de la solució La solució comprova que un tauler de Sudoku 9 per 9 sigui vàlid verificant files, columnes i les nou caixes 3 per 3. Per a cada fila, columna i caixa s'utilitza un conjunt HashSet que evita duplicats de dígits de l'1 al 9 i s'ignoren les cel·les buides representades pel caràcter punt.
Verificació de files Es recorren les nou files amb un bucle extern. Per a cada fila es crea un nou HashSet i es recorren les nou cel·les d'aquesta fila. Si la cel·la no és punt i l'intent d'afegir el dígit al conjunt falla, significa que hi ha un duplicat i el tauler no és vàlid.
Verificació de columnes De manera anàloga a les files, es recorren les nou columnes amb un bucle extern. Per a cada columna es crea un HashSet nou i es recorren les cel·les en aquesta columna. Si apareix un dígit repetit el mètode retorna false.
Verificació de les caixes 3 per 3 Aquesta és la part més delicada perquè cal mapar coordenades de caixa a posicions del tauler. Les caixes poden identificar-se per dos índexs boxRow i boxCol que prenen valors 0, 1 i 2 formant les nou combinacions Box(0,0) Box(0,1) Box(0,2) Box(1,0) Box(1,1) Box(1,2) Box(2,0) Box(2,1) Box(2,2).
Bucle exterior de selecció de caixa S'usen dos bucles: for int boxRow = 0; boxRow < 3; boxRow++ i for int boxCol = 0; boxCol < 3; boxCol++. boxRow indica la fila de caixes i boxCol la columna de caixes, generant així les nou caixes.
Conversió de coordenades de caixa a coordenades del tauler Per recórrer les posicions dins d'una caixa s'usen bucles niats: for int i = boxRow * 3; i < boxRow * 3 + 3; i++ i for int j = boxCol * 3; j < boxCol * 3 + 3; j++. La fórmula clau és multiplicar boxRow i boxCol per 3 per obtenir l'índex inicial de la submatriu 3 per 3.
Exemple caixa superior esquerra Box 0,0 boxRow 0 i boxCol 0 produeixen i 0,1,2 i j 0,1,2. Es revisen les posicions [0,0] [0,1] [0,2] [1,0] [1,1] [1,2] [2,0] [2,1] [2,2].
Exemple caixa central Box 1,1 boxRow 1 i boxCol 1 produeixen i 3,4,5 i j 3,4,5. Es revisen les posicions [3,3] [3,4] [3,5] [4,3] [4,4] [4,5] [5,3] [5,4] [5,5].
Exemple caixa inferior dreta Box 2,2 boxRow 2 i boxCol 2 produeixen i 6,7,8 i j 6,7,8. Es revisen les posicions [6,6] [6,7] [6,8] [7,6] [7,7] [7,8] [8,6] [8,7] [8,8].
Validació dins de cada caixa Per a cada caixa es crea un HashSet nou i s'afegeixen els dígits trobats. Si un dígit ja existeix al HashSet la validació falla i la funció retorna false. Aquest mateix patró s'aplica a files i columnes.
Complexitat i notes pràctiques L'algorisme recorre com a màxim les 81 cel·les del tauler un nombre constant de vegades per fila, columna i caixa, per tant el seu cost és lineal en la mida del tauler i en la pràctica constant per a un Sudoku estàndard. És senzill, clar i eficient per validar taulers inicials de Sudoku.
Sobre Q2BSTUDIO Q2BSTUDIO és una empresa de desenvolupament de programari especialitzada en aplicacions a mida i programari a mida per a empreses de totes les mides. Oferim serveis avançats en intel·ligència artificial i IA per a empreses, desenvolupament d'agents IA, ciberseguretat i consultoria en serveis cloud AWS i Azure. A més brindem solucions de serveis intel·ligència de negoci i visualització amb Power BI per convertir dades en decisions accionables. Els nostres projectes combinen experiència en intel·ligència artificial, ciberseguretat i arquitectura cloud per lliurar aplicacions a mida segures i escalables.
Paraules clau i posicionament aplicacions a mida programari a mida intel·ligència artificial ciberseguretat serveis cloud AWS i Azure serveis intel·ligència de negoci IA per a empreses agents IA Power BI
Contacte i crida a l'acció Si vols desenvolupar una solució personalitzada, millorar la seguretat dels teus sistemes, implementar intel·ligència artificial en els teus processos o migrar al núvol amb serveis cloud AWS i Azure, contacta amb Q2BSTUDIO i transformem les teves idees en productes d'alt valor.



