![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法题解
文章平均质量分 54
晓看云起时
面向太阳做个温暖的人
展开
-
力扣300. 最长递增子序列
i->[1,nums.length) j->[0,i) 让nums[i]与nums[j]进行比较如果nums[i]>nums[j]那就说明nunms[i]可以加在nums[j]后面形成新的序列,新增的序列的长度为nums[j]+1 然后让 求出dp[i]的转移方程。2,5,7 或2,3,7就不能选了所以我们可以返回直接跳过10,9但计算机很难实现这样的思路即从前往后比较添加递增序列突然发现后面有一段递增序列但由于前面数的限制而不能添加,再回到前面把那个限制添加的数去掉。原创 2023-10-19 17:06:58 · 54 阅读 · 1 评论 -
力扣673.最长递增子序列的个数
一样先从i=1开始遍历数组nums[]与前面的数比较如果nums[i]>nums[j] 1<=i<nums.length。那么最长递增序列的长度不变,数量加上新产生的子序列的数量num[j] 即num[i]=num[i]+num[j]那么最长递增子序列的长度和数量都将变化, 长度变dp[i]=num[j]+1 数量为新产生序列的数量。只需在原来代码的基础上多加一个数组num[i]记录以nums[i]结尾的最长递增子序列的数量。假如当前记录的以nums[i]结尾的最长递增子序列的长度为n。原创 2023-10-19 21:57:13 · 56 阅读 · 1 评论 -
力扣53. 最大子数组和
抛开计算机不谈,先说一下我们现实中碰到几个数让你求连续的几个数的和的最大值,怎么办,连续的序列比如 -2 1 -3 4 -1 2 1 -5 4 首先找连续序列的第一个数,只要是正常人,看到负数 -2 直接pass,只要是负数开头的序列一定会更小 ,然后直接 选1 接着就是-3 然后序列1开头也就到此为止了因为1+(-3)=-2 你如果把1+(-3)看成一个数-2 那么序列就变成了 -2 -2 4 -1 2 1 -5 4 所以我们要接着跳过-2(也就是1-3)我们要创建一个变量 int sum=0;原创 2023-10-19 15:58:57 · 45 阅读 · 1 评论 -
Java 用sort对二维数组进行排序
用Arrays.sort()对一维数组进行快排相信大家一定不陌生,但对今天给大家分享一下sort对二维数组的3种排序方式。原创 2023-05-11 11:28:02 · 2153 阅读 · 0 评论 -
力扣 56. 合并区间 Java题解
那么intervals[1][0]<intervals[0][0] 然后用end =Math.max(end,intervals[1][1])来决定合并后区间的后端点。如果第一个区间和第二个区间不重合那么将star end存入list集合中,然后将star end'的值改成第二个区间左右端点的值重复上述操作。为来避免着这种情况,我们先把数组按照它的左端点升序排序,然后在依次遍历判断当前区间是否和前面的区间是否重合然后合并。先让 star end 为第一个区间的两个端点,如果第二个区间和第一个区间重合。原创 2023-04-15 21:21:00 · 511 阅读 · 0 评论 -
蓝桥杯 回文日期 (java)
基础 初学者 for循环 if选择 数组解题原创 2022-12-20 21:20:09 · 156 阅读 · 0 评论 -
第十二届蓝桥杯java B组 D货物摆放
首先我们应该分析到 a b c在绝对情况下 一定是 n d的因数那那么 a b c 一定满足。即 设集合 N={x| n%x==0 } a,b,b属于N 且 n=a*b*c。1.那我们首先 先求n得因数 n=2021041820210418 16位数用long。那么这个题就进一步简化成 在n的因数 有多少种组合使得n=a*b*c;题目要求便是:求n的三位因数的组合即 n=a*b*c。3.如果符合n=a*b*c 就让记录的数加1。a b c 有多少种;求 a b c得组合数。原创 2023-04-06 15:18:19 · 90 阅读 · 0 评论