leetcode
文章平均质量分 72
一个小扬
这个作者很懒,什么都没留下…
展开
-
【leetcode】350. 两个数组的交集 II
350. 两个数组的交集 II 描述 给定两个数组,编写一个函数来计算它们的交集。 说明 输出结果中每个元素出现的次数,应与元素在两个数组中出现次数的最小值一致。 我们可以不考虑输出结果的顺序。 示例 1: 输入:nums1 = [1,2,2,1], nums2 = [2,2] 输出:[2,2] 示例 2: 输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4] 输出:[4,9] 思路 使用 Hash Map 解决,属于利用哈希表计数的问题。 将 nums1 构造成原创 2020-08-19 22:56:09 · 146 阅读 · 1 评论 -
【leetcode】349. 两个数组的交集
349. 两个数组的交集 描述 给定两个数组,编写一个函数来计算它们的交集。 说明 输出结果中的每个元素一定是唯一的。 我们可以不考虑输出结果的顺序。 示例 1: 输入:nums1 = [1,2,2,1], nums2 = [2,2] 输出:[2] 示例 2: 输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4] 输出:[9,4] 思路 使用 HashMap 解决。 将其中一个 nums1 构造为哈希表;key 为 数组的某一项,value 为其对应的索引。 nums1原创 2020-08-19 22:30:08 · 127 阅读 · 0 评论 -
【leetcode】290. 单词规律
290. 单词规律 描述 给定一种规律 pattern 和一个字符串 str ,判断 str 是否遵循相同的规律。 这里的 遵循 指完全匹配,例如, pattern 里的每个字母和字符串 str 中的每个非空单词之间存在着双向连接的对应规律。 示例1: 输入: pattern = “abba”, str = “dog cat cat dog” 输出: true 示例2: 输入:pattern = “abba”, str = “dog cat cat fish” 输出: false 示例3: 输入:原创 2020-08-19 19:59:05 · 140 阅读 · 0 评论 -
【leetcode】242. 有效的字母异位词
242. 有效的字母异位词 描述 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。 示例 1: 输入: s = “anagram”, t = “nagaram” 输出: true 示例 2: 输入: s = “rat”, t = “car” 输出: false 思路 要判断连个字符串是否为字母异位词,只需统计两个字符串中 每个字符出现的次数时候相同即可。 连个长度不同的字符串一定不是字母异位词。 先将两个字符串构造成 HashMap ,key 为字符,value为出原创 2020-08-19 01:15:25 · 176 阅读 · 1 评论 -
【leetcode】219. 存在重复元素 II
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,3,1,2,3], k = 2 输出: false 思路 最简单的 Has原创 2020-08-19 00:50:47 · 87 阅读 · 0 评论 -
【leetcode】217. 存在重复元素
217. 存在重复元素 描述 给定一个整数数组,判断是否存在重复元素。 如果任意一值在数组中出现至少两次,函数返回 true 。如果数组中每个元素都不相同,则返回 false 。 示例 1: 输入: [1,2,3,1] 输出: true 示例 2: 输入: [1,2,3,4] 输出: false 示例 3: 输入: [1,1,1,3,3,4,3,2,4,2] 输出: true 思路 最简单的 HashMap 应用,查找数组中的相同元素。 用空间复杂度 换取 时间复杂度。空间复杂度 : O(n)原创 2020-08-19 00:15:43 · 67 阅读 · 0 评论 -
【leetcode】205. 同构字符串
205. 同构字符串 描述 给定两个字符串 s 和 t,判断它们是否是同构的。 如果 s 中的字符可以被替换得到 t ,那么这两个字符串是同构的。 所有出现的字符都必须用另一个字符替换,同时保留字符的顺序。两个字符不能映射到同一个字符上,但字符可以映射自己本身。 示例 1: 输入: s = “egg”, t = “add” 输出: true 示例 2: 输入: s = “foo”, t = “bar” 输出: false 示例 3: 输入: s = “paper”, t = “title” 输出:原创 2020-08-18 23:58:23 · 100 阅读 · 0 评论 -
【leetcode】204. 计数质数
计数质数 描述: 统计所有小于非负整数 n 的质数的数量。 示例: 输入: 10 输出: 4 解释: 小于 10 的质数一共有 4 个, 它们是 2, 3, 5, 7 。 思路: 埃拉托斯特尼筛法: 首先 0,1不是素数,所以将0,1从集合中删除。 然后我们从 2 开始,删除集合中所有 2 的倍数;接着删除 3,4,5…… ⌊n2−1⌋⌊\frac{n}{2}-1⌋⌊2n−1⌋ 的倍数依次类推。 集合中剩下的元素即是我们要找的素数。 图示: 代码: 第一种 Uint8Array(n)原创 2020-08-13 18:43:19 · 107 阅读 · 0 评论 -
【leetcode】202. 快乐数
快乐数 描述: 编写一个算法来判断一个数 n 是不是快乐数。 「快乐数」定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和,然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。如果 可以变为 1,那么这个数就是快乐数。 如果 n 是快乐数就返回 True ;不是,则返回 False 。 示例: 输入:19 输出:true 解释: 12 + 92 = 82 82 + 22 = 68 62 + 82 = 100 12 + 02 + 02 = 1 思路: 情况1:最原创 2020-08-13 17:02:41 · 108 阅读 · 0 评论 -
【leetcode】136. 只出现一次的数字
只出现一次的数字 描述: 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 示例 1: 输入: [2,2,1] 输出: 1 示例 2: 输入: [4,1,2,1,2] 输出: 4 思路: 第一种:利用哈希表,时间复杂度:O(n),空间复杂度:O(n) 第二种:位运算,时间复杂度:O(n),空间复杂度:O(1) 哈希表解法 遍历数组,制作HashMap,若该项存在则删除该属性,剩下唯一的一项即为结果。 var singleNumber = fu原创 2020-08-13 13:32:28 · 168 阅读 · 0 评论 -
【leetcode】1. 两数之和
两数之和 描述: 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。 示例: 给定 nums = [2, 7, 11, 15], target = 9 因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1] 思路: 由于哈希查找的时间复杂度为 O(1),所以可以利用哈希容器 map 降低时间复杂度 暴力遍历的话,时间复杂度原创 2020-08-13 13:31:13 · 88 阅读 · 0 评论