当前位置:首页 > 机动车 >

leetcode万能解法(leetcode编程技巧)

来源:原点资讯(m.360kss.com)时间:2023-11-03 11:03:21作者:YD166手机阅读>>

在这个系列的博客中,我们根据LeetCode官方给出的每个题目的出现频率,整理并收录了每个类别里高频出现的题目,从简单到中等再到困难,为你提供解题技巧和最佳实践。我们将介绍常见的算法思想,如贪心算法、动态规划、回溯算法等,希望能帮助你提高算法水平,成为你进入人工智能行业敲门砖。


leetcode万能解法,leetcode编程技巧(1)

1:两数之和(难度1/频率5)

题目链接:https://leetcode.cn/problems/two-sum/

给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标,数组中同一个元素不能使用两遍。

示例:

给定 nums = [2, 7, 11, 15], target = 9

因为 nums[0] nums[1] = 2 7 = 9

示例 1:

输入:nums = [2,7,11,15], target = 9

输出:[0,1]

解释:因为 nums[0] nums[1] == 9 ,返回 [0, 1] 。

示例 2:

输入:nums = [3,2,4], target = 6

输出:[1,2]

解题思路

很明显暴力的解法是两层for循环查找,时间复杂度是O(n^2)。当我们需要查询一个元素是否出现过,或者一个元素是否在集合里的时候,就要第一时间想到哈希法。

在本题中我们不仅要知道元素有没有遍历过,还要知道这个元素对应的下标,需要使用 key value结构来存放,key来存元素,value来存下标,那么使用map正合适

在遍历数组的时候,只需要向map去查询是否有和目前遍历元素匹配的数值,如果有,就找到的匹配对,如果没有,就把目前遍历的元素放进map中,因为map存放的就是我们访问过的元素,对应的空间和时间复杂度均为O(n)。

leetcode万能解法,leetcode编程技巧(2)

leetcode万能解法,leetcode编程技巧(3)

leetcode万能解法,leetcode编程技巧(4)

leetcode万能解法,leetcode编程技巧(5)

class Solution: def twoSum(self, nums: List[int], target: int) -> List[int]: records = dict() for index, value in enumerate(nums): if target - value in records: # 遍历当前元素,并在map中寻找是否有匹配的key return [records[target- value], index] records[value] = index # 遍历当前元素,并在map中寻找是否有匹配的key return []题目总结

本题其实有四个重点,要真正理解这些才能透彻理解该题目:

  • 为什么会想到用哈希表
  • 哈希表为什么用map
  • 本题map是用来存什么的
  • map中的key和value用来存什么的
,

栏目热文

leetcode递归深度解析(如何使用leedcode科学学习算法)

leetcode递归深度解析(如何使用leedcode科学学习算法)

前期提要:链表反转是高频考点,在各大高频题排名网站长期占领前三,在牛客网稳居第一。链表反转之所以很重要,是因为它在实际编...

2023-11-03 10:59:02查看全文 >>

leetcode算法常用技巧(leetcode算法新手怎么刷题)

leetcode算法常用技巧(leetcode算法新手怎么刷题)

在这个系列的博客中,我们根据LeetCode官方给出的每个题目的出现频率,整理并收录了每个类别里高频出现的题目,从简单到...

2023-11-03 11:12:34查看全文 >>

leetcode算法每日一练(leetcode基础算法题100篇)

leetcode算法每日一练(leetcode基础算法题100篇)

给定一副牌,每张牌上都写着一个整数。 此时,你需要选定一个数字 X,使我们可以将整副牌按下述规则分成 1 组或更多组:...

2023-11-03 11:31:54查看全文 >>

leetcode编程步骤(leet code使用教程)

leetcode编程步骤(leet code使用教程)

张晓雅 投稿自 凹非寺量子位 | 公众号 QbitAI还在自己吭哧吭哧打算法平台Leetcode的周赛?为什么不试试神奇...

2023-11-03 11:39:03查看全文 >>

leetcode基础算法100题(leetcode经典100题)

leetcode基础算法100题(leetcode经典100题)

技术提高是一个循序渐进的过程,所以我讲的leetcode算法题从最简单的level开始写的,然后到中级难度,最后到har...

2023-11-03 11:14:30查看全文 >>

leetcode总结(leetcode算法题库及答案)

leetcode总结(leetcode算法题库及答案)

215数组中的第K个最大元素给定整数数组 nums 和整数 k,请返回数组中第 **k** 个最大的元素。请注意,你需要...

2023-11-03 11:42:38查看全文 >>

leetcode中最长有效的括号(leetcode正确用法)

leetcode中最长有效的括号(leetcode正确用法)

Longest Valid Parentheses问题简介:给定一个只包含字符 ‘(’ 和 ‘)’ 的字符串,找到最长的...

2023-11-03 11:17:53查看全文 >>

leetcode需要什么基础

leetcode需要什么基础

作为程序员立身之根本,算法更是面试必不可少的环节。像 Google、Facebook、Apple、NVIDIA等等这些硅...

2023-11-03 11:04:46查看全文 >>

leetcode最佳解法(leetcode简单算法)

leetcode最佳解法(leetcode简单算法)

工作面试可能是一项对人生非常重要,却又没有什么系统指导的任务。大部分人不得不做,又不知道如何做好。自我介绍、面试题库、项...

2023-11-03 11:44:01查看全文 >>

leetcode分析(leetcode说明什么)

leetcode分析(leetcode说明什么)

给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的 连续 子数组,并返回其长...

2023-11-03 10:58:52查看全文 >>

文档排行