- 博客(10)
- 收藏
- 关注
原创 多维动态规划-三角形(triangle minimum path sum)
在第一次尝试的过程中,发现直接更新dp、不进行复制会出现错误覆盖的问题。因此创建tmp(size of n-1)来保存每层更新前的dp。每次循环,tmp都会被最新的dp覆盖,因此空间有效。合法的路径:对于第i层的第j个元素来说,下一步只能是i+1层的第j个或第j+1个元素。给定一个三角形,每一层都比上一层多一个数,要求找到最小的路径总和。要求:空间复杂度O(n),其中n为三角形的深度。
2025-09-16 13:50:08
150
原创 二叉树:将二叉树压缩为顺序为前序遍历的链表
思路:因为要进行in-place修改,所以要先调整各个节点的顺序(递归地交换节点顺序),然后在调整的基础上进行递归地节点构造。输出:链表(数据结构仍为二叉树,所有的节点按前序遍历的顺序依次构成根节点的右节点)容易忽略的点是,在把左子树搬到右子树之后要记得删除左子树。输入:二叉树(root),节点数最少为0。题目来源:leetcode。
2025-09-07 06:53:04
199
原创 根据升序数组创建高度平衡(height-balanced)二叉搜索树
根据二叉树的结构特性,用二分法寻找子结点(递归)。递归的条件:给定当前结点n(当前结点总为数组的最中间元素),n的左子结点应当是原数组以n左侧1个的元素为上界的数组的最中间元素,n的右子结点应当是原数组以n右侧1个的元素为下界的数组中的最中间元素。因此,核心在于不断找到左、右两个数组的最中间元素。递归的停止条件是数组为空。给定一个升序数组,例如[-10, 3, 5, 9, 7],创建一个高度平衡的二叉树。所谓高度平衡的二叉树,即任意一个结点的左右子树的深度(depth)差异<=1。
2025-07-10 14:57:18
190
原创 C++:字符串倒序
需要注意的点:string对象不能像动态数组那样直接用,因为初始化之后是一个长度为1的空的字符串,一旦需要索引一个以上的字符就会出现问题。任务要求:将输入的字符串倒序,不使用标准库的函数reverse。方法一:使用char数组,运用动态内存分配;方法二:使用string类机器字符拼接方法。
2024-05-06 18:06:04
1776
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅