随笔分类 - LeetCode 热题 HOT 100
摘要:题目: 给定一个包含非负整数的 m x n 网格 grid ,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。 说明:每次只能向下或者向右移动一步。 示例: 解析: 这很明显是一个动态规划的问题,因为只能向下向右移动,因此只要算出每个格子会出现的最小值就行,最后返回右下角格子的数值 特
阅读全文
摘要:来源:力扣(LeetCode)链接:https://leetcode.cn/problems/valid-parentheses著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。 题目: 给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否
阅读全文
摘要:来源:力扣(LeetCode)链接:https://leetcode.cn/problems/letter-combinations-of-a-phone-number 分割线:这道题我一开始的思路想到了用hashmap来做数字和字母的对应,但是没有想到具体如何来做。看了题解后,对于用队列的方式来做
阅读全文
摘要:题目: 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例: 解析: 采用双指针,分别指向两个链表,然后将两个链表较小的那个添加到新链表中 1 /** 2 * Definition for singly-linked list. 3 * publi
阅读全文
摘要:题目: 给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。 示例: (图源:https://leetcode.cn/problems/remove-nth-node-from-end-of-list/) 解析: 其实一般思路就是找到要删除的节点temp,再找到该节点的前一个节点pre
阅读全文
摘要:题目: 给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组。 注意:答案中不可以包含重复的三元组。 解析: 1. 首先考虑特殊情况,因为答案是一个三元组,如果初始的数组本身长度就小于3
阅读全文
摘要:题目: 给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。 返回容器可以储存的最大水量。 示例: (图片源自:https://leetcod
阅读全文
摘要:题目:给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。 实例: 输入:s="abcabcbb" 输出:3 解释:因为无重复字符的最长子串是“abc”,所以其长度为3 解析:采用哈希表来进行匹配,通过滑动窗口,记录滑动窗口的最大长度即可 class Solution { publ
阅读全文
摘要:递归有三个很重要的步骤: 定义函数功能 寻找递归终止条件 递推函数的等价关系式 掌握这三点基本上就没问题了。 首先定义函数功能很简单,一般都是题目中给出来的, 其次,寻找递归终止条件,这个需要根据实际问题来判断,最后根据问题推导出递推函数的等价关系式 通过几个简单的实例来说明吧,首先是斐波那契数列的
阅读全文
摘要:题目: 给定一个单链表的头结点pHead,长度为n,反转该链表后,返回新链表的表头。 数据范围: n\leq1000n≤1000 要求:空间复杂度 O(1)O(1) ,时间复杂度 O(n)O(n) 。 如当输入链表{1,2,3}时, 经反转后,原链表变为{3,2,1},所以对应的输出为{3,2,1}
阅读全文
摘要:题目 给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。 如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。 您可以假设除了数字 0 之外,这两个数都不会以 0 开头。 示例: 输入:(2 -> 4
阅读全文
摘要:题目 给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。 你可以假设数组是非空的,并且给定的数组总是存在多数元素。 来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/majority-elem
阅读全文