
LeetCode 哈希表
姚先生97
这个作者很懒,什么都没留下…
展开
-
LeetCode 128. 最长连续序列 (C++实现)
首先将nums所有元素映射为哈希表,然后遍历哈希表,如果num-1存在于哈希表,则跳过这一次循环,如果不存在,然后循环遍历num+1是否在哈希表中,同时记录长度。给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。输入:nums = [0,3,7,2,5,8,4,6,0,1]解释:唯一可能的三元组和不为 0。输入:nums = [0,1,1]原创 2025-01-12 09:49:15 · 179 阅读 · 0 评论 -
LeetCode 202. 快乐数 (C++实现)
首先定义集合record,开始循环,获取n的每位数字平方和,然后判断这个和是不是1,是就返回true,不是的话再看这个和有没有在record里面出现过,出现过返回false,没出现过将这个和插入到record中。然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到1。如果 n 是 快乐数 就返回 true;不是,则返回 false。对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。如果这个过程 结果为 1,那么这个数就是快乐数。编写一个算法来判断一个数 n 是不是快乐数。原创 2024-12-29 14:59:16 · 516 阅读 · 0 评论 -
LeetCode 349. 两个数组的交集 (C++实现)
首先定义一个用来记录元素有无的数组record,还有记录重复元素的集合ans,然后遍历nums1,记录nums1中的元素,然后遍历nums2,如果num2的元素在nums1中出现过,则压入ans,最后返回ans。给定两个数组 nums1 和 nums2 ,返回 它们的 交集。输出结果中的每个元素一定是 唯一 的。输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]输入:nums1 = [1,2,2,1], nums2 = [2,2]解释:[4,9] 也是可通过的。原创 2024-12-28 17:55:53 · 305 阅读 · 0 评论 -
LeetCode 242. 有效的字母异位词 (C++实现)
首先定义有26个元素的数组record,全设置为0,首先遍历s字符串,将record中s[i]-'a’位置的元素值加一,然后遍历t字符串,将record中s[i]-'a’位置的元素值减一,如果最后record里面全是0那就说明s和t是字母异位词。给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的。输入: s = “anagram”, t = “nagaram”输入: s = “rat”, t = “car”原创 2024-12-28 17:33:38 · 376 阅读 · 0 评论 -
LeetCode 1. 两数之和 (C++实现)
这道题可以用哈希表,首先遍历输入的数组元素,如果nums[i]不在哈希表中,则添加键值对,target-nums[i]的结果作为key,i作为value;反之返回i和哈希表中target-nums[i]的value。解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1]。输入:nums = [2,7,11,15], target = 9。输入:nums = [3,2,4], target = 6。输入:nums = [3,3], target = 6。你可以按任意顺序返回答案。原创 2024-12-15 20:19:52 · 278 阅读 · 0 评论