美文网首页
第1.4节 HASH表

第1.4节 HASH表

作者: 比特阳 | 来源:发表于2017-03-08 18:05 被阅读0次

创建于20170308
原文链接:https://leetcode.com/articles/hash-table/

1 把数组作为一个容器

private static void printFreq(char[] str) {
    int[] freq = new int[256];
    for (int i = 0; i < str.length; i++) {
        freq[str[i]]++;
    }
    for (int i = 0; i < 256; i++) {
        if (freq[i] > 0) {
            System.out.println("[" + (char)(i) + "] = " + freq[i]);
        }
    }
}

public static void main(String[] args) {
    char[] str = "Hello world".toCharArray();
    printFreq(str);
}

这里其实是把数组的索引下标作为一个hash值,ASCII 取值范围0~255。每一个ASCII 都对应一个数字,正好可以作为数组的下标。因此O(1)的时间,即可从数组中定位。

如果是小写字母,则26个字母只需要26长度的数组。通过hash函数计算出字母对应的下标。如:

index=str[i] - 'a'

2 使用HASH表

A better method is to use a hash table, in Java it's called HashMap, in C++ it's called unordered_map, and in Python it's called dict.

我一般用python的dict实现。

相关文章

  • 面试准备——HashMap原理

    Hash表 Hash表的结构就是顺序表+链表的结构Hash表(jdk1.7)中内部是HashMapEntry

  • HashMap 源码理解

    基础 Node定义 table hash表,Node数组。 size: hash表中Node节点总数,与hash...

  • Redis 字典

    Redis 字典使用Hash 表作为底层的实现,Hash 表这个结构不难理解,但是在实际应用 Hash 表时,当数...

  • 机试常用算法和题型-哈希专题

    哈希专题 hash表的用法 hash表高阶用法,二维数组存放不同组的hash值 hash结合字母表处理字符串的使用方法

  • 什么是哈希(Hash)表

    什么是哈希(Hash)表 Hash表也称散列表,也有直接译作哈希表,Hash表是一种特殊的数据结构,它同数组、链表...

  • 数据结构-Hash

    1. 什么是Hash表 先看一下hash表的结构图: 数组 + 链表 哈希表(Hash table,也叫散列表),...

  • 笔记-数据结构之 Hash(OC的粗略实现)

    什么是Hash表 先看一下hash表的结构图: 数组 + 链表 哈希表(Hash table,也叫散列表),是根据...

  • 数据结构-Hash

    1. 什么是Hash表 先看一下hash表的结构图: 数组 + 链表 哈希表(Hash table,也叫散列表),...

  • 命令使用

    一、date 二、关机或重启系统 三、alias:别名 四、hash: hash:查看hash表(表中记录了查找到...

  • 第1.4节 HASH表

    创建于20170308原文链接:https://leetcode.com/articles/hash-table/...

网友评论

      本文标题:第1.4节 HASH表

      本文链接:https://www.haomeiwen.com/subject/wcxigttx.html