相关疑难解决方法(0)

哈希32位int到16bit int?

有什么简单的方法可以将32位整数(例如IP地址,例如Unix time_t等)散列为16位整数?

例如,hash_32b_to_16b(0x12345678)可能会返回0xABCD.

让我们从这开始,作为一个可怕但功能性的示例解决方案:

function hash_32b_to_16b(val32b) {
    return val32b % 0xffff;
}
Run Code Online (Sandbox Code Playgroud)

问题是关于JavaScript的,但可以随意添加任何与语言无关的解决方案,最好不使用库函数.

此问题的上下文是生成唯一ID(例如,64位ID可能由多个32位值的多个16位哈希组成).避免碰撞很重要.

简单=好.古怪+混淆=有趣.

javascript hash integer

17
推荐指数
3
解决办法
5232
查看次数

Codility PermCheck为什么我的解决方案不起作用

我正在尝试解决编码练习的Codility课程,而PermCheck就是其中之一.

[编辑]问题描述:

给出了由N个整数组成的非空零索引数组A. 置换是包含从1到N的每个元素一次且仅一次的序列.例如,数组A使得:

A[0] = 4
A[1] = 1
A[2] = 3
A[3] = 2
Run Code Online (Sandbox Code Playgroud)

是一个排列,但是数组A使得:

A[0] = 4
A[1] = 1
A[2] = 3
Run Code Online (Sandbox Code Playgroud)

不是排列,因为缺少值2.目标是检查阵列A是否是排列.编写函数:class Solution {public int solution(int [] A); 在给定零索引数组A的情况下,如果数组A是排列,则返回1,如果不是,则返回0.例如,给定数组A,使得:

A[0] = 4
A[1] = 1
A[2] = 3
A[3] = 2
Run Code Online (Sandbox Code Playgroud)

函数应返回1.给定数组A,使得:

A[0] = 4
A[1] = 1
A[2] = 3
Run Code Online (Sandbox Code Playgroud)

函数应返回0.假设:N是[1..100,000]范围内的整数; 数组A的每个元素是[1..1,000,000,000]范围内的整数.

我现在的解决方案是:

class Solution {
    public int solution(int[] A) {

        final int N = A.length;
        long sum = N * (N+1)/2; …
Run Code Online (Sandbox Code Playgroud)

arrays algorithm

7
推荐指数
1
解决办法
8490
查看次数

标签 统计

algorithm ×1

arrays ×1

hash ×1

integer ×1

javascript ×1