每周一刷力扣
如题
Flora趴
随便码码
展开
-
54. 螺旋矩阵
给你一个 m 行 n 列的矩阵matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。原创 2022-08-15 21:09:19 · 168 阅读 · 1 评论 -
30. 串联所有单词的子串
给定一个字符串s和一些 长度相同 的单词words 。找出 s 中恰好可以由words 中所有单词串联形成的子串的起始位置。原创 2022-08-14 11:46:39 · 172 阅读 · 0 评论 -
32. 最长有效括号
给你一个只包含 '('和 ')'的字符串,找出最长有效(格式正确且连续)括号子串的长度。原创 2022-08-13 22:54:49 · 176 阅读 · 0 评论 -
56. 合并区间
以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [starti, endi] 。请你合并所有重叠的区间,并返回一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间原创 2022-08-07 20:45:01 · 79 阅读 · 0 评论 -
5. 最长回文子串
最长回文子串原创 2022-07-31 16:55:16 · 127 阅读 · 0 评论 -
102. 二叉树的层序遍历
102. 二叉树的层序遍历原创 2022-07-31 15:17:33 · 108 阅读 · 0 评论 -
79. 单词搜索
leetcode79 单词搜索原创 2022-07-31 14:55:38 · 75 阅读 · 0 评论 -
K 个一组翻转链表
K 个一组翻转链表原创 2022-06-19 21:05:09 · 248 阅读 · 0 评论 -
6029. 射箭比赛中的最大得分
1. 背包问题 如何带路径回溯力扣Alice 和 Bob 是一场射箭比赛中的对手。比赛规则如下:Alice 先射 numArrows 支箭,然后 Bob 也射 numArrows 支箭。分数按下述规则计算:箭靶有若干整数计分区域,范围从 0 到 11 (含 0 和 11)。箭靶上每个区域都对应一个得分 k(范围是 0 到 11),Alice 和 Bob 分别在得分 k区域射中ak 和 bk 支箭。如果 ak >= bk ,那么 Alice 得 k 分。如果 ak &l..原创 2022-03-20 15:49:27 · 177 阅读 · 0 评论 -
23. 合并K个升序链表
题目:输入:lists = [[1,4,5],[1,3,4],[2,6]]输出:[1,1,2,3,4,4,5,6]解释:链表数组如下:[ 1->4->5, 1->3->4, 2->6]将它们合并到一个有序链表中得到。1->1->2->3->4->4->5->6来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/merge-k-sorted-lists著...原创 2022-03-17 19:30:34 · 420 阅读 · 0 评论 -
24. 两两交换链表中的节点
题目:给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。思考:1. 两两交换,首先想到了各种断开重组的情况,想到了用双指针的方式做;2. 断开后重组的过程可以分为两步1)断开形成两个新的子链表,链表结构为所有双数index的链表,和所有单数index的链表2)将这两个新的子链表合并,从单数开始合并,单数放到偶数前,直到遍历结束2)双数index的链表个数>=单数index链表的个数,可在遍原创 2022-03-16 11:08:52 · 954 阅读 · 0 评论 -
17. 电话号码的字母组合
题目:给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/letter-combinations-of-a-phone-number著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。思考:递归,多加一个字母多加前面的所有可能性+最后一个字母的排列原创 2022-03-16 10:04:58 · 94 阅读 · 0 评论 -
如果 x 是一个回文整数
题目:给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121 是回文,而 123 不是。示例 1:输入:x = 121输出:true示例2:输入:x = -121输出:false解释:从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3:输入:x = 10输出:false解释:从右向左读, 为 01 。因此它不是..原创 2022-03-12 16:37:59 · 2765 阅读 · 0 评论 -
最长回文子串
题目:给你一个字符串 s,找到 s 中最长的回文子串。示例 1:输入:s = "babad"输出:"bab"解释:"aba" 同样是符合题意的答案。示例 2:输入:s = "cbbd"输出:"bb"提示:1 <= s.length <= 1000s 仅由数字和英文字母组成来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/longest-palindromic-substring著作权归领扣网络所.原创 2022-03-12 14:55:23 · 1398 阅读 · 0 评论 -
生成所有可能的并且有效的括号组合
题目:数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。示例 1:输入:n = 3输出:["((()))","(()())","(())()","()(())","()()()"]示例 2:输入:n = 1输出:["()"]思路:一开始的思路就是动态规划,n个数字产生的结果是由 R(n-1) 和R(1), R(n-2)和R(2)...这样的结果拼接起来的,保证拼接结果只产生一次即可。除了与R(1)结合会有放左边,放右边,放原创 2022-02-13 15:11:55 · 508 阅读 · 0 评论 -
翻转字符串里的单词
给你一个字符串 s ,逐个翻转字符串中的所有 单词 。单词 是由非空格字符组成的字符串。s 中使用至少一个空格将字符串中的 单词 分隔开。请你返回一个翻转 s 中单词顺序并用单个空格相连的字符串。说明:输入字符串 s 可以在前面、后面或者单词间包含多余的空格。翻转后单词间应当仅用一个空格分隔。翻转后的字符串中不应包含额外的空格。思路:用栈,遇到空格判断push代码: public static String reverseWords(String s) {原创 2021-12-11 19:11:50 · 87 阅读 · 0 评论 -
除自身以外数组的乘积
题目描述:给你一个长度为n的整数数组nums,其中n > 1,返回输出数组output,其中 output[i]等于nums中除nums[i]之外其余各元素的乘积。示例:输入: [1,2,3,4]输出: [24,12,8,6]提示:题目数据保证数组之中任意元素的全部前缀元素和后缀(甚至是整个数组)的乘积都在 32 位整数范围内。说明: 请不要使用除法,且在O(n) 时间复杂度内完成此题。进阶:你可以在常数空间复杂度内完成这个题目吗?( 出于对...原创 2021-12-11 18:55:14 · 433 阅读 · 0 评论 -
Z 字形变换
题目描述:将一个给定字符串 s 根据给定的行数 numRows ,以从上往下、从左到右进行Z 字形排列。比如输入字符串为 "PAYPALISHIRING"行数为 3 时,排列如下:P A H NA P L S I I GY I R之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:"PAHNAPLSIIGYIR"。请你实现这个将字符串进行指定行数变换的函数:string convert(string s, int numRows);思...原创 2021-12-04 18:19:47 · 81 阅读 · 0 评论 -
买卖股票的最佳时机
题目:给定一个数组 prices ,它的第i 个元素prices[i] 表示一支给定股票第 i 天的价格。你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0思路:1. 首先想到用动态规划, 使用一个矩阵存储,dp[i][j]表示以i位置开始,j位置结束的最大利润,其中j位置必须作为卖出日期,这样保证遍历完所有结点其关系为:dp[i]...原创 2021-07-04 14:33:08 · 62 阅读 · 0 评论 -
不同路径(leetcode)
ti'mu一个机器人位于一个 m x n网格的左上角 (起始点在下图中标记为 “Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。...原创 2021-06-08 21:45:40 · 61 阅读 · 0 评论 -
删除有序数组中的重复项
题目:给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。思路:shi'y...原创 2021-06-08 21:04:54 · 68 阅读 · 0 评论 -
寻找两个正序数组的中位数
题目:给定两个大小为 m 和 n 的正序(从小到大)数组nums1 和nums2。请你找出并返回这两个正序数组的中位数。进阶:你能设计一个时间复杂度为 O(log (m+n)) 的算法解决此问题吗?示例 1:输入:nums1 = [1,3], nums2 = [2]输出:2.00000解释:合并数组 = [1,2,3] ,中位数 2示例 2:输入:nums1 = [1,2], nums2 = [3,4]输出:2.50000解释:合并数组 = [1,2,3,4] ,中位...原创 2021-02-21 21:56:34 · 68 阅读 · 0 评论 -
剑指 Offer 07. 重建二叉树
输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如,给出前序遍历 preorder =[3,9,20,15,7]中序遍历 inorder = [9,3,15,20,7]返回如下的二叉树: 3 / \ 9 20 / \ 15 7来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/zhong-jian-er-cha-shu-lcof...原创 2020-11-04 21:33:33 · 77 阅读 · 0 评论 -
剑指 Offer 06. 从尾到头打印链表
输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。输入:head = [1,3,2]输出:[2,3,1]思路:1. 链表逆转2. 用栈public class ListNode { int val; ListNode next; ListNode(int x) { val = x; } } public int[] reversePrint...原创 2020-11-04 20:41:54 · 70 阅读 · 0 评论 -
删除字符串中的所有相邻重复项
题目描述给出由小写字母组成的字符串S,重复项删除操作会选择两个相邻且相同的字母,并删除它们。在 S 上反复执行重复项删除操作,直到无法继续删除。在完成所有重复项删除操作后返回最终的字符串。答案保证唯一。示例:输入:"abbaca"输出:"ca"解释:例如,在 "abbaca" 中,我们可以删除 "bb" 由于两字母相邻且相同,这是此时唯一可以执行删除操作的重复项。之后我们得到字符串 "aaca",其中又只有 "aa" 可以执行重复项删除操作,所以最后的字符串为 "ca"。..原创 2020-09-16 20:27:41 · 153 阅读 · 0 评论 -
最长有效括号
题目描述:给定一个只包含 '('和 ')'的字符串,找出最长的包含有效括号的子串的长度。示例1:输入: "(()"输出: 2解释: 最长有效括号子串为 "()"示例 2:输入: ")()())"输出: 4解释: 最长有效括号子串为 "()()"解题思路:事先声明不是最优解,最后超时了,但是还是发一下目前的思路,为之后学习和思考最优解做个铺垫哈。1)题目最长有效括号字串 -> 需要获取所有有效的括号,并且找到最长的字串2)有效括号可以使用递归的算法...原创 2020-09-13 22:42:09 · 104 阅读 · 0 评论 -
删除链表的倒数第N个节点
给定一个链表,删除链表的倒数第n个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.说明:给定的 n保证是有效的。进阶:你能尝试使用一趟扫描实现吗?思路:倒数第n个节点获取只需要设置两个指针, 两个指针同时从head开始, b指针与a指针之间的长度为n,然后ab指针同时往前走, 等到b指针走到末尾节点时,a指...原创 2020-07-20 20:52:53 · 115 阅读 · 0 评论 -
两数相加 简单解法
题目:出两个非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储一位数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -> 8原因:342 + 465 = 807思路:这道题的解题思路非常简单,使...原创 2020-07-12 20:53:24 · 472 阅读 · 0 评论 -
不含有重复字符的 最长子串 的长度
给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。示例1:输入: "abcabcbb"输出: 3解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例 3:输入: "pwwkew"输出: 3解释: 因为无重复字符的最长子串是"wke",所以其长度为 3。 请注意,你的答案必须是 子串 的长度,"pwke"是一个子序列,不是子串...原创 2020-07-19 21:19:43 · 2154 阅读 · 0 评论