我要来
我要来
全部文章
分类
题解(60)
归档
标签
去牛客网
登录
/
注册
勇敢扭扭
学如逆水行舟,行舟不一定要划水。
全部文章
(共60篇)
题解 | #滑动窗口的最大值#
思路:1.如果这次窗口最右边的值num[right]大于等于上一次的max值,则令max=num[right];2.否则如果这次num[right]小于上一次的max, 1)如果上一次窗口最左边的值恰好是max,则需要重新对整个窗口计算最大值。 2)如果不是的话,则这次窗口的最大值依然是...
2021-08-06
1
404
题解 | #设计LRU缓存结构#
思路:1.设计nod类来存储键值对。2.设计lru类来模拟整个键值对队列。 import java.util.*; public class Solution { /** * lru design * @param operators int整型二维数组 the ops ...
2021-08-05
1
404
题解 | #kmp算法#
public int kmp (String S, String T) { // write code here int cnt=0; int i=0; int j=0; int[] next=getNext(S); ...
2021-08-05
0
417
题解 | #按之字形顺序打印二叉树#
思路:我的方法太耗时间和空间。用两个链表模拟队列,实现层序遍历。第一个链表的数据读取出来顺序装入list,第二个链表的数据逆序装入list;这样就能实现之字了。 public ArrayList<ArrayList<Integer> > Print(TreeNode pRoo...
2021-08-05
1
447
题解 | #数组中的最长连续子序列#
思路:1.先排序,这里我自己写了个快排,练一练手。2.遍历数组1)若前后连续,则计数值加1,再根max值比较,将大值赋给max。2)不连续,则计数值变为1,仪当前数组值作为起点,重新开始寻找。3.返回max public int MLS (int[] arr) { // write ...
2021-08-04
0
350
题解 | #数组中的最长连续子序列#
思路:1.先排序2.遍历数组1)如果前后连续,则加1,并判断当前值与max的大小,将最大值赋给max。2)不连续,则把当前数组的值作为第一个,也就是计数重新从1开始。3.返回max public int MLS (int[] arr) { // write code here ...
2021-08-04
0
483
题解 | #判断一个链表是否为回文结构#
思路:遍历链表,把值存入list集合中。使用双指针,判断左右是否相等,不等则返回false。循环结束返回true。 public boolean isPail (ListNode head) { // write code here if(head==null){ ...
2021-08-04
0
418
题解 | #单链表的排序#
思路:1.遍历链表,把链表放入list集合中2.利用集合中的sort方法,对ListNode按照val值升序排序。 注意;此处我使用Collections.sort(list,new comparator<>(){})的方式测试时正常,最终提交时超时了,而使用lambda表达式就成...
2021-08-04
0
520
题解 | #最大数#
思路:1.把int数组转为String数组2.对String数组排序,需要重写compare()方法。 1)当21和2比较时,按理21比2大,组合为212,但实际221更大。因此当字符之间比较时,如果一个字符包含于另一个字符,则被包含的字符放在前面。即2被21包含,2在21前面。3.需要注意&...
2021-08-03
1
487
题解 | #矩阵的最小路径和#
思路:动态规划1.设置dp[row+1][col+1],由于多设置了1行和1列,不必初始化,保持0即可。2.求取dp数组 1)当位于第一行或者第一列时,应该取上方或者左方的最大值加上当前数组matrix[i-1][j-1]的值,因为第0行和第0列全是0。 2)若非第一行或者第一列,取左方...
2021-08-03
1
555
首页
上一页
1
2
3
4
5
6
下一页
末页