以写作调身心

Leetcode-448-Find All Numbers Disappeared in an Array

题目链接

Find All Numbers Disappeared in an Array

解析

题目意思是找出1~n(n是指数组的长度)内没有出现的数。例如[4,3,2,7,8,2,3,1]里1~8没有出现的数有5,6,所以输出就是[5,6]。

Golang

func findDisappearedNumbers(nums []int) []int {
	n := len(nums)  //获取数组的长度
	for i := 0;i < n;i++ {
		for nums[i]-1 != i && nums[i] != nums[nums[i]-1] {
			nums[i],nums[nums[i]-1] = nums[nums[i]-1],nums[i]  //交换位置
		}
	}

	ans := []int{}
	for i := 0;i < n;i++ {
		if nums[i]-1 != i {
			ans = append(ans,i+1)
		}
	}

	return ans

}

评论