哈希表 01 哈希表基础
哈希表
-
哈希函数:将“键”转换为“索引”,键可能是字符串,浮点数,日期等; 通常情况下很难保证每一个“键”通过哈希函数的转换对应不同的“索引”; 哈希冲突:两个不同的“键”通过哈希函数得到一相同的“索引”; 哈希表上最复杂的操作就是解决哈希冲突和哈希函数的设计; 哈希表充分体现了算法设计领域的经典思想:空间换时间; 如果我们有1的空间,我们只能用O(n)的时间复杂度完成各项操作(线性表); 哈希表是在时间和空间之间的平衡;
Leetcode中和哈希函数有关的一个问题
class Solution { public int firstUniqChar(String s) { int[] arr = new int[26]; for (int i = 0; i < s.length(); i++) { char c = s.charAt(i); arr[c - a] ++; } for (int i = 0; i < s.length(); i++) { char c = s.charAt(i); if (arr[c - a] == 1) { return i; } } return -1; } }
上一篇:
IDEA上Java项目控制台中文乱码