- 博客(7)
- 收藏
- 关注
原创 基于递归理解二叉树
文章目录前言二叉树的重要性快速排序的逻辑归并排序的逻辑递归算法的秘诀226.翻转二叉树(简单)114.二叉树展开为链表(中等)116.填充每个节点的下一个右侧节点指针(中等)总结前言二叉树是算法的基础,很多经典算法(回溯算法、动态规划、分治算法)其实都是树的问题,而树的问题就永远逃不开树的递归遍历框架这几行破代码:/* 二叉树遍历框架 */void traverse(TreeNode root) { // 前序遍历 traverse(root.left) // 中序遍历
2021-03-04 00:29:31 201 3
原创 如何判断回文链表
如何判断回文链表思路寻找回文串的核心是中心向两端扩展string palindrome(string& s, int l, int r) { // 防止索引越界 while (l >= 0 && r < s.size() && s[l] == s[r]) { // 向两边展开 l--; r++; } // 返回以 s[l] 和 s[r] 为中心的最长回文串
2021-03-02 00:15:33 726
原创 用迭代和递归两种方式实现链表反转
文章目录反转整个链表反转链表前 N 个节点92.反转链表II(中等)25.K个一组翻转链表(困难)总结反转整个链表递归方式ListNode reverse(ListNode head) { if (head.next == null) return head; ListNode last = reverse(head.next); head.next.next = head; head.next = null; return last;}迭代方式
2021-02-16 11:39:29 465
原创 回溯算法初探
文章目录回溯算法初探思路[46. 全排列](https://leetcode-cn.com/problems/permutations/)[51. N 皇后](https://leetcode-cn.com/problems/n-queens/)总结回溯算法初探思路回溯问题,实际上就是一个决策树的遍历过程,需要思考3个问题1、路径:也就是已经做出的选择。2、选择列表:也就是你当前可以做的选择。3、结束条件:也就是到达决策树底层,无法再做选择的条件。代码方面,回溯算法的框
2021-02-16 10:11:14 158
原创 动态规划解题框架
文章目录动态规划是什么?[509. 斐波那契数](https://leetcode-cn.com/problems/fibonacci-number/)题目描述**1.暴力递归**2.**带备忘录的递归解法**3.**DP 数组的迭代解法**总结[322. 零钱兑换](https://leetcode-cn.com/problems/coin-change/)题目描述分析暴力递归(超时)带备忘录的递归(超时)DP 数组的迭代解法归纳动态规划是什么?动态规划问题的一般形式就是求最值,求解动态规划的核心
2021-01-30 10:18:46 239
原创 算法绪论
思路文章目录思路数据结构存储方式数据结构基本操作算法刷题指南数据结构存储方式数组:顺序存储紧凑连续存储,可以随机访问,通过索引快速找到对应元素,而且相对节约存储空间。但扩容时需要重新分配更大的空间,时间复杂度O(n)链表:链式存储元素不连续,而是靠指针指向下一个元素的位置,所以不存在数组的扩容问题。如果知道某一元素的前驱和后驱,操作指针即可删除该元素或者插入新元素,时间复杂度 O(1)。但是正因为存储空间不连续,你无法根据一个索引算出对应元素的地址,所以不能随机访问;而且由于每个元素必
2021-01-28 10:31:22 91
原创 作业2——关键词信息提取
[TOC]数据预处理进行关键词提取之前,需要对源文件进行一系列预处理:提取PDF为TXT文件分句分词(词干提取、词形还原)过滤数字、特殊字符等,大小写转换提取PDF使用Apache PDFBox工具对PDF文字进行提取依赖如下:<dependency> <groupId>org.apache.pdfbox</groupId> <artifactId>pdfbox</artifactId> <ve
2020-09-21 20:19:20 941
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人