![](https://img-blog.csdnimg.cn/20190927151053287.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
刷题
。
linewon
这个作者很懒,什么都没留下…
展开
-
牛客网 迷宫问题 DFS 递归 两种方式
牛客网-迷宫问题 主要思路 1. 像3个方向递归 2. 不能数组越界 3. 不能是墙 4. 在当前递归分支下,没有走过。 跟算24点一样,还是通过两种方式控制递归退出: 1. 通过全局变量 2. 通过函数返回值。 这里通过函数返回值,直接用静态函数就行了,并且不会有并发冲突。 公共类Coordin package cn.line.nowcoder.huawei.hj43; /** * 用于保存路径 * 也可以直接用int[2]来实现 */ public class Coord原创 2022-04-05 23:43:39 · 538 阅读 · 0 评论 -
牛客网 24点 DFS 递归 两种方式
题目连接:牛客网-算24点 自己些的递归,是通过全局控制变量,来控制递归结束的。 后来看了网友的代码,还有通过返回值来控制递归结束的。 在这里记录一下。 下面的代码里, 函数dfs是通过全局变量found来控制递归退出的。 函数dfs2是通过返回值来控制递归退出的。 package cn.line.nowcoder.huawei.hj67; import java.util.Scanner; public class Main { public static void ma原创 2022-04-04 14:02:21 · 600 阅读 · 0 评论 -
记直接插入排序,为什么必须从后往前遍历
从前往后遍历找到插入位置 @Slf4j public class InsertSort { @Test public void test() { int[] arr = new int[]{5, 3, 7, 6, 4, 1, 0, 2, 9, 8}; log.info("init: {}", Arrays.toString(arr)); insertSort(arr); log.info("result: {}", Arr原创 2022-03-21 20:31:23 · 1044 阅读 · 0 评论 -
LeetCode 链表 双指针 234
题目本身比较简单,主要是快慢指针的思路值得记一下,后续可能还会有其他应用。 public boolean isPalindrome(ListNode head) { if (head.next == null) return true; ListNode fast = head; ListNode slow = head; ListNode preSlow = null, nextSlow;原创 2022-03-18 22:16:53 · 623 阅读 · 0 评论 -
LeetCode 链表 双指针 206 92 25
206: 简单的pre + cur的双指针 public ListNode reverseList(ListNode head) { if (head == null || head.next == null) return head; ListNode pre = null; ListNode cur = head; ListNode tmp; while (cur.next != null) { tmp = cur.next原创 2022-03-17 23:38:06 · 573 阅读 · 0 评论 -
LeetCode 19 61 链表 双指针
题目-19 题目-61 19: public ListNode removeNthFromEnd(ListNode head, int n) { ListNode ret = new ListNode(0, head); ListNode pre = ret; ListNode rear = pre; while (n-- >= 0) { // n-- > 0 rear = rear.ne原创 2022-03-17 00:23:04 · 848 阅读 · 0 评论 -
LeetCode105,根据前序、中序遍历结果,构建二叉树。思路与Java解答
LeetCode105 关键思路: 1. 前序遍历序列的第一个数,即为根。 2. 前序遍历的整个序列可以分为3个连续部分:根,左子树,右子树。 3. 中序遍历的整个序列可以分为3个连续部分:左子树,根,右子树。 有了上面3个思路,开始模拟一下程序: 1. 根据preorder序列,找到root 2. 根据root,在inorder中确定左右子树 3. 根据inorder中左右子树的...原创 2019-02-17 21:53:06 · 499 阅读 · 0 评论 -
LeetCode80 26,有序数组中,每个数只能重复出现K次。思路与Java解答
LeetCode80 LeetCode26 给一个有序整数数组,数组中的每个元素,最多只能重复出现K次。80题中,K=2;26题中,K=1。 先贴代码: public class Solution80 { private static final int K = 2; /** * @param nums it's sorted! */ public int remove...原创 2019-02-02 23:16:20 · 575 阅读 · 0 评论