Loading

随笔分类 -  LeetCode入门指南

LeetCode入门指南
摘要:上图表示常用的二分查找模板: 第一种是最基础的,查找区间左右都为闭区间,比较后若不等,剩余区间都不会再包含mid;一般在不需要确定目标值的边界时,用此法即可。 第二种查找区间为左闭右开,要确定target左边界时,若nums[mid] == target,取right = mid: int left 阅读全文
posted @ 2021-09-01 17:41 WINLSR 阅读(236) 评论(0) 推荐(0)
摘要:推荐学习labuladong大佬的动态规划系列文章:先弄明白什么是动态规划即可,不必一次看完。接着尝试自己做,没有思路了再回过头看相应的文章。 动态规划一般可以由 递归 + 备忘录 一步步转换而来,不必被名字唬住。通常只要找到状态转移方程问题就解决了一大半,至于状态的选择只要题目做多了自然就会形成经 阅读全文
posted @ 2021-09-01 09:22 WINLSR 阅读(337) 评论(0) 推荐(0)
摘要:模板 result = {} void backtrack(选择列表, 路径) { if (满足结束条件) { result.add(路径) return } for 选择 in 选择列表 { 做选择 backtrack(选择列表,路径) 撤销选择 } } 核心就是从选择列表里做一个选择,然后一直递 阅读全文
posted @ 2021-08-31 19:23 WINLSR 阅读(92) 评论(0) 推荐(0)
摘要:栈 155. 最小栈 设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。 push(x) —— 将元素 x 推入栈中。 pop() —— 删除栈顶的元素。 top() —— 获取栈顶元素。 getMin() —— 检索栈中的最小元素。 class MinStack 阅读全文
posted @ 2021-08-30 17:24 WINLSR 阅读(261) 评论(0) 推荐(1)
摘要:二叉树的遍历 递归: void traverse (TreeNode root) { if (root == null) { return null; } //前序遍历位置 traverse(root.left); //中序遍历位置 traverse(root.right); //后序遍历位置 } 阅读全文
posted @ 2021-08-30 09:15 WINLSR 阅读(241) 评论(0) 推荐(1)
摘要:83. 删除排序链表中的重复元素 存在一个按升序排列的链表,给你这个链表的头节点 head ,请你删除所有重复的元素,使每个元素 只出现一次 。返回同样按升序排列的结果链表。 class Solution { public ListNode deleteDuplicates(ListNode hea 阅读全文
posted @ 2021-08-08 15:40 WINLSR 阅读(189) 评论(0) 推荐(1)
摘要:912. 排序数组 给你一个整数数组 nums,请你将该数组升序排列。 归并排序 public class Sort { //归并排序 public static int[] MergeSort(int[] arr) { int[] temp = new int[arr.length]; merge 阅读全文
posted @ 2021-08-08 09:07 WINLSR 阅读(110) 评论(0) 推荐(0)