首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >整数宇宙映射阵列在定域映射中的应用与实现

整数宇宙映射阵列在定域映射中的应用与实现
EN

Stack Overflow用户
提问于 2015-12-18 17:35:32
回答 1查看 41关注 0票数 1

假设您被赋予整数数组,它可以占用整个整数空间。但是,我想把它映射到固定范围。

For ex: {1, 5, 38, 5, 2^32-1} ---> {1, 2, 3, 2, 4}请注意重复的元素值'5‘和它的映射数组。不相关。

除了芬威克树(芬威克树要求范围为1.N)外,是否还有其他应用?

一种方法是这样做,

代码语言:javascript
复制
int[] map( int[]  a) {
    int[] transArr = new int[a.length];
    Map<Integer,Integer> posValueMap = new HashMap<Integer,Integer>();
    for(int i= 0 ; i < a.length; i++) {
       if(!posValueMap.contains(i))
          posValueMap.put(a[i], i);
    }
    for(int i= 0 ; i < transArr.length; i++) {
        transArr[i] = posValueMap.get(a[i]);
    }
    return transArr;
}

是否有更简单的方法可以使用不同的算法或函数式编程构造来实现这一点?

EN

回答 1

Stack Overflow用户

发布于 2015-12-19 09:03:59

看来你需要某种完美散列

极小完美散列函数将N个不同元素的集合映射到范围0.n-1或1..N范围内的N个整数键,如您所需。

(有用于MPH的开源库)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34361037

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档