由于矩阵元素行,列都是从小到大有序的,可以从左下角开始
如果当前元素小于目标值,由于向上只会更小,所有则向右移动
如果当前元素大于目标值,由于向右只会更大,所有则向上移动
/** * * @param mat int整型二维数组 * @param n int整型 * @param m int整型 * @param x int整型 * @return int整型一维数组 */ function findElement( mat , n , m , x ) { let i = n - 1 let j = 0 while(mat[i][j] != x){ if(mat[i][j] < x){ j ++ }else if(mat[i][j] > x){ i -- } } return [i , j] } module.exports = { findElement : findElement };
nums
数组,将nums[i]
作为key
,值设为true
1~n
,如果map中没有,则为第一个出现的最小正整数1~n
都出现了的话,则返回 n+1
/** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param nums int整型一维数组 * @return int整型 */ function minNumberDisappeared( nums ) { let map = new Map() for(let i = 0 ; i < nums.length ; i++){ map.set(nums[i],true) } for(let j = 1 ; j <= nums.length ; j++){ if(!map.has(j)) return j } return j + 1 } module.exports = { minNumberDisappeared : minNumberDisappeared };