![](https://img-blog.csdnimg.cn/20190927151132530.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
数据结构与算法
文章平均质量分 65
数据结构题目
Yozu_Roo
这个作者很懒,什么都没留下…
展开
-
2021/3/15 试题 算法训练 数的划分(动态规划)
【练习时间】2021/3/15【题目名称】试题 算法训练 数的划分资源限制时间限制:1.0s 内存限制:256.0MB问题描述 将整数n分成k份,且每份不能为空,任意两份不能相同(不考虑顺序)。 例如:n=7,k=3,下面三种分法被认为是相同的。 1,1,5; 1,5,1; 5,1,1; 问有多少种不同的分法。输入格式 n,k输出格式 一个整数,即不同的分法样例输入7 3样例输出4 {四种分法为:1,1,5;1,2,4;1,3,3;2,2,3;}数据规模和约原创 2021-03-15 09:43:35 · 476 阅读 · 1 评论 -
2021/3/14 算法入门——贪心算法之会议安排问题
【学习时间】2021/3/14【题目名称】会议安排(1)对于每个会议i,起始时间bi和结束时间ei,且bi<ei(2)[bi,ei)与[bj,ej)不相交,则会议i和会议j相容,bi≥ej或bj≥ei目标:在有限的时间内,尽可能多地安排会议。【贪心策略】(1)选最早开始的会议 (缺点:会议可能持续时间长)(2)选持续时间最短的会议(缺点:会议可能开始地晚)(3)选择最早结束的会议【解决过程】(1)初始化:按结束时间非递减排序,若结束时间相等,则按开始时间非递增排序。(2)选中第一原创 2021-03-14 15:29:10 · 345 阅读 · 0 评论 -
【889. 根据前序和后序遍历构造二叉树】c++通俗理解版
889. 根据前序和后序遍历构造二叉树【题目描述】给定两个整数数组,preorder 和 postorder ,其中 preorder 是一个具有 无重复 值的二叉树的前序遍历,postorder 是同一棵树的后序遍历,重构并返回二叉树。如果存在多个答案,您可以返回其中 任何 一个。【示例 1】输入:preorder = [1,2,4,5,3,6,7], postorder = [4,5,2,6,7,3,1]输出:[1,2,3,4,5,6,7]【示例 2】输入: preorder = [1],原创 2022-03-04 16:06:19 · 538 阅读 · 0 评论 -
【剑指 Offer II 003. 前 n 个数字二进制中 1 的个数】Brian Kernighan 算法
剑指 Offer II 003. 前 n 个数字二进制中 1 的个数给定一个非负整数 n ,请计算 0 到 n 之间的每个数字的二进制表示中 1 的个数,并输出一个数组。示例 1:输入: n = 2输出: [0,1,1]解释:0 --> 01 --> 12 --> 10示例 2:输入: n = 5输出: [0,1,1,2,1,2]解释:0 --> 01 --> 12 --> 103 --> 114 --> 1005 --&g原创 2022-03-02 19:38:49 · 89 阅读 · 0 评论 -
KMP算法详解,宏观思路+微观细节
KMP算法详解,宏观思路+微观细节本文从三个大层面解释KMP算法,附有图表和公示,便于理解逻辑和分析参考blog:【数据结构】串的模式匹配-KMP算法原创 2022-02-27 09:03:26 · 311 阅读 · 0 评论 -
2020/3/27 图论 岛国问题(Prim算法简单易懂版)
【练习时间】2020/3/27【什么是Prim算法?】最小生成树Prim算法理解【题目名称】岛国问题【问题描述】一家互联网服务商(简称PIN)在太平洋上发现了几座新岛屿,其中最大的一个岛(称为主岛)已经连接到Internet,但是其他岛和主岛之间没有光缆连接,所以无法上网。为了让所有岛上的居民都能上网,每个岛和主岛之间都必须有直接或者间接的光缆连接。下图就是这样的一个岛屿,每条实线表示一根光缆,它的长度等于两个岛屿中心位置(路由器位置)的几何距离,图上的数字是该岛上的居民数量。为了节省成本,所有原创 2021-03-27 20:01:08 · 1247 阅读 · 0 评论 -
2021/3/26 Dijkstra最短路径算法(代码量少、未使用类)
本文依据“街区最短路径”这一问题讲解并实现Dijkstra算法(未建立类,代码量较少)参考博文:最短路径问题—Dijkstra算法详解最短路径问题—Dijkstra算法详解算法特点:迪科斯彻算法使用了广度优先搜索解决赋权有向图或者无向图的单源最短路径问题,算法最终得到一个最短路径树。该算法常用于路由算法或者作为其他图算法的一个子模块。算法的思路Dijkstra算法采用的是一种贪心的策略,声明一个数组dis来保存源点到各个顶点的最短距离和一个保存已经找到了最短路径的顶点的集合:T,初始时,原点 s原创 2021-03-26 11:00:35 · 137 阅读 · 0 评论 -
2021/3/16 求二叉树的宽度(易理解好实现)
【练习时间】2021/3/16【题目名称】求二叉树的宽度【问题描述】以二叉链表为存储结构,编写算法求二叉树的宽度(具有结点数最多的那一层上的节点个数)。【输入形式】两行,第一行是扩展二叉树的前序遍历序列。【输出形式】二叉树的宽度。【样例输入】AB#D##C##【样例输出】2【思路分析】我采用的思路是在构造树之后,设置该节点的孩子节点的个数,并将其一起封装起来存储到结构体中,然后采用层序遍历的方法,将该节点左孩子的孩子节点个数和该节点右孩子的孩子节点个数相加,与当前最大值比较,最终输出的最原创 2021-03-16 16:02:18 · 705 阅读 · 1 评论 -
2021/3/16 求二叉树中值为x的结点的层号
【练习时间】2021/3/16【题目名称】 求二叉树中值为x的结点的层号【问题描述】以二叉链表为存储结构,编写算法求二叉树中值为x的结点的层号。【输入形式】两行,第一行是扩展二叉树的前序遍历序列,第二行是待查询结点x【输出形式】值为x的结点所在层号。根结点所在层记为第1层。【样例输入】AB#D##C##D【样例输出】3【思路分析】我们首先会考虑到如果一个节点是某一个节点的左子树或右子树上的节点,那么这个节点的层数应该是上一个节点层数+1;但是当我们编译实现的时候发现,根节点的左右子原创 2021-03-16 15:38:09 · 2743 阅读 · 0 评论 -
2021/2/26 单链表应用------一元多项式
单链表应用------一元多项式【学习时间】2021/2/26【题目名称】单链表应用------一元多项式【问题描述】编写一个程序用单链表存储多项式,并实现两个一元多项式A与B相加的函数。A,B刚开始是升序的,A与B之和按降序排列。例如: 多项式A: 1.2X^0 2.5X^1 3.2X^3 -2.5X^5 多项式B: -1.2X^0 2.5X^1 3.2X^3 2.5X^5 5.4X^10 多项式A与B之和:5.4X^10 6.4X^3 5X^1原创 2021-03-03 14:30:47 · 943 阅读 · 0 评论