
算法
文章平均质量分 80
翼蛇湖-纪宁
大二在读,目标腾讯后端开发,攻克乃还!
展开
-
有向图的拓扑排序
当有向图中,某个点的入度为 0 的时候,说明是没有一个点指向这个点的,那这个点就能作为起点指向其他点了,遍历结束后,这个点就可以删掉了(将 t 放在当前的最前面了),并将它指向的所有点的入度都减 1。此题只需要记录每个人物最快完成的时间即可:将所有入度为 0 的点放入队列,然后遍历所有出边,将遍历到的点的入度都减1,当一个点的入度减到 0 的时候,就可以加入队列。比如:生成一个可执行程序,需要经历预处理,编译,汇编,链接四步,后面的步骤必须在前面的步骤完成后才能执行。原创 2024-05-31 23:02:52 · 642 阅读 · 0 评论 -
背包问题汇总(01背包、完全背包、多重背包、分组背包)
背包问题汇总(01背包、完全背包、多重背包、分组背包) 背包问题是一个经典的组合优化问题,在计算机科学和应用数学中被广泛研究。给定一组物品,每种物品有自己的重量和价值,在限定的总重量内,选择其中若干个物品装入背包,使得装入背包中的物品总价值最大。原创 2024-05-29 16:27:09 · 665 阅读 · 0 评论 -
高精度算法(加减乘除)
高精度算法:用数组模拟 “大数运算”,实现大数的加减乘除原创 2024-05-28 19:46:03 · 344 阅读 · 0 评论 -
最小生成树 & 最近公共祖先模板
Prim 算法在稠密图中求最小生成树,Kruskal 算法适用于 `稀疏图` 求最小生成树(利用并查集),Tarjan 算法用于求并快速查询两个节点的最近公共祖先。原创 2024-05-24 09:44:46 · 579 阅读 · 0 评论 -
最短路问题算法模板
最短路问题 代码模板 Dijkstra、Bellman-ford、spfa、Floyd 等最短路问题算法模板原创 2024-05-20 19:34:29 · 966 阅读 · 2 评论 -
数组模拟实现链表
数组模拟实现单链表、双链表。数组模拟实现的作为算法中树和图常见的存储结构。原创 2024-05-02 20:17:52 · 715 阅读 · 6 评论 -
动态规划——最长递增子序列模板
最长递增子序列是指在一个序列中找到一个最长的子序列,使得子序列中的元素按照从小到大的顺序排列,本文讲解动态规划解决原创 2024-04-21 23:12:17 · 342 阅读 · 0 评论 -
01背包和完全背包(背包价值最大和背包恰好装满的价值最大)
你的背包~ 让我走的好缓慢—— 01 背包,完全背包问题 (价值最大和恰好装满并体积最大)代码模板原创 2024-04-21 20:06:24 · 780 阅读 · 0 评论 -
算法总结篇——BFS
BFS是广度优先搜索(Breadth-First Search)的缩写,是一种图遍历算法。它从给定的起始节点开始,逐层地向外扩展,先访问起始节点的相邻节点,然后再访问相邻节点的相邻节点,以此类推,直到遍历完所有可达节点。创建一个队列,并将起始节点入队;将起始节点标记为已访问;当队列不为空时,循环执行以下操作: a. 出队一个节点;b. 访问该节点;c. 将该节点的所有未访问相邻节点入队,并标记为已访问;遍历完成。原创 2024-04-21 16:54:33 · 5493 阅读 · 0 评论 -
算法总结篇 —— DFS(搜索、递归、回溯)
递归,回溯,搜索等算法详解及模板总结。原创 2024-04-21 16:04:10 · 1919 阅读 · 0 评论 -
2024年团队程序设计天梯赛模拟赛 L1 + L2
2024年团队程序设计天梯赛模拟赛 L1 ~ L2 题目及代码(除撒狗粮)原创 2024-04-17 22:45:46 · 2078 阅读 · 11 评论 -
天梯赛模拟赛 L2 —— 含茶量
ChatGPT(全名:Chat Generative Pre-trained Transformer)近期成为网络讨论的热点话题之一。本题就请你根据某社交网络中发帖的情况,统计每个人帖子中含有ChatGPT(不区分大小写)的数量(简称“含茶量”),找出最热衷于讨论这个话题的人,即含茶量排前三的人。原创 2024-04-16 23:31:14 · 2034 阅读 · 15 评论 -
第十五届蓝桥杯省赛C/C++大学B组真题及赛后总结
第十五届蓝桥杯省赛C/C++大学B组真题及赛后总结 个人总结:力扣刷了 200 多道题,感觉还是寄了。刷最多的动态规划没考,dfs 最后一步不会还是没做出来,很可惜...原创 2024-04-14 19:47:38 · 14377 阅读 · 32 评论 -
动态规划刷题总结(入门)
动态规划(dp)是一种通过把原问题分解为相对简单的子问题的方式求解复杂问题的算法。动态规划常常适用于有重叠子问题和最优子结构性质的问题,动态规划方法所耗时间往往远少于朴素解法。原创 2024-03-11 21:57:36 · 1238 阅读 · 0 评论 -
【刷题】模拟
模拟类算法题。模拟算法:题目中已经告诉应该怎么做了,只需要模拟即可,思路比较简单,比较考察代码能力。一般先在草稿纸上模拟流程,如果直接写代码,容易忽视细节,并且不容易调试!优化策略:找规律!原创 2024-03-02 20:35:30 · 423 阅读 · 0 评论 -
【刷题】位运算
位运算的相关算法题。 ^ 异或运算是:两个数对应比特位相同为0,相异为1,也叫 不进位相加。只需要利用按位异或运算符进行不进位相加运算,然后每次加上它的进位即可!直到进位为0!原创 2024-03-01 22:35:15 · 489 阅读 · 0 评论 -
二叉树算法题
二叉树面试笔试算法题 很多二叉树的算法题,都是根据递归和回溯来设计的!!所以,必须掌握递归原创 2024-01-07 22:01:57 · 970 阅读 · 0 评论 -
前缀和算法模板(含代码模板)
前缀和算法模板 算法用途:快速求出数组中某一连续区间的和 一维前缀和 二维前缀和 算法模板及推导(注:vector开具体大小空间的定义方式)原创 2024-01-05 23:15:34 · 1226 阅读 · 0 评论 -
二分查找(二)
二分查找算法刷题原创 2024-01-04 10:02:46 · 1209 阅读 · 0 评论 -
二分查找原理及通用模板
当一个序列有“二段性”的时候,就可以使用二分查找算法。根据规律找一个点,能将这个数组分成两部分,根据规律能有选择性的舍去一部分,进而在另一个部分继续查找。除了最普通的二分查找,剩余的二分查找都是以 left == right 为结束条件。找中点 mid方法循环判断结束方法,找左边界和右边界的思路原创 2024-01-03 23:11:54 · 867 阅读 · 0 评论 -
滑动窗口(二)
滑动窗口结合哈希表原创 2023-12-26 11:49:48 · 822 阅读 · 0 评论 -
滑动窗口算法模板及简单样例
什么是滑动窗口算法?通俗的来讲就是 “同向双指针” ,当一组数据的规律含有单调性的时候,就可以使用下面这套逻辑来优化暴力解法。当两个指针同向移动的时候,类似于一个窗口在滑动。使用于在连续序列里找特殊的子串、子数列、子数组等。下面将用一道题来解释上面的逻辑。原创 2023-12-18 21:56:25 · 1539 阅读 · 1 评论 -
双指针算法简介及样例
双指针算法是通过定义两个指针不断单向移动来解决问题的一种算法。但双指针算法,是一个抽象的思想概念,可以用来解决数组划分、数组分块等问题。它通常并不是真的定义两个指针,例如在 vector、string 中就经常通过下标来充当指针。原创 2023-12-14 20:09:05 · 881 阅读 · 0 评论 -
双指针算法(二)
给你一个整数数组nums,判断是否存在三元组满足i!= ji!= k且j!= k,同时还满足。请你返回所有和为0且不重复的三元组。答案中不可以包含重复的三元组。思路:先排序,保证数组不降序排列(从左往右一次固定一个数 tmp ,在右边使用双指针算法,找到两个数的和等于 - tmp 的情况(等价于三个数的和等于0),找到之后不停止,继续遍历,直至找到固定数为 tmp 的情况下的所有情况,右移 tmp 位置,直至 tmp 到达区间的最倒数第三个位置。原创 2023-12-18 20:39:34 · 497 阅读 · 1 评论