哈希表
文章平均质量分 63
哈希表
追梦偏执狂
在疯狂与不疯狂之间游荡,就很nice
展开
-
力扣:268. 丢失的数字
题目链接:268. 丢失的数字题目:给定一个包含 [0, n] 中 n 个数的数组 nums ,找出 [0, n] 这个范围内没有出现在数组中的那个数。示例 1:输入:nums = [3,0,1]输出:2解释:n = 3,因为有 3 个数字,所以所有的数字都在范围 [0,3] 内。2 是丢失的数字,因为它没有出现在 nums 中。示例 2:输入:nums = [0,1]输出:2解释:n = 2,因为有 2 个数字,所以所有的数字都在范围 [0,2] 内。2 是丢失的数字,因为它原创 2022-04-28 16:31:14 · 492 阅读 · 0 评论 -
力扣:剑指 Offer 03. 数组中重复的数字
题目链接:剑指 Offer 03. 数组中重复的数字题目:找出数组中重复的数字。在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。示例 1:输入: [2, 3, 1, 0, 2, 5, 3]输出:2 或 3限制:2 <= n <= 100000代码(c++):方案一:哈希表建立一个哈希表hash,在循环遍历nums数组时,判断当原创 2022-04-28 17:03:58 · 380 阅读 · 0 评论 -
力扣:20. 有效的括号
题目链接:20. 有效的括号题目:给定一个只包括 ‘(’,‘)’,‘{’,‘}’,‘[’,‘]’ 的字符串 s ,判断字符串是否有效。 有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。示例 1:输入:s = “()”输出:true示例 2:输入:s = “()[]{}”输出:true示例 3:输入:s = “(]”输出:false示例 4:输入:s = “([)]”输出:false示例 5:输入:s = “{[]}原创 2022-04-21 09:04:52 · 776 阅读 · 0 评论 -
力扣:454. 四数相加 II
题目链接:454. 四数相加 II题目:给你四个整数数组 nums1、nums2、nums3 和 nums4 ,数组长度都是 n ,请你计算有多少个元组 (i, j, k, l) 能满足:0 <= i, j, k, l < nnums1[i] + nums2[j] + nums3[k] + nums4[l] == 0示例 1:输入:nums1 = [1,2], nums2 = [-2,-1], nums3 = [-1,2], nums4 = [0,2]输出:2解释: 两原创 2022-04-20 22:41:50 · 272 阅读 · 0 评论 -
力扣:202. 快乐数
题目链接:202. 快乐数题目:编写一个算法来判断一个数 n 是不是快乐数。 「快乐数」 定义为:对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。如果这个过程 结果为 1,那么这个数就是快乐数。如果 n 是 快乐数 就返回 true ;不是,则返回 false 。示例 1:输入:n = 19输出:true解释:12 + 92 = 8282 + 22 = 6862 + 82 = 100原创 2022-04-20 09:14:16 · 201 阅读 · 0 评论 -
力扣:350. 两个数组的交集 II
题目链接:350. 两个数组的交集 II题目:给你两个整数数组 nums1 和 nums2,请你以数组形式返回两数组的交集。返回结果中每个元素出现的次数,应与元素在两个数组中都出现的次数一致(如果出现次数不一致,则考虑取较小值)。可以不考虑输出结果的顺序。示例 1:输入:nums1 = [1,2,2,1], nums2 = [2,2]输出:[2,2]示例 2:输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出:[4,9]提示:1 <=原创 2022-04-19 22:41:24 · 426 阅读 · 0 评论 -
力扣:349. 两个数组的交集
题目链接:349. 两个数组的交集题目:给定两个数组 nums1 和 nums2 ,返回 它们的交集 。输出结果中的每个元素一定是 唯一 的。我们可以 不考虑输出结果的顺序 。示例 1:输入:nums1 = [1,2,2,1], nums2 = [2,2]输出:[2]示例 2:输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出:[9,4]解释:[4,9] 也是可通过的提示:1 <= nums1.length, nums2.length原创 2022-04-19 22:09:23 · 318 阅读 · 0 评论 -
力扣:141. 环形链表
题目链接:141. 环形链表题目:给你一个链表的头节点 head ,判断链表中是否有环。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos来表示链表尾连接到链表中的位置(索引从 0 开始)。注意:pos 不作为参数进行传递 。仅仅是为了标识链表的实际情况。如果链表中存在环,则返回 true 。 否则,返回 false 。示例 1:输入:head = [3,2,0,-4], pos = 1输出:tr原创 2022-04-15 20:35:27 · 243 阅读 · 0 评论 -
力扣:383. 赎金信
题目链接:383. 赎金信题目:给你两个字符串:ransomNote 和 magazine ,判断 ransomNote 能不能由 magazine 里面的字符构成。如果可以,返回 true ;否则返回 false 。magazine 中的每个字符只能在 ransomNote 中使用一次。示例 1:输入:ransomNote = “a”, magazine = “b”输出:false示例 2:输入:ransomNote = “aa”, magazine = “ab”输出:fal原创 2022-04-15 15:56:57 · 315 阅读 · 0 评论 -
力扣:242. 有效的字母异位词
题目链接:242. 有效的字母异位词题目:给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。注意:若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互为字母异位词。示例 1:输入: s = “anagram”, t = “nagaram”输出: true示例 2:输入: s = “rat”, t = “car”输出: false提示:1 <= s.length, t.length <= 5 * 104s 和 t 仅包原创 2022-04-15 12:01:22 · 351 阅读 · 0 评论 -
力扣:142. 环形链表 II
题目链接:142. 环形链表 II题目:给定一个链表的头节点 head ,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置**(索引从 0 开始)**。如果 pos 是 -1,则在该链表中没有环。注意:pos 不作为参数进行传递,仅仅是为了标识链表的实际情况。不允许修改 链表。示例 1:输入:head =原创 2022-04-14 22:10:11 · 205 阅读 · 0 评论 -
力扣:面试题 02.07. 链表相交
题目链接:面试题 02.07. 链表相交题目:给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点,返回 null 。图示两个链表在节点 c1 开始相交:题目数据 保证 整个链式结构中不存在环。注意,函数返回结果后,链表必须 保持其原始结构 。示例 1:输入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,0,1,8,4,5], skipA = 2, skipB = 3原创 2022-04-14 17:09:21 · 1203 阅读 · 0 评论 -
力扣:3.无重复字符的最长子串
题目链接:3. 无重复字符的最长子串题目:给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: s = “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。示例 2:输入: s = “bbbbb”输出: 1解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。示例 3:输入: s = “pwwkew”输出: 3解释: 因为无重复字符的最长子串是 “wke”,所以其长度为 3。 请注原创 2022-04-14 00:28:21 · 100 阅读 · 0 评论 -
力扣:169. 多数元素
题目链接:169. 多数元素题目:给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。你可以假设数组是非空的,并且给定的数组总是存在多数元素。示例 1:输入:[3,2,3]输出:3示例 2:输入:[2,2,1,1,1,2,2]输出:2思路和算法:从题目中可以抓到重点:数组非空,总是存在多数元素–》一定有返回值,且返回值非空。在这道题目里采用哈希表去重,然后定义一个变量cnt用来记录最多元素的个数,通过判断cnt值的变化原创 2022-04-08 10:33:56 · 194 阅读 · 0 评论 -
力扣题:1、两数之和
题目链接:https://leetcode-cn.com/problems/two-sum/题目:给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。示例1:输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为 nums[0] + nums[1] =原创 2022-03-11 10:44:15 · 65 阅读 · 0 评论