数组区间操作,数组中重复数相关

Posted Witcher

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数组区间操作,数组中重复数相关相关的知识,希望对你有一定的参考价值。

区间合并,区间交集,区间并集等等,数组中一个重复一次,两次相关问题

56 合并区间

字节 tencent

986 区间列表交集

题目链接

442 数组中重复的数据

题目链接

  • 原地hash
    根据数值找指定索引。如果当前索引的值>0则变负。如果<0则证明出现过
func findDuplicates(nums []int) []int {
    //原地hash
    res:=make([]int,0)
    for i:=0;i<len(nums);i++{
        index:=abs(nums[i])-1  //索引值,防止溢出
        if nums[index]>0{
            nums[index] = -nums[index]
        }else{
            res = append(res,index+1)
        }
    }
    return res
}

func abs(x int)int{ //自带math.Abs只能处理float64
    if x<0{
        return -x
    }
    return x
}
278 寻找重复数

题目链接

  • 原地hash 类似442
func findDuplicate(nums []int) int {
    //原地hash

    for i:=0;i<len(nums);i++{
        index:=abs(nums[i])-1  //索引值,防止溢出
        if nums[index]>0{
            nums[index] = -nums[index]
        }else{
            return index+1
        }
    }
    return 0
}

func abs(x int)int{ //自带math.Abs只能处理float64
    if x<0{
        return -x
    }
    return x
}

以上是关于数组区间操作,数组中重复数相关的主要内容,如果未能解决你的问题,请参考以下文章

20191209-八大排序之快速排序

一维数状数组区间修改,查询

HH的项链

算法-差分数组

树状数组

求逆序数(树状数组+离散化)