C/C++教程

NC86 矩阵元素查找 NC30 缺失的第一个正整数

本文主要是介绍NC86 矩阵元素查找 NC30 缺失的第一个正整数,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

NC86 矩阵元素查找 NC30 缺失的第一个正整数

  • 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
};
这篇关于NC86 矩阵元素查找 NC30 缺失的第一个正整数的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!