We use cookies to ensure you have the best browsing experience on our website. Please read our cookie policy for more information about how we use cookies.
I first precomputed all magic squares. There's only one: 4 rotations and 4 mirrors, hence 8 representations of the same magic square. I then printed them and hard coded them.
publicstaticintformingMagicSquare(List<List<Integer>>s){// Write your code here// precomputed all magic squares.int[][]allmagic=newint[][]{{2,7,6,9,5,1,4,3,8},{2,9,4,7,5,3,6,1,8},{4,3,8,9,5,1,2,7,6},{4,9,2,3,5,7,8,1,6},{6,1,8,7,5,3,2,9,4},{6,7,2,1,5,9,8,3,4},{8,1,6,3,5,7,4,9,2},{8,3,4,1,5,9,6,7,2}};int[]sint=newint[9];for(inty=0;y<3;y++){for(intx=0;x<3;x++){sint[x+y*3]=s.get(y).get(x);}}intcount=9*9;for(inti=0;i<allmagic.length;i++){intmycount=0;for(intj=0;j<9;j++){mycount+=Math.abs(allmagic[i][j]-sint[j]);}if(mycount<count){count=mycount;}}returncount;}
Cookie support is required to access HackerRank
Seems like cookies are disabled on this browser, please enable them to open this website
Forming a Magic Square
You are viewing a single comment's thread. Return to all comments →
I first precomputed all magic squares. There's only one: 4 rotations and 4 mirrors, hence 8 representations of the same magic square. I then printed them and hard coded them.