1. 问题描述 给定一个整数数组nums[],查找是否存在两个下标i和j,满足numsi=numsjnums_i = nums_j 且|i?j|≤k|i-j| \le k。2. 思路与方法 这个问题比Contains Duplicate III要简单一些,思路方面可以参考上一篇文章Contains Duplicate III。采用“滑动窗口”+哈希的方法。不同的是,在窗口范围内只要找到满足has...
分类:
其他好文 时间:
2015-06-25 09:04:22
阅读次数:
198
1. 问题描述 给定一个整数数组nums[],查找是否存在两个下标i和j,满足|numsi?numsj|≤t|nums_i-nums_j| \le t 且 |i?j|≤k|i-j| \le k。2. 方法与思路 总得思路就是:“滑动窗口”+unordered_map。
推理过程如下:
|numsi?numsj|≤t?|numsi/t?numsj/t|≤1|nums_i-nums_j|...
分类:
其他好文 时间:
2015-06-24 22:41:57
阅读次数:
328
Given an array of integers, find two numbers such that they add up to a specific target number.
The function twoSum should return indices of the two numbers such that they add up to the target, whe...
分类:
其他好文 时间:
2015-06-24 10:59:38
阅读次数:
112
一、数据结构:hash_map原理
hash_map基于hash table(哈希表)。哈希表最大的优点,就是把数据的存储和查找消耗的时间大大降低,几乎可以看成是常数时间;而代价仅仅是消耗比较多的内存。然而在当前可利用内存越来越多的情况下,用空间换时间的做法是值得的。另外,编码比较容易也是它的特点之一。
其基本原理是:使用一个下标范围比较大的数组来存储元素。可以设计一个函数(哈希函数,也叫做散列函数),使得每个元素的关键字都与一个函数值(即数组下标,hash值)相对应,于是用这个数组单元来存储这个元素...
分类:
编程语言 时间:
2015-06-23 11:59:53
阅读次数:
166
hash结构体
struct Hash_map
{
static const int mask=0x7fffff;
int p[8388608],q[8388608];
void clear(){
for(int i=0;i<=mask;++i)
q[i]=0;
}
int & operator [...
分类:
其他好文 时间:
2015-06-21 09:28:10
阅读次数:
130
先对原串分组hash,查询就是看某一区间内是否出现某值.可以每个值存一个集合,保存这个值出现的位置.(也可以建可持久化值域线段树)map >很省事...(Yes写成了YES,狂WA) 1 #include 2 #include 3 #include 4 #define N 1000010 5 ...
分类:
其他好文 时间:
2015-06-06 22:02:35
阅读次数:
171
0 为什么需要hash_map 用过map吧?map提供一个很常用的功能,那就是提供key-value的存储和查找功能。例如,我要记录一个人名和相应的存储,而且随时增加,要快速查找和修改: 岳不群-华山派掌门人,人称君子剑 ...
分类:
其他好文 时间:
2015-06-06 16:43:37
阅读次数:
172
标准STL序列容器:vector、string、deque和list。
标准STL关联容器:set、multiset、map和multimap。
非标准序列容器slist和rope。slist是一个单向链表,rope本质上是一个重型字符串。
非标准关联容器hash_set、hash_multiset、hash_map和hash_multimap。
STL中的list就是一双向链表,可高...
分类:
其他好文 时间:
2015-05-27 22:59:21
阅读次数:
272
kSum问题是一类题型,常见的有2Sum,3Sum,4Sum等。这篇博文就来总结一些kSum问题的解法,以及对应的时间复杂度。
1. 2Sum
在一个给定的数组nums中,寻找和为定值target的两个数。
【解法1】:把数组排序,然后使用two pointers的方法来求解。时间复杂度分析:排序O(nlogn),两指针遍历O(n),总体O(nlogn).
...
分类:
其他好文 时间:
2015-05-07 14:44:35
阅读次数:
1856
在定义hash_map容器的时候,不仅需要指定键和值的类型,还需要指定hash函数和相等函数
(一)hash_map 的hash函数
hash到底是什么样子?看看源码:
struct hashint> {
size_t operator()(int __x) const { return __x; }
};
原来是个函数对象。在SGI S...
分类:
编程语言 时间:
2015-05-05 08:55:34
阅读次数:
313