哈希表与字符串
一道题目写一天
这个作者很懒,什么都没留下…
展开
-
串联所有单词的子串
问题描述 :给定一个字符串 s 和一些长度相同的单词 words。找出 s 中恰好可以由 words 中所有单词串联形成的子串的起始位置。注意子串要与 words 中的单词完全匹配,中间不能有其他字符,但不需要考虑 words 中单词串联的顺序。示例 1:输入:s = “barfoothefoobarman”,words = [“foo”,“bar”]输出:0 9解释:从索引 0 和 9 开始的子串分别是 “barfoo” 和 “foobar” 。输出时,按照索引由小到大顺序输出。示例原创 2020-08-10 16:37:55 · 230 阅读 · 0 评论 -
前K个高频单词
问题描述 :给一非空的单词列表,返回前 k 个出现次数最多的单词。返回的答案应该按单词出现频率由高到低排序。如果不同的单词有相同出现频率,按字母顺序排序。示例 1:输入: [“i”, “love”, “leetcode”, “i”, “love”, “coding”], k = 2输出: [“i”, “love”]解析: “i” 和 “love” 为出现次数最多的两个单词,均为2次。注意,按字母顺序 “i” 在 “love” 之前。示例 2:输入: [“the”, “day”, “is”,原创 2020-08-09 22:04:33 · 233 阅读 · 0 评论 -
连续数组
问题描述 :给定一个二进制数组, 找到含有相同数量的 0 和 1 的最长连续子数组(的长度)。示例 1:输入: [0,1]输出: 2说明: [0, 1] 是具有相同数量0和1的最长连续子数组。示例 2:输入: [0,1,0]输出: 2说明: [0, 1] (或 [1, 0]) 是具有相同数量0和1的最长连续子数组。注意: 给定的二进制数组的长度不会超过50000。输入说明 :首先输入二进制数组的长度n,然后输入n个0或1,以空格分隔输出说明 :输出一个整数,表示结果输入范例原创 2020-08-09 21:16:11 · 339 阅读 · 0 评论 -
森林中的兔子
问题描述 :森林中,每个兔子都有颜色。其中一些兔子(可能是全部)告诉你还有多少其他的兔子和自己有相同的颜色。我们将这些回答放在 answers 数组里。返回森林中兔子的最少数量。示例:输入: answers = [1, 1, 2]输出: 5解释:两只回答了 “1” 的兔子可能有相同的颜色,设为红色。之后回答了 “2” 的兔子不会是红色,否则他们的回答会相互矛盾。设回答了 “2” 的兔子为蓝色。此外,森林中还应有另外 2 只蓝色兔子的回答没有包含在数组中。因此森林中兔子的最少数量是 5:原创 2020-08-09 16:55:44 · 298 阅读 · 0 评论 -
墙砖
问题描述 :你的面前有一堵矩形的、由多行砖块组成的砖墙。 这些砖块高度相同但是宽度不同。你现在要画一条自顶向下的、穿过最少砖块的垂线。砖墙由行的列表表示。 每一行都是一个代表从左至右每块砖的宽度的整数列表。如果你画的线只是从砖块的边缘经过,就不算穿过这块砖。你需要找出怎样画才能使这条线穿过的砖块数量最少,并且返回穿过的砖块数量。你不能沿着墙的两个垂直边缘之一画线,这样显然是没有穿过一块砖的。示例:输入: [[1,2,2,1],[3,1,2],[1,3,2],[2,4],[3,1,2],原创 2020-08-09 13:11:00 · 180 阅读 · 0 评论 -
和为K的子数组
问题描述 :给定一个整数数组和一个整数 k,你需要找到该数组中和为 k 的连续的子数组的个数。示例 1 :输入:nums = [1,1,1], k = 2输出: 2 , [1,1] 与 [1,1] 为两种不同的情况。输入说明 :首先输入nums数组的长度n,然后输入n个整数,以空格分隔。最后输入整数k。n的范围为 [1, 20000]。数组中元素的范围是 [-1000, 1000] ,且整数 k 的范围是 [-1e7, 1e7]。输出说明 :输出一个整数输入范例 :31 1 1原创 2020-08-08 21:29:44 · 300 阅读 · 0 评论 -
最长和谐子序列
问题描述 :和谐数组是指一个数组(长度>=2)里元素的最大值和最小值之间的差别正好是1。现在,给定一个整数数组,你需要在所有可能的子序列中找到最长的和谐子序列的长度。如果找不到这样的数组,则输出0。示例 :输入: [1,3,2,2,5,2,3,7]输出: 5原因: 最长的和谐数组是:[3,2,2,2,3].说明: 输入的数组长度最大不超过20,000.输入说明 :首先输入整数数组的长度n,2<=n<=10000然后输入n个整数,以空格分隔。输出说明 :输出最长的和原创 2020-08-08 20:24:32 · 319 阅读 · 0 评论 -
找到字符串中所有字母异位词
问题描述 :给定一个字符串 s 和一个非空字符串 p,找到 s 中所有是 p 的字母异位词的子串,返回这些子串的起始索引。字符串只包含小写英文字母,并且字符串 s 和 p 的长度都不超过 20100。说明:字母异位词指字母相同,但排列不同的字符串。示例 1:输入:s: “cbaebabacd” p: “abc”输出:[0, 6]解释:起始索引等于 0 的子串是 “cba”, 它是 “abc” 的字母异位词。起始索引等于 6 的子串是 “bac”, 它是 “abc” 的字母异位词。示原创 2020-08-08 19:34:21 · 290 阅读 · 0 评论 -
有效的数独
问题描述 :判断一个 9x9 的数独是否有效。只需要根据以下规则,验证已经填入的数字是否有效即可:数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。上图是一个部分填充的有效的数独。数独部分空格内已填入了数字,空白格用 ‘.’ 表示。示例 1:输入:53…7…6…195….98…6.8…6…34…8.3…17…2…6.6…28.…419…5…8…79输出: true示例 2:输入:原创 2020-08-07 20:14:50 · 164 阅读 · 0 评论 -
根据字符出现频率排序
问题描述 :给定一个字符串,请将字符串里的字符按照出现的频率降序排列,如果频率相同,则按照字符的ASCII码升序排列。示例 1:输入:“tree”输出:“eert”解释:'e’出现两次,'r’和’t’都只出现一次。因此’e’必须出现在’r’和’t’之前,而且’r’比’t’的ASCII码小。示例 2:输入:“cccaaa”输出:“aaaccc”解释:'c’和’a’都出现三次。因此按照字符升序排列,'a’在’c’前。示例 3:输入:“Aabb”输出:“bbAa”解释:原创 2020-08-07 13:17:30 · 1750 阅读 · 1 评论