啥都不会的研究生
啥都不会的研究生
全部文章
分类
题解(18)
归档
标签
去牛客网
登录
/
注册
啥都不会的研究生的博客
全部文章
(共20篇)
题解 | #DNA序列#
使用滑动窗口解决,维护一个长度大小固定为N的窗口 import java.util.*; public class Main{ public static void main(String[] args){ Scanner sc = new Sc...
Java
2022-05-13
1
265
题解 | #公共子串计算#
使用动态规划进行求解,先确定边界条件,递推式如下: dp[i][j] = s1[i]==s2[j] ? dp[i-1][j-1] + 1 : 0 /** dp[i][j]表示字符串s1[0:i]和s2[0:j]的公共子串长度,公共子串包含i,j dp[i][j] = s1[i]==s2[j] ? ...
Java
2022-05-13
1
222
题解 | #矩阵乘法计算量估算#
使用栈辅助进行解决,类似于求表达式的解 import java.util.*; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner...
Java
2022-05-13
0
200
题解 | #字符串通配符#
使用动态规划解决 d[i][j]表示模式t[0:i]与字符串s[0:j]是否能够匹配 当t[i]='*'时,如果t[0:i-1]与s[0:j]匹配或者t[0:i]和s[0:j-1]匹配则必有t[0:i]与字符串s[0:j]匹配 当t[i]与s[j]字符匹配时,并且t[0:i-1]与s[0:j-1]匹...
Java
动态规划
2022-05-12
2
302
题解 | #高精度整数加法#
使用StringBuilder缓存结果 按照类似归并的思想从个位向高位慢慢进行累加,并且使用k保存进位 import java.util.*; public class Main{ public static void main(String[] args){ S...
Java
2022-05-12
0
203
题解 | #从单向链表中删除指定值的节点#
先构建(构建就是不断的找前驱,并且添加新的节点) 再删除(在头节点前面添加了一个dummy节点,主要是统一删除头节点时的操作) import java.util.*; class ListNode{ int val; ListNode next; ListNod...
Java
2022-05-11
0
217
题解 | #密码验证合格程序#
首先判断长度 其次判断种类 最后判断字串,判断字串直接遍历,不过串不是很长,还是能接受的 最后一步可以做一下修改,其实是没有必要循环判断的,因为只要存在长度为4的重复子串则一定存在长度为3的重复子串,所以其实只用判断长度为3的即可 import java.util.Scanner; public...
Java
2022-05-11
0
145
题解 | #求最小公倍数#
首先通过一个小技巧保证被核心方法处理的参数中a一定是大于b的 接着进行辗转相除,使用递归进行实现,主要的思想是为了如果a和b中都有一个数i,那么i只用出现一次,所以就直接去求a/i,b/i的最大公倍数,并且将结果乘以i,那么最后的结果就是a,b的最大公倍数 import java.util.Scan...
Java
2022-05-10
0
209
题解 | #合唱队#
使用两次求最长递增子序列进行解决(从左向右求解一次,从右向左求解一次,最后进行合并) import java.util.Scanner; public class Main{ public static void main(String[] args){ Scan...
Java
2022-05-10
1
318
题解 | #购物单#
//背包问题dp[i][j]表示前i个物品,背包重量为j的情况下能够获得的最大价值 //所以dp[i][j] = max(dp[i-1][j],dp[i-1][j-w[i]]+v[i]) //dp[i][j] = max(dp[i-1][j],dp[i-1][j-w[i][k]]+v[i][k])...
Java
2022-05-10
1
174
首页
上一页
1
2
下一页
末页