- 博客(74)
- 资源 (1)
- 收藏
- 关注
原创 20-dfs-N皇后问题(中等)
dg[i + r] 表示 r行i列处,所在的对角线上有没有棋子,udg[n - i + r]表示 r行i列处,所在的反对角线上有没有棋子,cor[i]表示第i列上有没有棋子。cor[i] &&!udg[n - i + r]为真,则代表 r行i列处可以放棋子。递归结束判定:见代码,当 r == n的时候,说明应该处理第 n行了,也代表第 0~n-1行放好棋子,也就是整个棋盘放好了棋子,也就是得到了一种解,也就是递归结束。n - i + r和i + r其实就是一个小trick,b=y-x或者b=y+x;
2025-03-30 15:12:16
269
原创 18-动规-子序列中的 k 种字母(中等)
子序列是从原序列中选取部分元素,同时保持这些元素在原序列中的相对顺序所形成的新序列。也就是说,子序列中的元素不需要在原序列中连续出现,但它们的先后顺序必须和原序列一致。例如,对于字符串 "abc",它的子序列有 "","a","b","c","ab","ac","bc","abc"。
2025-03-29 19:42:29
605
原创 15-双链表-双链表基本操作
此题我只想说,千万千万别漏了头结点和尾结点,不然根本查不出来是哪里出了问题,因为传入的k会有问题;最左边插入,相当于是在头结点的右边插入(也就是0号节点的右边);最右边插入相当于是尾节点的左边插入(也就是1号节点的左边)。又由于idx是从2开始,所以对于题意的k,应该传入k+1。
2025-03-20 23:17:24
240
原创 14-图论-多源最短路径Floyd算法
多源最短路径问题,直接使用Floyd算法,思路简单,代码也好写。注意初始化,以及一些小细节,比如如果INT_MAX,因为相加之后会出现溢出。
2025-03-20 21:51:05
395
原创 12-二叉树-二叉树高度(给定前序和中序确定二叉树)
其实跟09那篇很像,反正核心就是要通过前序和中序来建树,只不过现在多了一个返回值;因为建树的时候,其实左子树和右子树的深度就可以知道。
2025-03-18 19:50:24
198
原创 11-BST(二叉树)-建立二叉搜索树,并进行前中后遍历2
本题与上一篇的区别在于二叉树的构建,本题已经明确知道每个根节点下的左右子树id,所以只需要在输入的时候就可以完成建树的操作,至于遍历部分是相同的。
2025-03-18 19:29:30
225
原创 10-BST(二叉树)-建立二叉搜索树,并进行前中后遍历
建立二叉搜索树(注意传参时用到了引用,可以直接对root进行修改),同时进行递归遍历;遍历可以分前中后三种写,也可以用标志来代替合在一起。
2025-03-18 19:11:42
290
原创 08-单链表-单链表基本操作2
上一份的idx是一个全局的指针,由于链表天生就是物理位置不用连续,所以idx可以在任意位置,只要该节点能够和整个链表连接起来就行;与上一份的最大区别就是要先判断一下要处理的k是否是合法的,也就是要先将指针能够指向k;掌握数组模拟链表的基本用法,其他详见代码。
2025-03-17 23:28:14
391
原创 07-单链表-单链表基本操作
详见代码,主要思想就是用数组来模拟链表的创建。数组其实跟静态链表等价,由于动态链表动态new对于大数据太过于耗时,因此采用数组的方式。那数组如何起到链表的效果?
2025-03-17 21:43:25
254
原创 02-双指针-A-B 数对
首先,我们让队伍里的人按照身高从小到大排好队。这样做的好处是,我们可以从矮到高依次去检查每个人,并且能很方便地知道后面的人肯定比前面的人高或者一样高。就好像我们从队伍的最前面开始,一个一个往后看,这样找身高差会更有规律。我们可以把这个问题想象成在一个排队的队伍里找符合特定身高差的人对。给定的数列里的每个数就好比队伍里每个人的身高,而差值。就是我们要找的身高差。我们的目标是找出队伍里所有身高差恰好是。
2025-03-06 21:27:03
473
原创 acw165. 小猫爬山-DFS剪枝与优化
可行性剪枝:如果放入当前的猫,车的重量超出,则舍弃该方案。优化搜索顺序:大部分情况下,应该优先搜索分支较少的节点。优化搜索顺序:优先放重猫。
2024-05-13 21:43:13
370
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人