您好,欢迎来到爱够旅游网。
搜索
您的当前位置:首页算法之哈希表

算法之哈希表

来源:爱够旅游网

哈希表(散列表)定义:
哈希冲突:


思路:
1、记录每个字符出现的下标次数。

bool isAnagram(char* s, char* t) {
    int map1[26] = {0};
    int map2[26] = {0};
    int len1 = strlen(s);
    int len2 = strlen(t);
    if (len1 != len2)
    {
        return false;
    }

    for(int i = 0; i < len1; i++)
    {
        map1[s[i] - 'a']++;
        map2[t[i] - 'a']++;
    }
    for(int j = 0; j < 26; j++)
    {
        if(map1[j] != map2[j])
        {
            return false;
        }
    }
    return true;
}

/**
 * Note: The returned array must be malloced, assume caller calls free().
 */
int* intersection(int* nums1, int nums1Size, int* nums2, int nums2Size, int* returnSize) {
    int hash_num[1005] = {0};
    int i = 0;
    int lessSize = nums1Size > nums2Size ? nums1Size : nums2Size;
    int *res = (int *) calloc(lessSize, sizeof(int));
    int index = 0;
    for(i; i < nums1Size; i++)
    {
        hash_num[nums1[i]] = 1; // 对出现过的数据标记
    }
    for(i = 0; i < nums2Size; i++)
    {
        if (hash_num[nums2[i]] == 1)
        {
            res[index] = nums2[i];
            index++;
            hash_num[nums2[i]] = 0; // 对nums1的数据元素值作为数据下标的,在取nums2数组元素值对已经存放的数组做清零。

        }
    }
    *returnSize = index;
    return res;
}

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- igbc.cn 版权所有 湘ICP备2023023988号-5

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务