做公益选哪个网站好,视频网站能备案吗,电商云仓,天津seo优化排名哈希 1. 两数之和49.字母异位词分组128.最长连续序列 1. 两数之和
题目#xff1a;给定一个整数数组 nums 和一个整数目标值 target#xff0c;请你在该数组中找出 和为目标值 target 的那 两个 整数#xff0c;并返回它们的数组下标。你可以假设每种输入只会对应一个答案。… 哈希 1. 两数之和49.字母异位词分组128.最长连续序列 1. 两数之和
题目给定一个整数数组 nums 和一个整数目标值 target请你在该数组中找出 和为目标值 target 的那 两个 整数并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。 示例 1 输入nums [2,7,11,15], target 9 输出[0,1] 解释因为 nums[0] nums[1] 9 返回 [0, 1] 。
class Solution:def twoSum(self, nums: List[int], target: int) - List[int]:tablecollections.defaultdict(int)for index,num in enumerate(nums):if target-num in table:return [index,table[target-num]]table[num]index49.字母异位词分组
题目给你一个字符串数组请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。 字母异位词 是由重新排列源单词的所有字母得到的一个新单词。
class Solution:def groupAnagrams(self, strs: List[str]) - List[List[str]]:tablecollections.defaultdict(list)for str in strs:table[.join(sorted(str))].append(str)return list(table.values())128.最长连续序列
题目给定一个未排序的整数数组 nums 找出数字连续的最长序列不要求序列元素在原数组中连续的长度。请你设计并实现时间复杂度为 O(n) 的算法解决此问题。
构造集合,时间复杂度是o(n)找最小的数,然后一直遍历找到当前连续数的最大值
class Solution:def longestConsecutive(self, nums: List[int]) - int:# 构造集合找最小的数numsset(nums)#时间复杂度是o(n),遍历整个数组maxlen0for num in nums:if num-1 not in nums:#找最小的数current_numnumcurrent_long1while current_num1 in nums:current_numcurrent_num1current_long1maxlenmax(maxlen,current_long)return maxlen