Skip to content

Instantly share code, notes, and snippets.

@bhushangoel
Created December 10, 2020 05:54
Show Gist options
  • Save bhushangoel/d7196c65682310ffa70a3d3d24f3aabd to your computer and use it in GitHub Desktop.
Save bhushangoel/d7196c65682310ffa70a3d3d24f3aabd to your computer and use it in GitHub Desktop.
/**
* @param {number[][]} mat
* @param {number} k
* @return {number[]}
*/
var kWeakestRows = function(mat, k) {
const n = mat.length;
let outArr = [];
for(let i=0; i<n; i++) {
outArr.push({count: 0, index: i})
const m = mat[i].length;
let s = 0;
let e = m-1;
// Using Binary search
while(s <= e) {
let mid = Math.floor(s + (e-s)/2);
if(mat[i][mid] === 1 && (mid === m-1 || mat[i][mid+1] === 0)) {
outArr[i]['count'] = mid+1;
break;
}
if(mat[i][mid] === 0) {
e = mid - 1;
} else if(mat[i][mid] === 1) {
s = mid + 1;
}
}
}
outArr.sort((a,b) => a.count - b.count);
let finalArr = [];
for(let i=0; i<k; i++) {
finalArr.push(outArr[i].index);
}
return finalArr;
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment