448. 找到所有数组中消失的数字( 抽屉原理 )
程序员文章站
2022-03-04 23:51:10
...
LeetCode: 448. 找到所有数组中消失的数字
类似题:
博客指路: 442. 数组中重复的数据 ( 抽屉原理 )
抽屉原理
将数组中的 val 放入到 val - 1的下标中。
最后消失的数字就是 i n d e x ! = v a l − 1 index != val - 1 index!=val−1 的
抽屉原理
func findDisappearedNumbers(nums []int) []int {
var ans []int
for i, _ := range nums {
for nums[nums[i] - 1] != nums[i] {
swap(nums, nums[i] - 1, i)
}
}
for i, val := range nums {
if val - 1 != i {
ans = append(ans, i + 1)
}
}
return ans
}
func swap(arr []int, a int, b int){
if a == b{ return }
arr[a] = arr[a] ^ arr[b]
arr[b] = arr[a] ^ arr[b]
arr[a] = arr[a] ^ arr[b]
}
推荐阅读
-
【LeetCode-⭐Hot100】448. 找到所有数组中消失的数字
-
LeetCode-448. 找到所有数组中消失的数字
-
LeetCode第448题找到所有数组中消失的数字(Python)
-
【leetcode】找到所有数组中消失的数字
-
【力扣Hot100】448. 找到所有数组中消失的数字
-
[ 热题 HOT 100]---448. 找到所有数组中消失的数字 ---哈希表/原地修改(秀的头皮发麻)
-
448. 找到所有数组中消失的数字
-
leetcode 448、645 —— 找到所有数组中消失的数字(错误的集合)
-
原地哈希表:力扣448. 找到所有数组中消失的数字
-
LeetCode 448. 找到所有数组中消失的数字