最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java實(shí)現(xiàn)消消樂(lè)中的消除功能

 更新時(shí)間:2021年07月28日 10:38:36   作者:碼中天涯  
這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)消消樂(lè)中的消除功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了Java實(shí)現(xiàn)消消樂(lè)消除功能的具體代碼,供大家參考,具體內(nèi)容如下

有n行m列矩陣,每個(gè)位置的元素取值(1~9),同一行或者同一列中如果有三個(gè)以及三個(gè)以上的數(shù)字相同時(shí),將改相同的數(shù)字全部消除(即改為0)

**注意:**同一個(gè)數(shù)字可能同時(shí)在某一行和某一列被消除。

解題思路:先將行中滿(mǎn)足條件的數(shù)字消除(在新數(shù)組中消除,不改變?cè)瓟?shù)組的數(shù)據(jù)。),然后將列中滿(mǎn)足條件的數(shù)字消除(同樣是在新數(shù)組中消除),最后在合并經(jīng)過(guò)行消除和列消除得到的兩個(gè)數(shù)組。

/**消除行中滿(mǎn)足條件的數(shù)字*/
public static int[][] TD(int[][] sourceArray) {
  //數(shù)組行的長(zhǎng)度;
        int hang = sourceArray.length;
        //數(shù)組列的長(zhǎng)度;
        int lie = sourceArray[0].length;
        //定義一個(gè)新數(shù)組;為了不改變?cè)瓟?shù)組的數(shù)據(jù);
        int[][] arr = new int[hang][lie];
        for (int i = 0; i < hang; i++) {
            for (int j = 0; j < lie; j++) {
                arr[i][j] = sourceArray[i][j];
            }
        }
        //行消除:某一行中有三個(gè)及三個(gè)以上相鄰,相同的數(shù)字,就將滿(mǎn)足該條件的數(shù)字修改為0。
        for (int i = 0; i < hang; i++) {
        //注意:索引不要越界。
            for (int j = 1; j < lie-1; j++) {
                if (arr[i][j-1]==arr[i][j]&&arr[i][j+1]==arr[i][j]) {
                    arr[i][j-1]=0;
                    arr[i][j+1]=0;
                    int count = 2;
                    while((j+count<lie)&&arr[i][j+count]==arr[i][j]) {
                        arr[i][j+count]=0;
                        count++;
                    }
                    arr[i][j]=0;
                }
            }
        }
        return arr;
}
/**消除列中滿(mǎn)足條件的數(shù)字*/
public static int[][] MD(int[][] sourceArray) {
        int hang = sourceArray.length;
        int lie = sourceArray[0].length;
        int[][] arr = new int[hang][lie];
        for (int i = 0; i < hang; i++) {
            for (int j = 0; j < lie; j++) {
                arr[i][j] = sourceArray[i][j];
            }
        }
        for (int j = 0; j < lie; j++) {
            for (int i = 1; i < hang-1; i++) {
                if (arr[i-1][j]==arr[i][j]&&arr[i+1][j]==arr[i][j]) {
                    arr[i-1][j]=0;
                    arr[i+1][j]=0;
                    int count = 2;
                    while(i+count<hang&&arr[i][j]==arr[i+count][j]) {
                        arr[i+count][j]=0;
                        count++;
                    }
                    arr[i][j]=0;
                }
            }
        }
        return arr;
}
/**將上面兩次消除得到的兩個(gè)數(shù)組合并*/
public static int[][] copyTDAndMD(int[][] sourceArray,int[][] td,int[][] md) {
        for (int i = 0; i < td.length; i++) {
            for (int j = 0; j < md[0].length; j++) {
            //如果兩個(gè)數(shù)組(行消除和列消除得到的數(shù)組)中同一位置的元素相等,就將該元素添加到原數(shù)組中,不相等就將0添加到原數(shù)組中。
                sourceArray[i][j] = (td[i][j]==md[i][j])?td[i][j]:0;
            }
        }
        return sourceArray;
    }

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • java中TESTful架構(gòu)原理分析

    java中TESTful架構(gòu)原理分析

    這篇文章主要介紹了對(duì)java架構(gòu)中TESTful架構(gòu)原理進(jìn)行了詳細(xì)的原理分析,有需要的朋友可以借鑒參考下,希望可以有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2021-09-09
  • 圖文詳解Java中class的初始化順序

    圖文詳解Java中class的初始化順序

    網(wǎng)上有很多關(guān)于Java中class的初始化順序文章,但是本文通過(guò)圖文更加詳細(xì)的介紹了Java中class的初始化順序,并對(duì)class的裝載順序進(jìn)行了講解,下面一起來(lái)看看。
    2016-08-08
  • SpringBoot整合Redis實(shí)現(xiàn)高并發(fā)數(shù)據(jù)緩存的示例講解

    SpringBoot整合Redis實(shí)現(xiàn)高并發(fā)數(shù)據(jù)緩存的示例講解

    這篇文章主要介紹了SpringBoot整合Redis實(shí)現(xiàn)高并發(fā)數(shù)據(jù)緩存,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-03-03
  • JUnit 5中擴(kuò)展模型的深入理解

    JUnit 5中擴(kuò)展模型的深入理解

    幾乎所有的Java 開(kāi)發(fā)人員都會(huì)使用JUnit 來(lái)做測(cè)試,但其實(shí)很多自動(dòng)化測(cè)試人員也會(huì)使用Junit 。下面這篇文章主要給大家介紹了關(guān)于JUnit 5中擴(kuò)展模型的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2018-08-08
  • SpringBoot?pdf打印及預(yù)覽(openhtmltopdf+freemarker)

    SpringBoot?pdf打印及預(yù)覽(openhtmltopdf+freemarker)

    這篇文章主要介紹了SpringBoot?pdf打印及預(yù)覽(openhtmltopdf+freemarker)
    2023-05-05
  • elasticsearch分布式及數(shù)據(jù)的功能源碼分析

    elasticsearch分布式及數(shù)據(jù)的功能源碼分析

    這篇文章主要為大家介紹了elasticsearch分布式及數(shù)據(jù)功能源碼分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-04-04
  • Maven中pom.xml配置文件詳細(xì)介紹

    Maven中pom.xml配置文件詳細(xì)介紹

    這篇文章主要介紹了Maven中pom.xml配置文件詳細(xì)介紹,具有一定參考價(jià)值,需要的朋友可以了解下。
    2017-11-11
  • 使用Idea或Datagrip導(dǎo)入excel數(shù)據(jù)的方法

    使用Idea或Datagrip導(dǎo)入excel數(shù)據(jù)的方法

    這篇文章主要介紹了使用Idea或Datagrip導(dǎo)入excel數(shù)據(jù)的方法,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-11-11
  • Java入門(mén)絆腳石之Override和Overload的區(qū)別詳解

    Java入門(mén)絆腳石之Override和Overload的區(qū)別詳解

    重寫(xiě)是子類(lèi)對(duì)父類(lèi)的允許訪問(wèn)的方法的實(shí)現(xiàn)過(guò)程進(jìn)行重新編寫(xiě), 返回值和形參都不能改變。即外殼不變,核心重寫(xiě)!重寫(xiě)的好處在于子類(lèi)可以根據(jù)需要,定義特定于自己的行為。重載是在一個(gè)類(lèi)里面,方法名字相同,而參數(shù)不同。返回類(lèi)型可以相同也可以不同
    2021-10-10
  • Java編程思想中關(guān)于并發(fā)的總結(jié)

    Java編程思想中關(guān)于并發(fā)的總結(jié)

    在本文中小編給大家整理的是關(guān)于Java編程思想中關(guān)于并發(fā)的總結(jié)以及相關(guān)實(shí)例內(nèi)容,需要的朋友們參考下。
    2019-09-09

最新評(píng)論

三穗县| 彭阳县| 楚雄市| 华容县| 昌吉市| 阿巴嘎旗| 恩施市| 滦平县| 静海县| 绥化市| 兖州市| 新丰县| 鲁甸县| 化德县| 韩城市| 宜兰县| 黎川县| 房产| 修文县| 大姚县| 即墨市| 浦江县| 安吉县| 阿尔山市| 搜索| 三原县| 香格里拉县| 怀安县| 新津县| 项城市| 栾川县| 桐庐县| 黄骅市| 招远市| 屯留县| 桃源县| 和政县| 驻马店市| 北辰区| 五华县| 洪洞县|