三人归来
三人归来
全部文章
分类
归档
标签
去牛客网
登录
/
注册
三人归来的博客
TA的专栏
24篇文章
0人订阅
华为机试题解专栏
0篇文章
0人学习
常规算法题目专栏
24篇文章
45人学习
全部文章
(共33篇)
题解 | #重排链表#
来自专栏
要求真高 这种重排需求应该没有意义,但是它还要求原节点操作,于是就有些细节了。 神奇的点:无论是偶数节点还是奇数节点,都是while内部break。 具体代码: // L0-> Ln-> L1-> L n1-> L2-> L n2-> … pub...
2026-04-18
1
14
题解 | #链表中环的入口结点#
来自专栏
最经典的快慢指针题目 快指针K一次走两步,慢指针M1一次走一步。 两个指针第一次相遇时,快指针与慢指针都进入了圈内,假设相遇在Q点,而且快指针K比慢指针M1多走了一倍距离。 如果这个时候让它俩都倒回去:慢指针原路倒回,快指针也原路倒回但倒回去的时候步伐改为1(和慢指针一样的步伐),那么当慢指针倒回...
2026-04-15
1
18
题解 | #二叉树的最小深度#
二叉树的最小深度 注意只有左子树(或者右子树)的情况就可以了,这时候就要单独递归该子树,切忌不要无脑递归两边。 具体代码: import java.util.*; /* * public class TreeNode { * int val = 0; * TreeNode lef...
2026-04-08
1
32
题解 | #1or0#
0子串 本题特点:基础解法并不难,但是对性能要求高。具体思路: 用总的子串数 - 0子串数,就是‘区间内全部连续子串的“自审值”之和’。 而0子串数可以使用前缀和的思路来快速计算出区间内的0子串数。 但是如果区间是以0开头的,则pre[j] - pre[i-1]的值中就会多包涵一些从i的左边开头在...
2026-04-08
1
36
题解 | #小红的双生英雄#
二维的01背包问题(附加组合背包) 按照一维背包(基础背包)的思路解题即可。 设dp[i][j][k]表示前i个物品(包括i)、在j的cost下、在k的人数限制下的最大战力。这个时候,需要特殊处理i=0的情况。 还有一种写法就是:dp[i][j][k]表示前i个物品(不包括i)、在j的cost下、...
2026-04-08
1
35
题解 | #明明的随机数#
迎面痛击较难的题目之第一题。 第一题竟然如此友好,一个简单的分桶排序即可; 代码如下: import java.util.Scanner; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static v...
2026-04-07
2
40
题解 | #画展布置#
煞费苦心的牛客,杜撰了一个“画展的不和谐度”。化简之后,你就会说,这么简单的滑动窗口定义。 具体代码: import java.util.*; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static v...
2026-04-07
2
39
题解 | #相差不超过k的最多数#
经典双指针题目~ 熟悉的配方—— 主线是右指针不断地去探索最大的符合条件的区间。 在探索的过程中,如果不满足区间条件,就右移左指针,直到[i,j]区间符合条件为止。这时候计算区间长度。 具体代码如下: import java.util.*; // 注意类名必须为 Main, 不要有任何 pac...
2026-04-07
2
35
题解 | #【模板】双指针#
这个题目归类为双指针,才有点名副其实~ 解题思路如下: 主线是右指针不断地去探索最大的符合条件的区间。 在探索的过程中,如果不满足区间条件,就右移左指针,直到[i,j]区间符合条件为止。这时候计算区间长度。 细节和特点: 可以用map来记录元素值出现的位置,并在右指针右移的时候用了检查新区间是否...
2026-04-07
2
37
题解 | #【模板】滑动窗口#
哪来的双指针? 我实在想不出来双指针的解法. 还是用了单调递减队列来做的。 具体代码如下: import java.util.*; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void ...
2026-04-07
2
28
首页
上一页
1
2
3
4
下一页
末页