NC86 矩阵元素查找 NC30 缺失的第一个正整数
NC86 矩阵元素查找
-
由于矩阵元素行,列都是从小到大有序的,可以从左下角开始
-
如果当前元素小于目标值,由于向上只会更小,所有则向右移动
-
如果当前元素大于目标值,由于向右只会更大,所有则向上移动
/**
*
* @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
};
NC30 缺失的第一个正整数
- 遍历
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
};