2024年2月26日
摘要: 13.1 回溯算法 「回溯算法 backtracking algorithm」是一种通过穷举来解决问题的方法,它的核心思想是从一个初始状态 出发,暴力搜索所有可能的解决方案,当遇到正确的解则将其记录,直到找到解或者尝试了所有可能的选择 都无法找到解为止。 回溯算法通常采用“深度优先搜索”来遍历解空间 阅读全文
posted @ 2024-02-26 20:10 lulixiu 阅读(33) 评论(0) 推荐(0) 编辑
摘要: 回溯算法理论基础 题目分类 理论基础 什么是回溯法 回溯法也可以叫做回溯搜索法,它是一种搜索的方式。 在二叉树系列中,我们已经不止一次,提到了回溯,例如二叉树:以为使用了递归,其实还隐藏着回溯。 回溯是递归的副产品,只要有递归就会有回溯。 所以以下讲解中,回溯函数也就是递归函数,指的都是一个函数。 阅读全文
posted @ 2024-02-26 17:29 lulixiu 阅读(25) 评论(0) 推荐(0) 编辑
  2024年2月24日
摘要: 堆 堆就像是山川的峰峦,它们层叠起伏、形态各异。 每一座山峰都有其高低之分,而最高的山峰总是最先映入眼帘。 8.1 堆 「堆 heap」是一种满足特定条件的完全二叉树,主要可分为图 8‑1 所示的两种类型。 ‧「大顶堆 max heap」:任意节点的值 ≥ 其子节点的值。 ‧「小顶堆 min hea 阅读全文
posted @ 2024-02-24 11:30 lulixiu 阅读(8) 评论(0) 推荐(0) 编辑
摘要: cal的题目分类 说到二叉树,大家对于二叉树其实都很熟悉了,本文呢我也不想教科书式的把二叉树的基础内容再啰嗦一遍,所以以下我讲的都是一些比较重点的内容。 相信只要耐心看完,都会有所收获。 C++中map、set、multimap,multiset的底层实现都是平衡二叉搜索树,所以map、set的增删 阅读全文
posted @ 2024-02-24 09:36 lulixiu 阅读(7) 评论(0) 推荐(0) 编辑
  2024年2月15日
摘要: 二叉树 「二叉树 binary tree」是一种非线性数据结构,代表着祖先与后代之间的派生关系,体现着“一分为二”的 分治逻辑。与链表类似,二叉树的基本单元是节点,每个节点包含:值、左子节点引用、右子节点引用。 /* 二叉树节点结构体 */ typedef struct TreeNode { int 阅读全文
posted @ 2024-02-15 16:56 lulixiu 阅读(12) 评论(0) 推荐(0) 编辑
摘要: 栈与队列理论基础 我想栈和队列的原理大家应该很熟悉了,队列是先进先出,栈是先进后出。 那么我这里再列出四个关于栈的问题,大家可以思考一下。以下是以C++为例,使用其他编程语言的同学也对应思考一下,自己使用的编程语言里栈和队列是什么样的。 C++中stack 是容器么? 我们使用的stack是属于哪个 阅读全文
posted @ 2024-02-15 10:37 lulixiu 阅读(9) 评论(0) 推荐(0) 编辑
摘要: 平衡括号串(⼀) 先来个简单的,⼒扣第 921 题「使括号有效的最少添加」: 给你输⼊⼀个字符串 s,你可以在其中的任意位置插⼊左括号 ( 或者右括号 ),请问你最少需要⼏次插⼊才 能使得 s 变成⼀个有效的括号串? ⽐如说输⼊ s = "())(",算法应该返回 2,因为我们⾄少需要插⼊两次把 s 阅读全文
posted @ 2024-02-15 10:37 lulixiu 阅读(6) 评论(0) 推荐(0) 编辑
  2024年2月7日
摘要: 栈如同叠猫猫,而队列就像猫猫排队。 两者分别代表着先入后出和先入先出的逻辑关系。 「栈 stack」是一种遵循先入后出的逻辑的线性数据结构。 我们可以将栈类比为桌面上的一摞盘子,如果需要拿出底部的盘子,则需要先将上面的盘子依次取出。我们 将盘子替换为各种类型的元素(如整数、字符、对象等),就得到了栈 阅读全文
posted @ 2024-02-07 20:00 lulixiu 阅读(13) 评论(0) 推荐(0) 编辑
摘要: 代码随想录字符串 反转字符串 思路 先说一说题外话: 对于这道题目一些同学直接用C++里的一个库函数 reverse,调一下直接完事了, 相信每一门编程语言都有这样的库函数。 如果这么做题的话,这样大家不会清楚反转字符串的实现原理了。 但是也不是说库函数就不能用,是要分场景的。 如果在现场面试中,我 阅读全文
posted @ 2024-02-07 00:57 lulixiu 阅读(12) 评论(0) 推荐(0) 编辑
  2024年2月6日
摘要: 田忌赛马的故事大家应该都听说过: 田忌和齐王赛马,两人的马分上中下三等,如果同等级的马对应着比赛,田忌赢不了齐王。但是田忌遇到了孙膑,孙膑就教他用自己的下等马对齐王的上等马,再用自己的上等马对齐王的中等马,最后用自己的中等马对齐王的下等马,结果三局两胜,田忌赢了。 当然,这段历史也挺有意思的,那个讽 阅读全文
posted @ 2024-02-06 16:49 lulixiu 阅读(41) 评论(0) 推荐(0) 编辑