国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

LintCode 433: Number of Islands

2019-11-11 03:06:02
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

直接用了序貫算法寫(xiě)。然后發(fā)現(xiàn)!太麻煩了啊啊啊啊啊啊一道easy題寫(xiě)的心好累

(雖然時(shí)間復(fù)雜度挺好的。

class Solution {public:    /**     * @param grid a boolean 2D matrix     * @return an integer     */    int checkEqualList(vector< vector<int> >& equalList,int sign1,int sign2){        int signMin=min(sign1,sign2);        int signMax=max(sign1,sign2);        int i;        for(i=0;i<equalList[signMin].size();i++)            if(equalList[signMin][i]==signMax)            return signMin;        equalList[signMin].push_back(signMax);        return signMin;    }    int numIslands(vector< vector<bool> >& grid) {        int num=0;        int columnSize;        int rowSize;        int i,j;                if(grid.size()){            columnSize=grid[0].size();            rowSize=grid.size();        }        else{            columnSize=rowSize=0;            return 0;        }        vector< vector<int> > sign(rowSize,vector<int>(columnSize));        vector< vector<int> > equalList;        for(i=0;i<rowSize;i++){            for(j=0;j<columnSize;j++){                if(!grid[i][j])                    continue;                //if the up and left points all have value of one, add their signs to equal list                if(j-1>=0&&grid[i][j-1]==1&&i-1>=0&&grid[i-1][j]==1&&sign[i-1][j]!=sign[i][j-1]){                    //add the large sign to the small sign's vector column.                    sign[i][j]=checkEqualList(equalList,sign[i-1][j],sign[i][j-1]);                }                else if(((j-1>=0&&grid[i][j-1]==0)||j==0)                        &&((i-1>=0&&grid[i-1][j]==0)||i==0)){                            //if the up and left points don't exist or have value of one,add a new sign to equal list.                            equalList.push_back(vector<int>());                            sign[i][j]=num;                            num++;                }                else{                    if(j-1>=0&&grid[i][j-1]==1)                        sign[i][j]=sign[i][j-1];                    else if(i-1>=0&&grid[i-1][j]==1)                        sign[i][j]=sign[i-1][j];                }            }//            cout<<"num:"<<num<<endl;        }        int minusNum=0;        int equalSize=equalList.size();        for(i=0;i<equalSize;i++){//            for(j=0;j<equalList[i].size();j++){//                cout<<equalList[i][j]<<" ";//            }//            cout<<" i:"<<i<<endl;            minusNum+=equalList[i].size();        }//        for(i=0;i<rowSize;i++){//            for(j=0;j<columnSize;j++){//                cout<<sign[i][j]<<" ";////                if(grid[i][j]&&!sign[i][j])////                    cout<<i<<" "<<j<<" ";//            }////            cout<<endl;//        }        return num-minusNum;    }};


上一篇:89. Gray Code

下一篇:88. Merge Sorted Array

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 西吉县| 石家庄市| 铜鼓县| 张掖市| 旌德县| 郁南县| 达州市| 崇文区| 子长县| 高要市| 柳江县| 长沙县| 元谋县| 新安县| 星座| 沙洋县| 顺平县| 盐亭县| 霍州市| 崇仁县| 灌阳县| 凭祥市| 黄陵县| 万宁市| 孟州市| 天峨县| 嘉峪关市| 通榆县| 左权县| 平利县| 林州市| 木里| 镇雄县| 商河县| 安塞县| 铁岭市| 乐清市| 东宁县| 和龙市| 新巴尔虎右旗| 浏阳市|