刷题
文章平均质量分 50
大鱼qss
阳光的java程序员
展开
-
最长回文子串和最长回文子序列
这两个题目我觉得可以放在一起讨论下:字长回文子序列首先是回文子序列的题目,涉及到子序列,一般都是不连续的问题:那么首推动态规划,并且这个题目只要求返回长度,那么dp数组用来存子问题的最长回文串长度就可以,即dp[i][j] 表示,从i -j这段的最长回文子串的长度,递推公式:if( s.charAt(i) == s.charAt(j)) ans[i][j] = ans[i + 1][j - 1] + 2; else原创 2022-05-08 15:27:14 · 415 阅读 · 0 评论 -
编辑距离(动态规划)
考虑使用动态规划解法,dp数组需要时二维的,dp[i][j] 表示 word1的前 i 个和word2前 j 个字符的最小距离。那么需要现有一个base条件即某一个单词为0,则直接返回另一个单词的长度。那么初始化代码如下: int n = word1.length(); int m = word2.length(); int[][] dp = new int[n + 1][ m + 1]; for(int i =1 ;i <= n ; i++.原创 2022-05-07 13:01:45 · 367 阅读 · 0 评论 -
乘积小于 K 的子数组(滑动窗口)
简要分析,这个题目刚开始确实没想到滑动窗口,只是想到动态规划解法,时间复杂度为O(),代码如下:class Solution { public int numSubarrayProductLessThanK(int[] nums, int k) { int n = nums.length; int ans = 0; for(int i = 0 ; i < n ; i++) { int .原创 2022-05-05 16:06:57 · 923 阅读 · 0 评论 -
[leetcode]电话号码的字母组合
这算是一个组合问题,就是从每一个数字的字母里选择一个数,组成一个全排列,首先想到的就是回溯算法。回溯需要画一个相应的回溯树,这样比较容易理解这个过程,每一次递归调用函数就是树向下走一层,所以处理好这一层的关系和终止条件,那么这个题就很容易解出来,我们先看终止条件。可以看出每个组合的长度和原来digits的长度相同,那么终止条件也就来了:if(path.length() == digits.length()) { result.add(path.toString.原创 2022-05-03 10:51:03 · 92 阅读 · 0 评论 -
15. 三数之和(双头搜索)
三数之和(双头搜索)原创 2022-05-02 22:54:37 · 177 阅读 · 0 评论 -
1305. 两棵二叉搜索树中的所有元素(中序遍历)
两棵二叉搜索树中的所有元素(中序遍历)原创 2022-05-01 21:07:49 · 610 阅读 · 0 评论 -
买卖股票的最佳时机 II(贪心和动态规划)
买卖股票的最佳时机 II(贪心和动态规划)原创 2022-04-28 14:29:57 · 85 阅读 · 0 评论 -
随机数索引( 水塘抽样)
随机数索引( 水塘抽样)原创 2022-04-25 10:20:19 · 85 阅读 · 0 评论 -
868. 二进制间距(二进制)
二进制间距(二进制)原创 2022-04-24 14:56:23 · 228 阅读 · 0 评论 -
剑指 Offer II 005. 单词长度的最大乘积(两种做法)
剑指 Offer II 005. 单词长度的最大乘积(两种做法)原创 2022-04-24 11:22:42 · 136 阅读 · 0 评论 -
剑指 Offer II 001. 整数除法(简单题)
剑指 Offer II 001. 整数除法(简单题)原创 2022-04-22 18:32:22 · 280 阅读 · 0 评论 -
40. 组合总和 II (回溯算法)
40. 组合总和 II (回溯算法)原创 2022-04-20 15:39:54 · 390 阅读 · 0 评论 -
8. 字符串转换整数 (atoi)(这是我做过的最曲折的题目)
8. 字符串转换整数 (atoi)原创 2022-04-20 10:52:59 · 132 阅读 · 0 评论 -
6. Z 字形变换(模拟思路)
Z 字形变换原创 2022-04-18 11:05:20 · 89 阅读 · 0 评论 -
leetcode 39. 组合总和(回溯算法)
组合总数 经典回溯算法原创 2022-04-15 13:02:18 · 89 阅读 · 0 评论 -
leetcode无重复字符的最长子串(滑动窗口)
滑动窗口经典题目-无重复字符的最长子串原创 2022-04-13 13:05:28 · 388 阅读 · 0 评论 -
leetcode (回溯算法,中等难度)77. 组合
leetcode-77-组合原创 2022-04-12 15:43:40 · 121 阅读 · 0 评论 -
21. 合并两个有序链表(两种解法)
21. 合并两个有序链表(两种解法)leetcode原创 2022-04-11 20:14:35 · 233 阅读 · 0 评论 -
416. 分割等和子集(难度中等)
416. 分割等和子集(难度中等)原创 2022-04-11 09:40:57 · 759 阅读 · 0 评论 -
Leetcode376摆动序列(中等题目 - 贪心算法)
如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为 摆动序列 。第一个差(如果存在的话)可能是正数或负数。仅有一个元素或者含两个不等元素的序列也视作摆动序列。例如, [1, 7, 4, 9, 2, 5] 是一个 摆动序列 ,因为差值 (6, -3, 5, -7, 3) 是正负交替出现的。相反,[1, 4, 7, 2, 5] 和 [1, 7, 4, 5, 5] 不是摆动序列,第一个序列是因为它的前两个差值都是正数,第二个序列是因为它的最后一个差值为零。子序列 可以通过从原始序列中删除一些(也原创 2022-04-10 00:00:13 · 85 阅读 · 0 评论 -
62. leetcode 不同路径(动态规划)
62. leetcode 不同路径(动态规划)原创 2022-04-08 15:51:05 · 105 阅读 · 0 评论 -
leetcode 746. 使用最小花费爬楼梯
爬楼梯进阶版原创 2022-04-08 15:22:21 · 84 阅读 · 0 评论