题目描述:
// 给定一个未排序的整数数组,找出其中没有出现的最小的正整数。 // // 示例 1: // // 输入: [1,2,0] // 输出: 3 // 示例 2: // // 输入: [3,4,-1,1] // 输出: 2 // 示例 3: // // 输入: [7,8,9,11,12] // 输出: 1
//下方程序已验证通过,用时较长,188ms var firstMissingPositive = function(nums) { if (nums === undefined || nums.length == 0 || (nums.length == 1 && nums[0]!=1)) {//输入部分没有元素或者只有一个元素且不为1时 return 1; } if(nums.length == 1 && nums[0]==1){ //只有一个元素,且为1,则返回2 return 2; } nums.sort(function(a,b){ return a - b; }); //使用排序算法时需注意:不传参数按字符排序。需要自己传入回调函数 for(var i=0;i0){ break; } } // console.log("i= "+i); var tmp = nums[i]; //使用一个变量保存 nums[i],因为后续 nums[i]一直改变,不能在下面的for循环中直接使用 if(nums[i]!=1). for(var j=i;j