力扣Hot100

1.两数之和 Easy

给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。

你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。

你可以按任意顺序返回答案。

示例 1:

示例 2:

示例 3:

提示:

2.两数相加 Medium

给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。

请你将两个数相加,并以相同形式返回一个表示和的链表。

你可以假设除了数字 0 之外,这两个数都不会以 0 开头。

示例 1:

示例 2:

示例 3:

提示:

Related Topics

3.无重复字符的最长子串 Medium

给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。

示例 1:

示例 2:

示例 3:

提示:

Related Topics

4.寻找两个正序数组的中位数 Hard

给定两个大小分别为 mn 的正序(从小到大)数组 nums1nums2。请你找出并返回这两个正序数组的 中位数

算法的时间复杂度应该为 O(log (m+n))

示例 1:

示例 2:

提示:

Related Topics

5.最长回文子串 Medium

给你一个字符串 s,找到 s 中最长的回文子串。

如果字符串的反序与原始字符串相同,则该字符串称为回文字符串。

示例 1:

示例 2:

提示:

Related Topics

6.正则表达式匹配 Hard

给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 '.''*' 的正则表达式匹配。

所谓匹配,是要涵盖 整个 字符串 s的,而不是部分字符串。

示例 1:

示例 2:

示例 3:

提示:

Related Topics

 

动态规划:https://www.bilibili.com/video/BV1jd4y1U7kE/?spm_id_from=333.337.search-card.all.click&vd_source=92cb5cb9faa01574e9b1f82bf91d080d

https://www.iamshuaidi.com/2032.html

7.盛最多水的容器 Medium

给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0)(i, height[i])

找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。

返回容器可以储存的最大水量。

说明:你不能倾斜容器。

示例 1:

img

示例 2:

提示:

Related Topics

8.三数之和 Medium

给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i != ji != kj != k ,同时还满足 nums[i] + nums[j] + nums[k] == 0 。请

你返回所有和为 0 且不重复的三元组。

注意:答案中不可以包含重复的三元组。

示例 1:

示例 2:

示例 3:

提示:

Related Topics

9.电话号码的字母组合 Medium

给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。

img

示例 1:

示例 2:

示例 3:

提示:

Related Topics

 

10.删除链表倒数第N个节点 Medium

给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。

示例 1:

示例 2:

示例 3:

提示:

进阶:你能尝试使用一趟扫描实现吗?

Related Topics

11.有效的括号 Easy

给定一个只包括 '('')''{''}''['']' 的字符串 s ,判断字符串是否有效。

有效字符串需满足:

  1. 左括号必须用相同类型的右括号闭合。

  2. 左括号必须以正确的顺序闭合。

  3. 每个右括号都有一个对应的相同类型的左括号。

示例 1:

示例 2:

示例 3:

提示:

Related Topics

12.合并两个有序列表 Easy

将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。

示例 1:

示例 2:

示例 3:

提示:

Related Topics

13.括号生成 Medium

数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。

示例 1:

示例 2:

提示:

Related Topics

14.合并K个升序链表 Hard

给你一个链表数组,每个链表都已经按升序排列。

请你将所有链表合并到一个升序链表中,返回合并后的链表。

示例 1:

示例 2:

示例 3:

提示:

Related Topics

15.下一个排列 Medium

整数数组的一个 排列 就是将其所有成员以序列或线性顺序排列。

整数数组的 下一个排列 是指其整数的下一个字典序更大的排列。更正式地,如果数组的所有排列根据其字典顺序从小到大排列在一个容器中,那么数组的 下一个排列 就是在这个有序容器中排在它后面的那个排列。如果不存在下一个更大的排列,那么这个数组必须重排为字典序最小的排列(即,其元素按升序排列)。

给你一个整数数组 nums ,找出 nums 的下一个排列。

必须 原地 修改,只允许使用额外常数空间。

示例 1:

示例 2:

示例 3:

提示:

Related Topics

16.最长有效括号 Hard

给你一个只包含 '('')' 的字符串,找出最长有效(格式正确且连续)括号子串的长度。

示例 1:

示例 2:

示例 3:

提示:

Related Topics

官方题解:https://leetcode.cn/problems/longest-valid-parentheses/solutions/314683/zui-chang-you-xiao-gua-hao-by-leetcode-solution/

17.搜索旋转排序数组 Medium

整数数组 nums 按升序排列,数组中的值 互不相同

在传递给函数之前,nums 在预先未知的某个下标 k0 <= k < nums.length)上进行了 旋转,使数组变为 [nums[k], nums[k+1], ..., nums[n-1], nums[0], nums[1], ..., nums[k-1]](下标 从 0 开始 计数)。例如, [0,1,2,4,5,6,7] 在下标 3 处经旋转后可能变为 [4,5,6,7,0,1,2]

给你 旋转后 的数组 nums 和一个整数 target ,如果 nums 中存在这个目标值 target ,则返回它的下标,否则返回 -1

你必须设计一个时间复杂度为 O(log n) 的算法解决此问题。

示例 1:

示例 2:

示例 3:

提示:

Related Topics

18.在排序数组中查找元素的第一个和最后一个位置 Medium

给你一个按照非递减顺序排列的整数数组 nums,和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置。

如果数组中不存在目标值 target,返回 [-1, -1]

你必须设计并实现时间复杂度为 O(log n) 的算法解决此问题。

示例 1:

示例 2:

示例 3:

提示:

Related Topics

19.组合总和 Medium

给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 ,并以列表形式返回。你可以按 任意顺序 返回这些组合。

candidates 中的 同一个 数字可以 无限制重复被选取 。如果至少一个数字的被选数量不同,则两种组合是不同的。

对于给定的输入,保证和为 target 的不同组合数少于 150 个。

示例 1:

示例 2:

示例 3:

提示:

Related Topics

20.接雨水 Hard

给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。

示例 1:

img

示例 2:

提示:

Related Topics

思路:https://www.bilibili.com/video/BV1Qg411q7ia/?vd_source=92cb5cb9faa01574e9b1f82bf91d080d