在上一个代码上改的,个rule2看了半天没看懂。。
rule2的意思是,若一个b其所在的行列都等于N,那么其所有列都与本行一毛一样,那么count++
public class Solution {
public int findBlackPixel(char[][] picture, int N) {
int count=0;
HashMap<Integer,Integer> row =new HashMap<>();
HashMap<Integer,LinkedList<Integer>> column =new HashMap<>();
HashMap<Integer,String> table =new HashMap<>();
for(int i=0;i<picture.length;i++){
for(int j=0;j<picture[0].length;j++){
if(picture[i][j]=='B'){
if(row.containsKey(i)){
row.put(i,row.get(i)+1);
}else{
row.put(i,1);
}
if(column.containsKey(j)){
column.get(j).add(i);
column.put(j,column.get(j));
}else{
LinkedList<Integer> list=new LinkedList<>();
list.add(i);
column.put(j,list);
}
}
}
table.put(i,String.valueOf(picture[i]));
}
for(int i=0;i<picture.length;i++){
for(int j=0;j<picture[0].length;j++){
if(picture[i][j]=='B'&&(row.containsKey(i)&&row.get(i)==N&&column.containsKey(j)&&column.get(j).size()==N)){
LinkedList<Integer> list=column.get(j);
boolean mark=true;
for(int k=0;k<list.size();k++){
if(!table.get(i).equals(table.get(list.get(k)))){
mark=false;
}
}
if(mark) count++;
}
}
}
return count;
}
}