力扣刷题
文章平均质量分 91
猫猫头不写bug
平时写一下刷题经验和论文阅读
是个菜狗
但会努力
展开
-
力扣刷题日常——树
刷了剑指offer入门以及突击版,总结一下有关于树的题,主要还是深度优先搜索和广度优先搜索。原创 2022-01-22 13:06:02 · 253 阅读 · 0 评论 -
力扣刷题框架——二叉树的搜索和回溯
二叉树的搜索和回溯都是剑指offer里面的题,关于二叉树的搜索和回溯算法还挺普遍的哈,之前总结过链接在下面:DFS+回溯剪枝BFS所以这次算是温故而知新。原创 2021-09-29 15:32:30 · 173 阅读 · 0 评论 -
力扣刷题框架——数据结构(三)
@[TOC](关于二叉搜索数(Binary Search Tree,后文简写 BST))原文链接:https://labuladong.gitee.io/algo/2/19/24/1. BST特性对于 BST 的每一个节点 node,左子树节点的值都比 node 的值要小,右子树节点的值都比 node 的值大。对于 BST 的每一个节点 node,它的左侧子树和右侧子树都是 BST。基于BST的有AVL树,红黑树,B+树,线段树等,提供logn级别的增删改查。BST 的中序遍历结果是有序的(升原创 2021-08-19 15:52:03 · 136 阅读 · 0 评论 -
力扣刷题框架——数据结构(二)
面试必考二叉树1. 二叉树重要性2. 翻转二叉树2.1 题目描述2.2 解题思路3. 填充二叉树右侧指针3.1 题目描述3.2 解题思路4. 将二叉树展开为链表4.1 题目描述4.2 解题思路原文链接:https://labuladong.github.io/algo/2/19/21/其实力扣刷题不知道怎么入手可以先刷二叉树题目,因为很多经典算法(回溯,动规,分治)都是树的问题。树的问题逃不开递归遍历框架:/* 二叉树遍历框架 */void traverse(TreeNode root) {原创 2021-08-04 22:35:10 · 133 阅读 · 0 评论 -
力扣刷题框架——数据结构(一)
链表专栏1. 递归反转链表1.1 题目描述1.2 解题思路1. 递归反转整个链表2. 递归反转链表前n个节点3. 递归反转链表的一部分原文地址:https://labuladong.github.io/algo/2/18/17/1. 递归反转链表本部分从部分反转链表这一题目入手,可能这一问题迭代实现很简单但是递归实现你是否会呢?首先熟悉一些链表结构:// 单链表节点的结构public class ListNode { int val; ListNode next; List原创 2021-07-26 22:34:12 · 288 阅读 · 0 评论 -
力扣刷题框架——BFS
BFS——广度优先搜索,核心思想就是把问题抽象成图,从一个点开始向四周扩散,一般用**队列**这种数据结构,每次将一个节点周围的所有节点加入队列。原创 2021-07-22 11:55:49 · 308 阅读 · 0 评论 -
力扣刷题框架——回溯法
回溯法来啦1. 全排列问题1.1 题目描述1.2 解题思路这篇来讲讲回溯法,其实就是DFS(深度优先搜索)解决一个回溯问题,实际上就是一个决策树的遍历过程。考虑三个问题:路径:也就是已经做出的选择。选择列表:也就是你当前可以做的选择。结束条件:也就是到达决策树底层,无法再做选择的条件。代码框架:result = []def backtrack(路径, 选择列表): if 满足结束条件: result.add(路径) return f原创 2021-07-20 12:02:07 · 188 阅读 · 0 评论 -
力扣刷题框架——动态规划(一)
本文主要是总结力扣中动态规划问题的共同点,并得到一个通用的解决方案和算法框架,依照这一方案和框架去解决更多问题。也算是labuladong的算法小抄笔记原文链接:[https://labuladong.gitee.io/algo/](https://labuladong.gitee.io/algo/)原创 2021-07-13 17:29:37 · 264 阅读 · 0 评论 -
力扣刷题日常(三)
数组专栏3.1 1711. 大餐计数3.2 930. 和相同的二元子数组(SubSum)3.1 1711. 大餐计数题目描述给你一个整数数组 deliciousness ,其中 deliciousness[i] 是第 i 道餐品的美味程度,返回你可以用数组中的餐品做出的不同 大餐 的数量。结果需要对109+710^9 + 7109+7取余。注意,只要餐品下标不同,就可以认为是不同的餐品,即便它们的美味程度相同。输入deliciousness = [1,3,5,7,9]原创 2021-07-07 16:18:19 · 131 阅读 · 0 评论 -
力扣刷题日常(二)
一些难用的数据结构…一瓶酒一支烟一道力扣敲一天…目录149.直线上最多的数2.1 直线上最多的数题目描述给你一个数组 points ,其中 points[i] = [xi , yi] 表示 X-Y 平面上的一个点。求最多有多少个点在同一条直线上。输入points = [[1,1],[2,2],[3,3]]输出3解题思路就是暴力穷举嘛,枚举经过点i和另外一个点的所有直线。如果直线同时经过另外两个不同的点j和k,如果kkk表示斜率,那么:kij=kikk_{ij} = k_{ik}k原创 2021-06-24 21:29:33 · 263 阅读 · 0 评论 -
力扣刷题日常(一)
字符串专栏(不定期更新…)目录剑指 Offer 38. 字符串的排列1.1 剑指 Offer 38. 字符串的排列输入一个字符串,打印出该字符串中字符的所有排列。要求排列无重复。示例输入:s = “abc”输出:[“abc”,“acb”,“bac”,“bca”,“cab”,“cba”]解题思路用回溯法,该题相当于n个排列成一行的空位,我们需要从左往右依次填入题目给定的n个字符,每个字符只能使用一次。定义函数backtrack(i,perm),i表示接下来需要确定插入字符的位置。pe原创 2021-06-23 11:49:34 · 101 阅读 · 0 评论