067_找到所有数组中消失的数字

知识点:

LeetCode第四百四十八题:https://leetcode-cn.com/problems/find-all-numbers-disappeared-in-an-array/submissions/

语言:GoLang

func findDisappearedNumbers(nums []int) []int {
    length := len(nums)

    // 标记与元素等值的下标位置的元素,为负数
    for _, v := range nums {
        if v > 0 && nums[v - 1] > 0 {
            nums[v - 1] *= -1
        }

        if v < 0 && nums[-1*v - 1] > 0 {
            nums[-1*v - 1] *= -1
        }
    }

    result := make([]int, 0)
    for i := 0; i < length; i++ {
        if nums[i] > 0 {
            result = append(result, i + 1)
        }
    }

    return result
}
posted @ 2020-07-16 13:45  Cenyol  阅读(79)  评论(0编辑  收藏  举报