05.第八章:多維數(shù)組

創(chuàng)建二維數(shù)組
二維數(shù)組長度

1. 二維數(shù)組的處理

  • 使用輸入值初始化數(shù)組
//1.使用輸入值初始化數(shù)組
    public void initArray(int array[][]){
        Scanner input=new Scanner(System.in);
        for(int row=0;row<array.length;row++){
            for(int colum=0;colum<array[row].length;colum++){
                array[row][colum]=input.nextInt();
            }
        }

    }
  • 數(shù)組按列求和
 //2.數(shù)組按列求和
    public static void sumbycolum(int array[][]){
        for(int colum=0;colum<array[0].length;colum++) {
            int total = 0;
            for(int row=0;row<array.length;row++){
                total=total+array[row][colum];
            }
            System.out.println("第"+(colum+1)+"列的和為"+total);
        }
    }

  • 哪一行的和最大
//3.哪一行的和最大
    public static void  maxRow(int array[][]){
        int maxrow=0;
        int indexOfMaxRow=0;
        for(int colum=0;colum<array[0].length;colum++)
            maxrow=maxrow+array[0][colum];
        for(int row=1;row<array.length;row++){
            int totalOfthisRow=0;
            for(int colum=0;colum<array[row].length;colum++){
                totalOfthisRow=totalOfthisRow+array[row][colum];
                if(totalOfthisRow>maxrow){
                    maxrow=totalOfthisRow;
                    indexOfMaxRow=row;
                }
            }
        }
        System.out.print("Row "+(indexOfMaxRow+1)+" has the max sum of "+maxrow);
    }

2. 示例學(xué)習(xí)

  • 找出距離最近的點(diǎn)對
使用二維數(shù)組表示點(diǎn)
public class text2_距離最近的點(diǎn)對 {
    public static void main(String[] args){
        System.out.println("輸入有幾個點(diǎn):");
        Scanner input=new Scanner(System.in);
        int row=input.nextInt();
        double [][]array=new double[row][2];
        System.out.println("輸入所有點(diǎn)的x污朽,y坐標(biāo):");
        for(int i=0;i<row;i++) {
            array[i][0]=input.nextDouble();
            array[i][1]=input.nextDouble();
        }
        //定義變量p1产场,p2表示距離最近的點(diǎn)所在的行
        int p1=0,p2=1;
        double shortDistance=distance(array[p1][0],array[p1][1],array[p2][0],array[p2][1]);
        //從0開始律杠,每一個和后面其余所有行求距離
        for(int i=0;i<array.length-1;i++)
        {
            for(int j=i+1;j<array.length;j++)
            {
                double distance=distance(array[i][0],array[i][1],array[j][0],array[j][1]);
                if(distance<shortDistance)
                {
                    p1=i;
                    p2=j;
                    shortDistance=distance;
                }
            }
        }

        System.out.println("最短的兩點(diǎn)是("+array[p1][0]+","+array[p1][1]+")("+array[p2][0]+","+array[p2][1]+")"+"\n最短的距離為:"+shortDistance);
    }

    private static double distance(double x1, double y1, double x2, double y2) {

        return Math.sqrt(Math.pow((x2-x1),2)+Math.pow((y2-y1),2));
    }

}

  • 數(shù)獨(dú)
    數(shù)獨(dú)是一個 9 x 9 的網(wǎng)格 柏靶, 它被分為更小的 3 x 3 的盒子 ( 也稱為區(qū)域或者塊 ) , 如圖
    8 - 4 a 所示 怨酝。 將從 1 到 9 的數(shù)字植人一些稱為固定方格 ( fixed cell ) 的格子里 。 該程序的目標(biāo)是將從 1 到 9 的數(shù)字植人那些稱為自由方格 ( free cell ) 的格子 费薄, 以便能夠使得每行每列以及每個 3 x 3 的盒子都包含從 1 到 9 的數(shù)字 。

    一旦找到一個數(shù)獨(dú)難題的解決方案 栖雾, 如何驗(yàn)證它是正確的呢楞抡?
    檢査每個單元格 。 每個單元格必須是 1 到 9 的數(shù)字 析藕, 單元格數(shù)字在每行 召廷、 每列 , 以及
    每個小方盒中都是唯一的 账胧。

public class text3_數(shù)獨(dú) {
    public static void main(String[] args){
        int [][]grid=readASolution();
        System.out.println(isValid(grid)?"Valid solution":"Invalid solution");
    }

    private static int[][] readASolution() {
        Scanner input=new Scanner(System.in);
        System.out.println("請輸入結(jié)果:");
        int [][]grid=new int[9][9];
        for(int i=0;i<9;i++)
            for(int j=0;j<9;j++)
                grid[i][j]=input.nextInt();
        return grid;
    }
    
    private static boolean isValid(int [][]grid){
        //判斷每一個數(shù)字是不是符合規(guī)則
        for(int i=0;i<9;i++)
            for(int j=0;j<9;j++)
                if(grid[i][j]<1||grid[i][j]>9||!isValid(i,j,grid))
                    return false;
        return true;
        
    }

    //驗(yàn)證i行j列的數(shù)字竞慢,在該行是不是唯一的,在該列是不是唯一的治泥,在3*3的方格中是不是唯一的
    private static boolean isValid(int i, int j, int[][] grid) {
        //驗(yàn)證在i行是不是唯一的
        for(int column=0;column<9;column++)
            if(column!=j&&grid[i][column]==grid[i][j])
                return false;
        //驗(yàn)證在j列是不是唯一
        for(int row=0;row<9;row++)
            if(row!=i&&grid[row][j]==grid[i][j])
                return false;
        
        //驗(yàn)證在3*3的格子里是不是唯一的
        for(int row=(i/3)*3;row<(i/3)*3+3;row++){
            for(int col=(j/3)*3;col<(j/3)*3+3;col++)
                if(row!=i&&col!=j&&grid[row][col]==grid[i][j])
                    return false;
        }
        
        return true;
    }


}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末筹煮,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子居夹,更是在濱河造成了極大的恐慌败潦,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,591評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件准脂,死亡現(xiàn)場離奇詭異劫扒,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)意狠,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,448評論 3 392
  • 文/潘曉璐 我一進(jìn)店門粟关,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人环戈,你說我怎么就攤上這事闷板。” “怎么了院塞?”我有些...
    開封第一講書人閱讀 162,823評論 0 353
  • 文/不壞的土叔 我叫張陵遮晚,是天一觀的道長。 經(jīng)常有香客問我拦止,道長县遣,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,204評論 1 292
  • 正文 為了忘掉前任汹族,我火速辦了婚禮萧求,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘顶瞒。我一直安慰自己夸政,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,228評論 6 388
  • 文/花漫 我一把揭開白布榴徐。 她就那樣靜靜地躺著守问,像睡著了一般匀归。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上耗帕,一...
    開封第一講書人閱讀 51,190評論 1 299
  • 那天穆端,我揣著相機(jī)與錄音,去河邊找鬼仿便。 笑死体啰,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的探越。 我是一名探鬼主播狡赐,決...
    沈念sama閱讀 40,078評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼钦幔!你這毒婦竟也來了枕屉?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,923評論 0 274
  • 序言:老撾萬榮一對情侶失蹤鲤氢,失蹤者是張志新(化名)和其女友劉穎搀擂,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體卷玉,經(jīng)...
    沈念sama閱讀 45,334評論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡哨颂,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,550評論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了相种。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片威恼。...
    茶點(diǎn)故事閱讀 39,727評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖寝并,靈堂內(nèi)的尸體忽然破棺而出箫措,到底是詐尸還是另有隱情,我是刑警寧澤衬潦,帶...
    沈念sama閱讀 35,428評論 5 343
  • 正文 年R本政府宣布斤蔓,位于F島的核電站,受9級特大地震影響镀岛,放射性物質(zhì)發(fā)生泄漏弦牡。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,022評論 3 326
  • 文/蒙蒙 一漂羊、第九天 我趴在偏房一處隱蔽的房頂上張望驾锰。 院中可真熱鬧,春花似錦走越、人聲如沸稻据。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,672評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽捻悯。三九已至,卻和暖如春淤毛,著一層夾襖步出監(jiān)牢的瞬間今缚,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,826評論 1 269
  • 我被黑心中介騙來泰國打工低淡, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留姓言,地道東北人。 一個月前我還...
    沈念sama閱讀 47,734評論 2 368
  • 正文 我出身青樓蔗蹋,卻偏偏與公主長得像何荚,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子猪杭,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,619評論 2 354

推薦閱讀更多精彩內(nèi)容