locke.code
locke.code
全部文章
分类
题解(27)
归档
标签
去牛客网
登录
/
注册
locke.code的博客
全部文章
(共26篇)
题解 | #按之字形顺序打印二叉树#
通过两个栈交替使用遍历即可。 需要注意的时候用栈的时候需要反向思考入栈和出栈的顺序。 import java.util.*; /* public class TreeNode { int val = 0; TreeNode left = null; TreeNode rig...
Java
栈
2021-11-22
0
276
题解 | #大数加法#
依次从尾开始加,超过10进位,如果最后进位存在则加入到String 中即可 import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * 计算两个数之和 ...
Java
2021-11-17
0
249
题解 | #删除链表的倒数第n个节点#
快慢指针的做法,需要注意边界条件 import java.util.*; /* * public class ListNode { * int val; * ListNode next = null; * } */ public class Solution { /**...
Java
链表
模拟
2021-11-17
0
282
题解 | #有效括号序列#
比较简单也没有太多技巧。用栈即可 import java.util.*; public class Solution { /** * * @param s string字符串 * @return bool布尔型 */ public bo...
Java
单调栈
2021-11-17
0
278
题解 | #链表中环的入口结点#
判断单链表是否有环的升级版。 方法一 hash 存储遍历过的节点,如果出现重复便是起点,空间复杂度时O(n),不满足要求。 方法二 快慢指针,slow每次走一步和fast每次走两步,如下图所示,两个指针同时从A出发,经过环的起点B,如果链表存在环,那边两个指针最终能够再C点相遇,假设慢指针经过B点后...
Java
模拟
链表
2021-11-16
0
307
题解 | #合并两个有序的数组#
归并排序的思路,因为A数组有充足的空间,那么数据往A数组放即可。 技巧点在于只能从后往前放,所以要从后往前遍历。 import java.util.*; public class Solution { public void merge(int A[], int m, int B[], in...
Java
数组
有序集合
2021-11-14
0
253
题解 | #判断链表中是否有环#
本地比较简单,是一个常见的题。常规解法就是快慢指针,如果两个指针最终相遇说明有环,如果最终到null则说明没有环。 但是要该如何证明有环的情况下快慢指针必然会相遇呢?因为快指针每次相对慢指针多走一步,如果存在环他们必然能够相遇。 /** * Definition for singly-linked...
Java
单调队列
2021-11-14
0
264
题解 | #最长无重复子数组#
用一个Set判重,如果不重复则加入到set中,如果出现重复,则将前面重复元素之前的元素剔除,然后从前面的重复元素之后重新取子数组。 当出现重复时,当前set中的元素就是子数组的长度。如果一直到最后都没有出现重复元素,则set中的元素数量就是最长子数组。 import java.util.*; p...
Java
哈希表
双指针
2021-11-14
0
291
题解 | #连续子数组的最大和#
这题要求最值,首先应该想到的就是动态规划,动态规划擅长解决这类问题。 第一种方法:数组的元素依次相加,如果和大于0则可以继续向后加,因为前面的值为正值是可以对后面的求和有正向作用。一旦小于0了,则应该放弃这个sum。在这个过程中一直记录最大值。 第二种方法:动态规划。难点就在于如何定义状态?如果dp...
Java
动态规划
2021-11-14
0
293
题解 | #链表中的节点每k个一组翻转#
这一题的最大的难点应该就是考虑边界情况了 import java.util.*; /* * public class ListNode { * int val; * ListNode next = null; * } */ public class Solution { ...
Java
2021-11-14
0
272
首页
上一页
1
2
3
下一页
末页