题解 | #缺失的第一个正整数#

缺失的第一个正整数

https://www.nowcoder.com/practice/50ec6a5b0e4e45348544348278cdcee5

package main
import "fmt"

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param nums int整型一维数组 
 * @return int整型
*/
func minNumberDisappeared( nums []int ) int {
    arr := nums
	n := len(arr)
	//负数 =》n+1
	for i := 0; i < n; i++ {
		if arr[i] <= 0 {
			arr[i] = n + 1
		}
	}

	//判断数据是否大于n,不大于则转为负数
	for i := 0; i < n; i++ {
		num := abs(arr[i])
		if num <= n {
			arr[num-1] = -abs(arr[num-1])
		}
	}
	fmt.Printf("fill arr: %v\n", arr)
	//遍历arr数组,查看是否有大于0的数,有则i+1
	for i := 0; i < n; i++ {
		if arr[i] > 0 {
			return i + 1
		}
	}
	//否则返回n + 1
	return n + 1
}

func abs(num int) int {
	if num < 0 {
		return -num
	}
	return num
}

全部评论

相关推荐

当初高考报计算机真是造大孽了啊!卷的飞起!哪都是计算机的人,考研,考公,找工作全他奶的计算机的人,太难了。国企也是。关键一届比一届卷,造大孽了!
_Lyrics_:因为计算机,没有体验到快乐的大学研究生时光,好不容易修完课程就要出去实习,看着别人专业可以一起搓麻将,游山玩水,而我却要自己一个人住在北上不到十平米的出租屋,每天两点一线
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务