- 博客(21)
- 收藏
- 关注
原创 【基础算法笔记】贪心算法中的区间问题
在acwing上学习算法的一点思考和总结贪心算法难在他的证明,很多时候我们都是有一个感觉,然后去猜是否能用贪心做,借助几个实例去证明贪心算法的正确性。个人感觉自己对贪心的证明还不是很透彻,得多做点题悟一悟。这里暂时先不写贪心的证明了,等以后彻底搞懂了贪心再回来补上吧。
2023-12-21 21:31:30
906
1
原创 【基础算法笔记】最短路问题
堆优化中对冗余的处理,首先解释以下冗余的来源,代码中的for循环会把所有满足dist[j] > distance + w[i]的点都加进去,所以在更新最短路时,可能会将同一个点加到堆中。所以在下一次更新时需要用到上一次的dis存的数据,相当于是把遍历的最短路的过程分成多步进行。其本质是贪心算法,每次去找点的时候,都是找到与原点距离最短的点,然后去更新距离数组。被淘汰的点之后又会被加入队列是因为此时他的最短距离又被更新了,那么自然和他相连的节点距离也会更新,所以需要把他重新加入队列之中。
2023-12-18 18:44:06
420
原创 【数据结构笔记】栈(数组模拟栈,单调栈)
实现思路:创建一个严格单调递增的栈。即要对每一次对输入的数字进行判断,如果要加入的数字x要小于等于此时的栈顶元素,即stk[tt] >= x,则该栈顶元素不可能是答案,要将其弹出。而如果要加入的数字x要大于此时的栈顶元素,即stk[tt] < x,那么栈顶元素就是离它最近的比它小的值,直接输出stk[tt]。:模拟栈包括两个基本操作插入和弹出,体现在代码上就是,每次有元素要入栈时,指向栈顶的指针会随之后移,指向新加入的元素。:遵循“后进先出”的原则。即最后入栈的元素将首先被弹出。
2023-11-29 23:27:04
32
1
原创 【基础算法笔记】DFS(排列数字和n-皇后问题)
n-皇后问题本质上就是排列数字的问题,有点抽象,用文字不好解释,直接上草图。然后就是解决如何表示对角线的问题了,我们可以把n*n矩阵抽象成一个平面坐标系,同一条对角线一定会过同一个b (y=x+b)。在acwing(一个很不错的算法学习平台)学习算法与数据结构,有时候一些题目要花费很长时间去想,下面写写我在学习过程中的思考和心得。恢复原状态:设置一个状态数组st[N],用来表示该位置是否可以存放值。回溯:可以想象有一颗递归树,每次生成一个符合题意的结果后或者该情况不符合题意,就会返回到它的上一个节点。
2023-11-23 23:48:23
32
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人