
数据结构与算法
文章平均质量分 67
分享自己在Leetcode和PTA、CCF认证上的算法题目~
硕欧巴
这个作者很懒,什么都没留下…
展开
-
Leetcode-数据结构-动态规划-1
Leetcode-数据结构-动态规划-1原创 2022-02-24 15:56:15 · 417 阅读 · 0 评论 -
满足考研角度理解数据结构的连通图、极大连通子图等概念
连通图、极大连通子图、连通分量、生成树文章目录连通图、极大连通子图、连通分量、生成树一、无向图1. 连通图2. 极大连通子图、连通分量3. 极小连通子图、生成树一、无向图1. 连通图在一个无向图 G 中,若从顶点 i 到顶点 j 有路径相连(当然从 j 到 i 也一定有路径),则称 i 和 j 是连通的。如果图中任意两点都是连通的,那么图被称作连通图。2. 极大连通子图、连通分量极大连通子图要根据例子理解:case 1:该图本身就是一个连通图,则极大连通子图就是它自己。case 2:该原创 2021-11-21 10:26:47 · 4124 阅读 · 0 评论 -
数据结构习题和总结
二叉树前言一、二叉树篇题目一 完全二叉树结点前言留作日后回顾和总结一、二叉树篇题目一 完全二叉树结点一 棵有124个叶子结点的完全二叉树,最多有()个结点A, 247B. 248C. 249D. 250选 B 。首先,我们知道非空二叉树有性质:叶子节点数 = 度为 2 的节点数 + 1我们可以尝试确定一下该树的大致形状。树的第七层共有节点 2 ^ 6 = 64 个,达不到叶子数为 124 的要求,第八层共有节点 2 ^ 7 = 128个。如果第 7 层全是分支节点的话,第 8原创 2021-11-17 15:05:32 · 455 阅读 · 0 评论 -
[LeetCode 组合总和Ⅲ No.216] 题解心得
前言最近忙着六级,而且正在准备CCF认证,所以今天的文章就简单些吧,直接捞干的。一、题目描述二、理解一见面,又是数字组合,昨天刚刚写的一篇文章关于数字组合,并且那个题目里有重复数字,比较麻烦,但是这个题目中没有重复数字,比较简单。所以,我们可以继续沿用回溯的方法解决问题。因为本题的结果可以通过暴力枚举进行解决,所以符合回溯中的有限最优解寻找。三、代码退出条件:当找到三个数字组合满足条件时,程序会再次调用dfs算法,可以反推可知,退出条件是k == 0 而不是 k == 1。对于剪枝中原创 2020-09-11 16:02:16 · 169 阅读 · 0 评论 -
[LeetCode No.40 组合总和 II] 回溯算法的应用
一、文章脉络题目介绍简单分析“回溯”知识学习具体问题的分析及代码实现二、题目介绍给定一个数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的每个数字在每个组合中只能使用一次。说明:所有数字(包括目标数)都是正整数。解集不能包含重复的组合。示例 1:输入: candidates = [10,1,2,7,6,1,5], target = 8,所求解集为:[ [1, 7],转载 2020-09-10 21:48:48 · 185 阅读 · 0 评论 -
CCF认证201703考题
问题描述解决方案:[1] 理解问题:从小明的角度看,他只负责发蛋糕。从小朋友的角度看,如果重量>=K则欢喜离开,如果重量<K但是蛋糕发完了,发蛋糕依旧结束。[2] 计划方案:将所有的蛋糕存入数组。依次取出蛋糕,如果重量累计>=K,则分得的人数+1,如果重量不足K,仍记1。Java版实现package CCF认证;import java.util.*;public class Cake { public static void main(Strin原创 2020-09-09 19:59:51 · 230 阅读 · 0 评论 -
猜近似数字 Java版
520 钻石争霸赛 猜近似数字https://pintia.cn/problem-sets/1259839299727368192/problems/1259850789826048002题目描述甲想好了一个 n 位数字让乙来猜,只要猜的数字位数正确,至多有 1 位与谜底不同,且不同的数字相差不超过 1,就算猜对了。例如谜底是 67,若乙猜 66、68、77、57,就都算对了;猜 167 就不能算对。输入格式:输入首先在第一行给出一个不超过 1000 位数的、最高位不是 0 的正整数,是甲给出原创 2020-05-23 08:11:09 · 223 阅读 · 0 评论 -
习题8.5 畅通工程之局部最小花费问题
浙大版《数据结构(第2版)》题目集习题8.5 畅通工程之局部最小花费问题https://pintia.cn/problem-sets/434/problems/6542某地区经过对城镇交通状况的调查,得到现有城镇间快速道路的统计数据,并提出“畅通工程”的目标:使整个地区任何两个城镇间都可以实现快速交通(但不一定有直接的快速道路相连,只要互相间接通过快速路可达即可)。现得到城镇道路统计表,表中列出了任意两城镇间修建快速路的费用,以及该道路是否已经修通的状态。现请你编写程序,计算出全地区畅通需要的最低成本。原创 2020-05-22 22:47:02 · 526 阅读 · 0 评论 -
特立独行的幸福数
特立独行的幸福数https://pintia.cn/problem-sets/1235600536523538432/problems/1247339313978294273对一个十进制数的各位数字做一次平方和,称作一次迭代。如果一个十进制数能通过若干次迭代得到 1,就称该数为幸福数。1 是一个幸福数。此外,例如 19 经过 1 次迭代得到 82,2 次迭代后得到 68,3 次迭代后得到 100,最后得到 1。则 19 就是幸福数。显然,在一个幸福数迭代到 1 的过程中经过的数字都是幸福数,它们的幸原创 2020-05-22 22:43:57 · 3265 阅读 · 0 评论 -
猜近似数字
520 钻石争霸赛 猜近似数字https://pintia.cn/problem-sets/1259839299727368192/problems/1259850789826048002题目描述甲想好了一个 n 位数字让乙来猜,只要猜的数字位数正确,至多有 1 位与谜底不同,且不同的数字相差不超过 1,就算猜对了。例如谜底是 67,若乙猜 66、68、77、57,就都算对了;猜 167 就不能算对。输入格式:输入首先在第一行给出一个不超过 1000 位数的、最高位不是 0 的正整数,是甲给出原创 2020-05-22 22:36:50 · 507 阅读 · 0 评论 -
最长连续递增子序列
7-4 最长连续递增子序列 (25分)https://pintia.cn/problem-sets/1235600536523538432/problems/1241311307840757763给定一个顺序存储的线性表,请设计一个算法查找该线性表中最长的连续递增子序列。例如,(1,9,2,5,7,3,4,6,8,0)中最长的递增子序列为(3,4,6,8)。输入格式:输入第1行给出正整数n(≤10^5);第2行给出n个整数,其间以空格分隔。输出格式:在一行中输出第一次出现的最长连续递增子序列原创 2020-05-19 11:09:02 · 422 阅读 · 0 评论 -
银行业务队列简单模拟
银行业务队列简单模拟设某银行有A、B两个业务窗口,且处理业务的速度不一样,其中A窗口处理速度是B窗口的2倍 —— 即当A窗口每处理完2个顾客时,B窗口处理完1个顾客。给定到达银行的顾客序列,请按业务完成的顺序输出顾客序列。假定不考虑顾客先后到达的时间间隔,并且当不同窗口同时处理完2个顾客时,A窗口顾客优先输出。输入格式:输入为一行正整数,其中第1个数字N(≤1000)为顾客总数,后面跟着N位顾客的编号。编号为奇数的顾客需要到A窗口办理业务,为偶数的顾客则去B窗口。数字间以空格分隔。输出格式:按业务原创 2020-05-19 11:06:38 · 907 阅读 · 0 评论 -
#图# 克鲁斯卡尔 与 并查集
#图# 克鲁斯卡尔 与 并查集最近有一道数据结构的习题使用到了这两个知识点。简单总结一下。克鲁斯卡尔算法可以解决的问题:无向网的最小生成树。算法思想:贪心。在对问题求解时,总是做出在当前看来是最好的选择。算法步骤:所有的边按权值从小到大排序。选择权值边中当前最小的权值边。判断已选择的边是否在已选好的边构成的连通分量。若不在,则加入。(写的太简略了,有点抽象...原创 2020-04-28 21:37:21 · 333 阅读 · 0 评论