
哈希
码奴生来就只知道前进
我的GitHub账号:www.github.com/Mrhuangyi
展开
-
202. 快乐数
编写一个算法来判断一个数是不是“快乐数”。一个“快乐数”定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直到这个数变为 1,也可能是无限循环但始终变不到 1。如果可以变为 1,那么这个数就是快乐数。示例: 输入: 19 输出: true 解释: 12 + 92 = 82 82 + 22 = 68 62 + 82 = 100 12 + ...原创 2018-05-22 15:34:55 · 247 阅读 · 0 评论 -
804. 唯一摩尔斯密码词
国际摩尔斯密码定义一种标准编码方式,将每个字母对应于一个由一系列点和短线组成的字符串, 比如: “a” 对应 “.-“, “b” 对应 “-…”, “c” 对应 “-.-.”, 等等。为了方便,所有26个英文字母对应摩尔斯密码表如下:[“.-“,”-…”,”-.-.”,”-..”,”.”,”..-.”,”–.”,”….”,”..”,”.—”,”-.-“,”.-..”,”–”,”-.”,”—...原创 2018-07-19 17:27:39 · 599 阅读 · 0 评论 -
653. 两数之和 IV - 输入 BST
给定一个二叉搜索树和一个目标结果,如果 BST 中存在两个元素且它们的和等于给定的目标结果,则返回 true。案例 1:输入: 5 / \ 3 6 / \ \2 4 7Target = 9输出: True案例 2:输入: 5 / \ 3 6 / \ \2 4 7Target = 28...原创 2018-07-19 18:11:37 · 136 阅读 · 0 评论 -
438. 找到字符串中所有字母异位词
给定一个字符串 s 和一个非空字符串 p,找到 s 中所有是 p 的字母异位词的子串,返回这些子串的起始索引。字符串只包含小写英文字母,并且字符串 s 和 p 的长度都不超过 20100。说明:字母异位词指字母相同,但排列不同的字符串。 不考虑答案输出的顺序。 示例 1:输入:s: "cbaebabacd" p: "abc"输出:[0, 6]解释: 起始索引等...原创 2018-07-22 18:10:50 · 743 阅读 · 0 评论 -
1041 Be Unique (20)(20 分)
Being unique is so important to people on Mars that even their lottery is designed in a unique way. The rule of winning is simple: one bets on a number chosen from [1, 10^4^]. The first one who bets o...原创 2018-07-27 17:38:16 · 1632 阅读 · 3 评论 -
1048 Find Coins (25)(25 分)
Eva loves to collect coins from all over the universe, including some other planets like Mars. One day she visited a universal shopping mall which could accept all kinds of coins as payments. However,...原创 2018-07-27 17:59:51 · 1130 阅读 · 3 评论 -
594. 最长和谐子序列
和谐数组是指一个数组里元素的最大值和最小值之间的差别正好是1。现在,给定一个整数数组,你需要在所有可能的子序列中找到最长的和谐子序列的长度。示例 1:输入: [1,3,2,2,5,2,3,7]输出: 5原因: 最长的和谐数组是:[3,2,2,2,3].说明: 输入的数组长度最大不超过20,000.思路: 题目要求最长和谐子序列的长度,实际上就是让你求数组里面大小相差为...原创 2018-08-01 17:25:40 · 589 阅读 · 0 评论 -
599. 两个列表的最小索引总和
假设Andy和Doris想在晚餐时选择一家餐厅,并且他们都有一个表示最喜爱餐厅的列表,每个餐厅的名字用字符串表示。你需要帮助他们用最少的索引和找出他们共同喜爱的餐厅。 如果答案不止一个,则输出所有答案并且不考虑顺序。 你可以假设总是存在一个答案。示例 1:输入:["Shogun", "Tapioca Express", "Burger King", "KFC"]["Piatti...原创 2018-08-01 17:52:10 · 767 阅读 · 0 评论 -
128. 最长连续序列
给定一个未排序的整数数组,找出最长连续序列的长度。要求算法的时间复杂度为 O(n)。示例:输入: [100, 4, 200, 1, 3, 2]输出: 4解释: 最长连续序列是 [1, 2, 3, 4]。它的长度为 4。分析:如果先进行排序在遍历求最长连续序列的长度,那么时间复杂度需要O(nlogn),但是这题要求时间复杂度为O(n).考虑用哈希表的想法,用一个哈希表unordered...原创 2018-10-01 20:45:55 · 418 阅读 · 0 评论 -
3. 无重复字符的最长子串
给定一个字符串,找出不含有重复字符的最长子串的长度。示例:给定 “abcabcbb” ,没有重复字符的最长子串是 “abc” ,那么长度就是 3。给定 “bbbbb” ,最长的子串就是 “b” ,长度是 1。给定 “pwwkew” ,最长子串是 “wke” ,长度是 3。请注意答案必须是一个子串,“pwke” 是 子序列 而不是子串。解法一:暴力法枚举所有的子字符串,一个个检查相应的...原创 2018-10-15 22:23:41 · 156 阅读 · 0 评论 -
146. LRU缓存机制
题目描述运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制。它应该支持以下操作: 获取数据 get 和 写入数据 put 。获取数据 get(key) - 如果密钥 (key) 存在于缓存中,则获取密钥的值(总是正数),否则返回 -1。写入数据 put(key, value) - 如果密钥不存在,则写入其数据值。当缓存容量达到上限时,它应该在写入新数据之前删除最近最...原创 2019-08-25 16:39:15 · 274 阅读 · 0 评论 -
500. 键盘行
给定一个单词列表,只返回可以使用在键盘同一行的字母打印出来的单词。键盘如下图所 示例1:输入: ["Hello", "Alaska", "Dad", "Peace"]输出: ["Alaska", "Dad"]注意:你可以重复使用键盘上同一字符。 你可以假设输入的字符串将只包含字母。class Solution {public: vector&原创 2018-07-10 16:29:51 · 204 阅读 · 0 评论 -
645. 错误的集合
集合 S 包含从1到 n 的整数。不幸的是,因为数据错误,导致集合里面某一个元素复制了成了集合里面的另外一个元素的值,导致集合丢失了一个整数并且有一个元素重复。给定一个数组 nums 代表了集合 S 发生错误后的结果。你的任务是首先寻找到重复出现的整数,再找到丢失的整数,将它们以数组的形式返回。示例 1:输入: nums = [1,2,2,4]输出: [2,3]注意:给定数...原创 2018-07-09 16:21:59 · 471 阅读 · 0 评论 -
409. 最长回文串
给定一个包含大写字母和小写字母的字符串,找到通过这些字母构造成的最长的回文串。在构造过程中,请注意区分大小写。比如 “Aa” 不能当做一个回文字符串。注意: 假设字符串的长度不会超过 1010。示例 1:输入:"abccccdd"输出:7解释:我们可以构造的最长的回文串是"dccaccd", 它的长度是 7。分析:这题其实比求最长回文子串要简单,我的思路就是...原创 2018-07-09 14:58:33 · 316 阅读 · 0 评论 -
LeetCode 167. 两数之和 II - 输入有序数组
给定一个已按照升序排列 的有序数组,找到两个数使得它们相加之和等于目标数。函数应该返回这两个下标值 index1 和 index2,其中 index1 必须小于 index2。说明:返回的下标值(index1 和 index2)不是从零开始的。 你可以假设每个输入只对应唯一的答案,而且你不可以重复使用相同的元素。 示例:输入: numbers = [2, 7, 11, 15],...原创 2018-05-17 15:50:11 · 404 阅读 · 0 评论 -
L1-003 个位数统计(15 分)
给定一个k位整数N = d~k-1~*10^k-1^ + … + d~1~*10^1^ + d~0~ (0<=d~i~<=9, i=0,…,k-1, d~k-1~>0),请编写程序统计每种不同的个位数字出现的次数。例如:给定N = 100311,则有2个0,3个1,和1个3。输入格式:每个输入包含1个测试用例,即一个不超过1000位的正整数N。输出格式:对N中每一...原创 2018-05-19 08:59:33 · 2989 阅读 · 0 评论 -
205. 同构字符串
给定两个字符串 s 和 t,判断它们是否是同构的。如果 s 中的字符可以被替换得到 t ,那么这两个字符串是同构的。所有出现的字符都必须用另一个字符替换,同时保留字符的顺序。两个字符不能映射到同一个字符上,但字符可以映射自己本身。示例 1:输入: s = “egg”, t = “add” 输出: true 示例 2:输入: s = “foo”, t = “bar” 输出:...原创 2018-05-25 16:24:01 · 765 阅读 · 0 评论 -
L1-027 出租(20 分)
L1-027 出租(20 分) 下面是新浪微博上曾经很火的一张图:一时间网上一片求救声,急问这个怎么破。其实这段代码很简单,index数组就是arr数组的下标,index[0]=2 对应 arr[2]=1,index[1]=0 对应 arr[0]=8,index[2]=3 对应 arr[3]=0,以此类推…… 很容易得到电话号码是18013820100。本题要求你编写一个程序,为任何一个...原创 2018-05-22 17:27:31 · 4008 阅读 · 1 评论 -
219. 存在重复元素 II
给定一个整数数组和一个整数 k,判断数组中是否存在两个不同的索引 i 和 j,使得 nums [i] = nums [j],并且 i 和 j 的差的绝对值最大为 k。示例 1:输入: nums = [1,2,3,1], k = 3 输出: true 示例 2:输入: nums = [1,0,1,1], k = 1 输出: true 示例 3:输入: nums = [1,2,...原创 2018-06-03 15:12:28 · 324 阅读 · 0 评论 -
1032 挖掘机技术哪家强(20)(20 分)
1032 挖掘机技术哪家强(20)(20 分) 为了用事实说明挖掘机技术到底哪家强,PAT组织了一场挖掘机技能大赛。现请你根据比赛结果统计出技术最强的那个学校。输入格式:输入在第1行给出不超过10^5^的正整数N,即参赛人数。随后N行,每行给出一位参赛者的信息和成绩,包括其所代表的学校的编号(从1开始连续编号)、及其比赛成绩(百分制),中间以空格分隔。输出格式:在一行中给出总得分...原创 2018-06-04 16:51:00 · 1526 阅读 · 0 评论 -
383. 赎金信
给定一个赎金信 (ransom) 字符串和一个杂志(magazine)字符串,判断第一个字符串ransom能不能由第二个字符串magazines里面的字符构成。如果可以构成,返回 true ;否则返回 false。(题目说明:为了不暴露赎金信字迹,要从杂志上搜索各个需要的字母,组成单词来表达意思。)注意:你可以假设两个字符串均只含有小写字母。canConstruct(“a”, “b...原创 2018-06-04 20:55:41 · 761 阅读 · 0 评论 -
242. 有效的字母异位词
给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的一个字母异位词。示例 1:输入: s = “anagram”, t = “nagaram” 输出: true 示例 2:输入: s = “rat”, t = “car” 输出: false 说明: 你可以假设字符串只包含小写字母。进阶: 如果输入字符串包含 unicode 字符怎么办?你能否调整你的解法...原创 2018-06-05 16:19:25 · 339 阅读 · 0 评论 -
1038 统计同成绩学生(20)(20 分)
1038 统计同成绩学生(20)(20 分) 本题要求读入N名学生的成绩,将获得某一给定分数的学生人数输出。输入格式:输入在第1行给出不超过10^5^的正整数N,即学生总人数。随后1行给出N名学生的百分制整数成绩,中间以空格分隔。最后1行给出要查询的分数个数K(不超过N的正整数),随后是K个分数,中间以空格分隔。输出格式:在一行中按查询顺序给出得分等于指定分数的学生人数,中间以空...原创 2018-06-05 15:05:17 · 995 阅读 · 0 评论 -
1042 字符统计(20)(20 分)
1042 字符统计(20)(20 分) 请编写程序,找出一段给定文字中出现最频繁的那个英文字母。输入格式:输入在一行中给出一个长度不超过1000的字符串。字符串由ASCII码表中任意可见字符及空格组成,至少包含1个英文字母,以回车结束(回车不算在内)。输出格式:在一行中输出出现频率最高的那个英文字母及其出现次数,其间以空格分隔。如果有并列,则输出按字母序最小的那个字母。统计时不区...原创 2018-06-06 08:47:12 · 967 阅读 · 0 评论 -
1059 C语言竞赛(20)(20 分)
1059 C语言竞赛(20)(20 分) C语言竞赛是浙江大学计算机学院主持的一个欢乐的竞赛。既然竞赛主旨是为了好玩,颁奖规则也就制定得很滑稽:冠军将赢得一份“神秘大奖”(比如很巨大的一本学生研究论文集……)。\排名为素数的学生将赢得最好的奖品 —— 小黄人玩偶!\ 其他人将得到巧克力。 给定比赛的最终排名以及一系列参赛者的ID,你要给出这些参赛者应该获得的奖品。输入格式:...原创 2018-06-14 13:10:06 · 467 阅读 · 0 评论 -
1065 单身狗(25)(25 分)
1065 单身狗(25)(25 分) “单身狗”是中文对于单身人士的一种爱称。本题请你从上万人的大型派对中找出落单的客人,以便给予特殊关爱。输入格式:输入第一行给出一个正整数N(<=50000),是已知夫妻/伴侣的对数;随后N行,每行给出一对夫妻/伴侣——为方便起见,每人对应一个ID号,为5位数字(从00000到99999),ID间以空格分隔;之后给出一个正整数M(<=100...原创 2018-06-17 17:13:05 · 860 阅读 · 0 评论 -
387. 字符串中的第一个唯一字符
给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。案例:s = “leetcode” 返回 0.s = “loveleetcode”, 返回 2.注意事项:您可以假定该字符串只包含小写字母。class Solution {public: int firstUniqChar(string s) { int a[...原创 2018-06-17 20:54:49 · 539 阅读 · 0 评论 -
1069 微博转发抽奖(20)(20 分)
1069 微博转发抽奖(20)(20 分) 小明PAT考了满分,高兴之余决定发起微博转发抽奖活动,从转发的网友中按顺序每隔N个人就发出一个红包。请你编写程序帮助他确定中奖名单。输入格式:输入第一行给出三个正整数M(<= 1000)、N和S,分别是转发的总量、小明决定的中奖间隔、以及第一位中奖者的序号(编号从1开始)。随后M行,顺序给出转发微博的网友的昵称(不超过20个字符、不包含空...原创 2018-06-18 11:22:11 · 325 阅读 · 0 评论 -
LeetCode 1.两数之和
给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]法一:直接双重循环 暴力解,但会超时,O(n^2)法二:哈希,用一个哈希表,存储每个数...原创 2018-05-17 15:40:56 · 130 阅读 · 0 评论