做題思路:
從左上角到右下角依次掃描斧拍,除開最后一行要掃描兩次以外酒奶,其他行掃描一次即可删咱。
class Solution {
public int[] kWeakestRows(int[][] mat, int k) {
int[] res = new int[k];
HashMap<Integer,Integer> hash =new HashMap<>();
int index=0;
for(int i=0;i<mat[0].length;i++){
for(int j=0;j<mat.length;j++){
if(mat[j][i]==0&&k>0&&!hash.containsKey(j)){
hash.put(j,1);
res[index++]=j;
k--;
}
}
}
while(k!=0){
for(int j=0;j<mat.length;j++){
if(mat[j][mat[0].length-1]==1){
res[index++]=j;
k--;
if(k==0) break;
}
}
}
return res;
}
}
最后一行掃描兩次是因為屑埋,如果存在元素為0的行全部加進(jìn)去后,k的個數(shù)還是不夠痰滋,就說明要加入全一的行摘能,從上到下一次加入即可。