leetcode总结
文章平均质量分 50
chenhy2116
这个作者很懒,什么都没留下…
展开
-
leetcode刷题思路-----前缀树
leetcode刷题思路-----前缀树对于大家来说,树并不陌生。以二叉树为例,它类似于链表一样将节点之间进行链接。而前缀树,是一种意义上的多叉树,它的信息反倒是存在所谓next指针上的。(来自力扣宫水三叶)1. 从二叉树到前缀树如何创建一个树呢?//基本上是如此创建的class TreeNode{ int val; TreeNode left; TreeNode right; TreeNode(){} TreeNode(int x){ val = x; }}那么类似的原创 2022-05-24 19:50:56 · 223 阅读 · 0 评论 -
leetcode刷题思路(前传)---- 那些需要知道的简单API
leetcode刷题思路(前传)---- 那些需要知道的API对于leetcode中的问题,对很多需要处理的输入输出,格式,类型转换等进行一个总结。1. 数组简单的遍历:for(int i=0; i<nums.length; i++);for(int num : nums);Arrays工具类://排序(底层是快速排序,源码可参考博文:)Arrays.sort(nums);//实现Comparator接口实现自定义排序Arrays.sort(nums,(o1,o2)->o1原创 2022-05-05 21:40:33 · 243 阅读 · 0 评论 -
leetcode刷题思路-----二分查找
leetcode刷题思路-----二分查找基本模板二分需要纯纯模板,不要再因题制宜的写了,越多越混。直接一个固定的模板,所有的都写一个,对结果再特判。public class MyBinarySearch { public static void main(String[] args) { //对于一个有序数组 int[] nums = new int[]{2,3,4,5,5,5,7}; //查找一个小于最小的数,返回0 System.o原创 2022-05-05 16:29:09 · 713 阅读 · 0 评论 -
leetcode刷题思路-----单调栈
leetcode刷题思路-----单调栈原创 2022-05-03 21:55:15 · 237 阅读 · 0 评论 -
leetcode刷题思路-----排序
leetcode刷题思路-----排序对于排序来说,在力扣要求时间复杂度比较高的情况下,以及面试的来说,本文分享三种高频的排序方法模板:快速排序,归并排序,堆排序。1. 快速排序快速排序也有分治的思想,每趟排序选第一个(默认)为基准值,将小于的放在左侧,大于的放在右侧。随后分治处理左右两侧。public class MyQuickSort { public static void main(String[] args) { int[] nums = new int[]{2,3原创 2022-05-02 12:00:03 · 380 阅读 · 0 评论 -
leetcode刷题思路-----链表
leetcode刷题思路-----链表1. 基本模板单链表的问题没什么模板,大家按照自己习惯都有各自的方法去删除,插入等。对于力扣的问题也没有太难的题,都是基本的方法的组合,比如从反转链表到k个一组反转链表,合并两个链表到合并k个有序链表,我们从最基本的开始。建立ListNode类public class ListNode { int val; ListNode next; public ListNode(){} //给两个有参构造,方便建立普通节点和哨兵节点原创 2022-04-29 20:42:04 · 419 阅读 · 0 评论 -
leetcode刷题思路-----二叉树
leetcode刷题思路-----二叉树对于二叉树基本就两种遍历形式,bfs与dfs。基本模板1.dfs相对简单,但复杂的dfs都以其为基础://dfs private static void dfs(TreeNode root){ if(root==null){ return; } dfs(root.left); //中序遍历 System.out.print(root.val+" ")原创 2022-04-27 17:33:43 · 119 阅读 · 0 评论 -
leetcode刷题思路-----回溯
leetcode刷题思路-----回溯对于回溯问题的主要思路在于找出回溯路径,最经典的就是排列和组合的问题。主要模板 private void backtrace1(int[] nums){ //何时取出何时的结果 if("符合条件"){ res.add("将这次结果加入解集"); return; } //在可选的集合中循环来取,加入当前路径 for(int i=0; i< nu原创 2022-04-25 19:49:31 · 311 阅读 · 0 评论 -
leetcode刷题思路-----背包
leetcode刷题思路-----背包背包问题一直是比较头疼的一类算法,但按照模板来走,比较简单。以零钱兑换为例,其本质还是dp的状态转换。1.基本思路 int[][] dp = new int[coins.length+1][amount+1]; //初始化状态 for(int i=; i<=; i++){ dp[0][] = ; dp[][0] = ; } //先遍历硬币,再遍历里面的总数原创 2022-04-23 20:55:16 · 983 阅读 · 0 评论