随笔分类 -  LeetCode

主要记录在力扣刷题时遇到的好题。
摘要:给定一个数组,它的第 i 个元素是一支给定的股票在第 i 天的价格。 设计一个算法来计算你所能获取的最大利润。你最多可以完成 两笔 交易。 注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。 思路一: for循环分割成两组,分别计算最大值 时间复杂度O(n2) 思路二: 五个状态 阅读全文
posted @ 2021-01-09 11:18 jackandtwo 阅读(176) 评论(0) 推荐(0)
摘要:给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。 返回滑动窗口中的最大值。 思路: 1、优先队列 2、双向队列结合本题性质 3、分块法 来源:力扣(LeetCode) 链接:https:// 阅读全文
posted @ 2021-01-03 09:42 jackandtwo 阅读(104) 评论(0) 推荐(0)
摘要:题目: 假设你有一个很长的花坛,一部分地块种植了花,另一部分却没有。可是,花卉不能种植在相邻的地块上,它们会争夺水源,两者都会死去。 给定一个花坛(表示为一个数组包含0和1,其中0表示没种植花,1表示种植了花),和一个数 n 。能否在不打破种植规则的情况下种入 n 朵花?能则返回True,不能则返回 阅读全文
posted @ 2021-01-01 09:58 jackandtwo 阅读(115) 评论(0) 推荐(0)
摘要:你这个学期必须选修 numCourse 门课程,记为 0 到 numCourse-1 。 在选修某些课程之前需要一些先修课程。 例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用一个匹配来表示他们:[0,1] 给定课程总量以及它们的先决条件,请你判断是否可能完成所有课程的学习? 示例 1: 输 阅读全文
posted @ 2020-08-05 11:22 jackandtwo 阅读(118) 评论(0) 推荐(0)
摘要:有序矩阵中第k小元素 题目: 给定一个 n x n 矩阵,其中每行和每列元素均按升序排序,找到矩阵中第 k 小的元素。 请注意,它是排序后的第 k 小元素,而不是第 k 个不同的元素。 看到有序就会想到二分查找,而本题的二分查找十分的有趣。 根据这个矩阵的定义,我们知道,最小的元素是最左上角元素,最 阅读全文
posted @ 2020-07-03 10:23 jackandtwo 阅读(263) 评论(0) 推荐(0)
摘要:题目: 给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的连续子数组,并返回其长度。如果不存在符合条件的连续子数组,返回 0。 思路: 非常明显用滑动窗口处理 时间复杂度O(n) 代码: public int minSubArrayLen(int s, i 阅读全文
posted @ 2020-06-28 10:35 jackandtwo 阅读(97) 评论(0) 推荐(0)
摘要:题目: 编写代码,移除未排序链表中的重复节点。保留最开始出现的节点。 思路: 很简单一道题,哈希表 代码: public ListNode removeDuplicateNodes(ListNode head) { if(head == null){ return null; } Set<Integ 阅读全文
posted @ 2020-06-26 09:52 jackandtwo 阅读(209) 评论(0) 推荐(0)
摘要:二进制求和 思路好想: 模拟 位运算 所以我们的目的是我们尽量的简化代码。 我采用的方法是模拟。 代码如下: class Solution { public String addBinary(String a, String b) { StringBuffer sb = new StringBuff 阅读全文
posted @ 2020-06-23 09:18 jackandtwo 阅读(140) 评论(0) 推荐(0)
摘要:模式匹配 题目: 你有两个字符串,即pattern和value。 pattern字符串由字母"a"和"b"组成,用于描述字符串中的模式。例如,字符串"catcatgocatgo"匹配模式"aabab"(其中"cat"是"a","go"是"b"),该字符串也匹配像"a"、"ab"和"b"这样的模式。但 阅读全文
posted @ 2020-06-22 11:21 jackandtwo 阅读(313) 评论(0) 推荐(0)
摘要:题目: 给定一个非空二叉树,返回其最大路径和。 本题中,路径被定义为一条从树中任意节点出发,达到任意节点的序列。该路径至少包含一个节点,且不一定经过根节点。 **思路:**递归 分为三部分,根节点,左子树,右子树。 三要素: 方法名:helper 参数列表:(TreeNode node) 返回值:i 阅读全文
posted @ 2020-06-21 13:43 jackandtwo 阅读(161) 评论(0) 推荐(0)
摘要:题目: 给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。 说明:本题中,我们将空字符串定义为有效的回文串。 法一:将原字符串做更改于新的字符串,随后中心扩展法即刻。 法二:双指针法,遇到非数字和字母字符不做变动。 阅读全文
posted @ 2020-06-19 19:58 jackandtwo 阅读(31) 评论(0) 推荐(0)