哈希表
cqkmath2
这个作者很懒,什么都没留下…
展开
-
两数之和
问题描述:给一个整数数组,找到两个数使得他们的和等于一个给定的数 target。你需要实现的函数twoSum需要返回这两个数的下标, 并且第一个下标小于第二个下标。注意这里下标的范围是 1 到 n,不是以 0 开头。样例:给出 numbers = [2, 7, 11, 15], target = 9, 返回 [1, 2].解题思路:用两个循环嵌套原创 2017-05-21 10:01:43 · 114 阅读 · 0 评论 -
哈希函数
问题描述:在数据结构中,哈希函数是用来将一个字符串(或任何其他类型)转化为小于哈希表大小且大于等于零的整数。一个好的哈希函数可以尽可能少地产生冲突。一种广泛使用的哈希函数算法是使用数值33,假设任何字符串都是基于33的一个大整数,比如:hashcode("abcd") = (ascii(a) * 333 + ascii(b) * 332 + ascii(c) *33 +原创 2017-05-21 10:09:18 · 245 阅读 · 0 评论 -
子数组之和
问题描述:给定一个整数数组,找到和为零的子数组。你的代码应该返回满足要求的子数组的起始位置和结束位置样例:给出 [-3, 1, 2, -3, 4],返回[0, 2] 或者 [1, 3].解题思路:用循环控制只要和为零就记录始终位置,并且跳出循环.代码:class Solution {public:原创 2017-05-21 10:14:17 · 112 阅读 · 0 评论 -
快乐数
问题描述:写一个算法来判断一个数是不是"快乐数"。一个数是不是快乐是这么定义的:对于一个正整数,每一次将该数替换为他每个位置上的数字的平方和,然后重复这个过程直到这个数变为1,或是无限循环但始终变不到1。如果可以变为1,那么这个数就是快乐数。样例:19 就是一个快乐数。1^2 + 9^2 = 828^2 + 2^2 = 686^2 + 8^2原创 2017-05-21 10:22:29 · 153 阅读 · 0 评论 -
两数组的交
问题描述:返回两个数组的交样例:nums1 = [1, 2, 2, 1], nums2 = [2, 2], 返回 [2].解题思路:将两个从小到大数组排序,用双循环控制,并且细节处理用if判断舍去不必要的循环。代码:class Solution {public: /** * @param nums1原创 2017-05-21 10:24:45 · 115 阅读 · 0 评论 -
两数组的交 II
问题描述:计算两个数组的交样例:nums1 = [1, 2, 2, 1], nums2 = [2, 2], 返回 [2, 2].解题思路:先排序 但是这个是有几个相同的就存几个 ,第二个循环的第一个数只要比要判断的数大就跳出循环。代码:class Solution {public: /** * @p原创 2017-05-21 10:33:55 · 102 阅读 · 0 评论 -
最长回文串
问题描述:给出一个包含大小写字母的字符串。求出由这些字母构成的最长的回文串的长度是多少。数据是大小写敏感的,也就是说,"Aa" 并不会被认为是一个回文串。样例:给出 s = "abccccdd" 返回 7一种可以构建出来的最长回文串方案是 "dccaccd"。解题思路:计算每个单词出现的数目,最长即为所有偶数的和加原创 2017-05-21 10:37:48 · 450 阅读 · 0 评论 -
排序与哈希表总结
哈希表主要要是根据实际情况判断设计算法,而设计的算法基本只针对这一个或一类问题有效。排序问题里面有很多的排序算法,大量数据的算法的时间复杂度是比较重要的。原创 2017-06-15 17:11:52 · 661 阅读 · 0 评论