自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(267)
  • 收藏
  • 关注

原创 Git Error 错误:Unlink of file ‘xxx‘ failed.Should I try again?

Git Error 报错:Unlink of file ‘xxx’ failed.Should I try again?

2024-02-21 21:31:08 372

原创 C语言 qsort() 快速排序函数用法详解

qsort() 排序规则: qsort() 默认是按照升序排序的, 根据 compare(element1, element2) 返回值,判断两个元素 element1 和 element2 的大小

2023-05-17 16:02:57 266 2

原创 LeetCode 5. Longest Palindromic Substring 最长回文子串 Java 极简

假设每个字符都是回文中心,然后以中心向两边延伸,寻找最大回文子串。如果有多个连续相同的字符,我们只需要把这些字符看作一个整体,当作回文的中心。因为多个连续相同的字符一定是回文子串,并且可以当作其他回文子串的中心。关键词:最长回文子串,中心扩展法又因为长度为偶数时,回文中心一定至少有两个连续相同的字符,所以奇数长度、偶数长度**不需要**区分。

2021-01-10 00:43:16 189

原创 LeetCode 4. Median of Two Sorted Arrays 寻找两个正序数组的中位数 Java 极简

因为是两个有序数组,所以我们可以从小到大遍历两个数组中的元素,当计数到达总数的一半时,即找到中位值。

2021-01-01 23:04:05 264 1

原创 LeetCode 3. Longest Substring Without Repeating Characters 无重复字符的最长子串 Java 极简

设计思路:滑动窗口1. 用两个指针指向子串的左右边界2. 用 Map 存储每个字符在子串中的位置3. 右指针每次向右移动一个字符 - 若哈希表中存在当前右指针所指字符,且大于左指针的位置, - 则左指针向右直接跳到哈希表记录的位置4. 记录每次子串的最大值

2020-11-28 21:47:26 140

原创 LeetCode 2. Add Two Numbers 两数相加 Java 极简

设计思路:- 遍历链表,从低位到高位相加,用 carry 保存进位- 注意 carry 保存的进位最后等于 1,说明两个数的最高位有进位

2020-11-28 21:43:13 180

原创 LeetCode 1. Two Sum 两数之和 Java 极简

设计思路:一次遍历,用哈希表存储遍历过的值和对应下标- 若 (j = target - nums[i]) 在哈希表中,则成功找到,返回结果- 若不在,则将当前值 nums[i] 存入哈希表,继续遍历

2020-11-21 22:03:15 142

原创 1155 Heap Paths (30point(s)) - C语言 PAT 甲级

* 按照由右到左 dfs 遍历完全二叉树,队列存储路径,遇到叶子节点输出路径* 判断大小顶堆,父节点一直比子节点大为大顶堆,父节点一直比子节点小为小顶堆,否则不是堆

2020-07-08 18:29:45 165

原创 1154 Vertex Coloring (25point(s)) - C语言 PAT 甲级

* 把图的所有边存起来* 每次查询,遍历每条边,检查颜色* 颜色的个数排序后去重

2020-07-08 18:28:44 153

原创 1153 Decode Registration Card of PAT (25point(s)) - C语言 PAT 甲级

* 排好序按要求输出

2020-07-08 18:27:23 573

原创 1152 Google Recruitment (20point(s)) - C语言 PAT 甲级

* 截取字符串,转换成数字,判断是否为素数

2020-07-08 18:26:58 222

原创 1151 LCA in a Binary Tree (30point(s)) - C语言 PAT 甲级

1151 LCA in a Binary Tree (30point(s))The lowest common ancestor (LCA) of two nodes U and V in a tree is the deepest node that has both U and V as descendants.Given any two nodes in a binary tree, you are supposed to find their LCA.Input Specification:

2020-07-08 18:26:31 126

原创 1150 Travelling Salesman Problem (25point(s)) - C语言 PAT 甲级

* 判断是否是 cycle,能否构成回路* 判读是否是 simple cycle,构成的回路,仅首尾节点相同* 判断是否是 TS,路径节点个数等于图节点个数 N + 1,因为首尾节点均是起点

2020-07-08 18:21:11 133

原创 1149 Dangerous Goods Packaging (25point(s)) - C语言 PAT 甲级

* 利用二分查找,没有不相容物品即可装箱

2020-07-08 18:19:27 194

原创 1148 Werewolf - Simple Version (20point(s)) - C语言 PAT 甲级

* 又是初看题目毫无头绪的题1. 数组 v[101] 记录每个人说的话2. 数组 a[101] 记录每次假设的实际身份,-1 为狼人,0 为好人3. 每次假设后遍历一次每个人说的话,若和假设的身份冲突,说明此人说谎,添加至 lie[101]4. 数组 lie[101] 最终有一个狼人和一个好人,则符合题目,否则,从第 2 步继续假设

2020-07-08 18:19:04 322 1

原创 1147 Heaps (30point(s)) - C语言 PAT 甲级

* 父节点一直比子节点大为大顶堆,父节点一直比子节点小为小顶堆,否则不是堆* 输出后序遍历

2020-07-08 18:18:36 109

原创 1146 Topological Order (25point(s)) - C语言 PAT 甲级

* 保存每个节点的入度* 当到达某节点时,将此节点能到达的节点入度减 1* 遍历所给序列节点时,有入度不为 0 的节点,说明不是拓扑排序

2020-07-08 18:10:57 134

原创 1145 Hashing - Average Search Time (25point(s)) - C语言 PAT 甲级

* 先更新 Msize 为第一个大于等于其本身的素数,表示真正的哈希表大小* 平方探测法插入 N 个数据* 查询 M 个数据的时间,就是指查找长度注意:* 查询时,j <= msize,正常来说 (a + 0 * 0) % msize 等价于 (a + msize * msize) % msize,所以不需要加等号* 但本题需要有等于号,是因为不加 PAT 后台过不了

2020-07-08 18:09:50 118

原创 1144 The Missing Number (20point(s)) - C语言 PAT 甲级

直接申请 <limits.h> 中 INT_MAX 大小的数组,居然 AC 了

2020-07-08 18:08:37 122

原创 1143 Lowest Common Ancestor (30point(s)) - C语言 PAT 甲级

* 先遍历一遍看看所给节点是否在二叉树中* 最低公共节点表示,两节点一定分别在最低公共节点左子树和右子树中* 因为是二叉搜索树,所以两节点是否在某节点的左右子树,可以用节点值的大小判断

2020-07-08 18:07:30 112

原创 1142 Maximal Clique (25point(s)) - C语言 PAT 甲级

对于每次所给的点集* 在点集中的点,循环判断是否两两相连 * 若是,则为 Clique, * 遍历不在点集中的点,看是否有点和 Clique 中的点均相连 * 若没有,则为 Maximal * 若有,则可以确定仅仅是 Clique * 否则,Not a Clique

2020-07-08 18:06:04 128 1

原创 1141 PAT Ranking of Institutions (25point(s)) - C语言 PAT 甲级

* 从题目上也可看出,又是一道排序题

2020-07-08 18:01:49 92

原创 1140 Look-and-say Sequence (20point(s)) - C语言 PAT 甲级

* 每次利用前一个字符串生成下一个字符串,难点似乎在于如何确定字符数组的大小(实际上,数组大小多提交几次就能知道了(╥﹏╥))?或者是我未体会到此题的精髓?* 求大佬解答_(┐「ε:)_

2020-07-08 18:01:12 139

原创 1139 First Contact (30point(s)) - C语言 PAT 甲级

* 记录关系图和性别* 循环遍历,记录符合条件的路径注意:* 不能直接按照整数读取,有 -0000 存在* 若起始节点和终节点本身是好友,应判断此种情况,避免循环提前结束

2020-07-08 17:55:55 474

原创 1138 Postorder Traversal (25point(s)) - C语言 PAT 甲级

后序遍历的第一个节点一定是最左最下的那个节点* 若左子树存在,则一定在左子树中* 若左子树不存在,右子树存在,则一定在右子树,即一定在右子树的左子树中* 若遍历到第一个叶节点,则为后序遍历的第一个节点

2020-07-08 17:53:05 117

原创 1137 Final Grading (25point(s)) - C语言 PAT 甲级

* 似乎又是一道排序题,处理好排序即可

2020-07-08 17:51:02 138

原创 1136 A Delayed Palindrome (20point(s)) - C语言 PAT 甲级

* 此题难点在于大数的相加。思路是让数组存数字时,个位数在数组低位 a[0] 上,此时两数相加可直接进位,省去进位移动数组的麻烦1. 读取初始值时特殊处理一次即可2. 利用自定义函数逆转数组,输出数组即可

2020-07-08 17:50:35 124

原创 1135 Is It A Red-Black Tree (30point(s)) - C语言 PAT 甲级

1. 因为是二叉搜索树,且给了先序序列,所以可以直接建立一颗二叉搜索树2. 判断题目所给红黑树需满足的条件,仅需判断 2、4、5 条件 1. 判断 2:根节点为黑 2. 判断 4:节点为红,孩子节点为黑 3. 判断 5:递归判断每个节点到叶子节点包含的黑节点个数

2020-07-08 00:15:35 652

原创 1134 Vertex Cover (25point(s)) - C语言 PAT 甲级

* 记录下 M 条边两边的端点号* 对每个集合的询问,遍历所有边是否满足端点至少有一个在集合中

2020-07-08 00:13:56 109

原创 1133 Splitting A Linked List (25point(s)) - C语言 PAT 甲级

1. 题目中链表的地址从小到大排列,故可以利用数组下标当链表地址2. 两个数组分别记录链表数据,链表 next 地址3. 遍历链表输出

2020-07-08 00:12:40 109

原创 1132 Cut Integer (20point(s)) - C语言 PAT 甲级

以字符串的形式读入数据 N* 分成前后两部分判断* 注意判断 A、B 不能为 0

2020-07-08 00:12:14 89

原创 1131 Subway Map (30point(s)) - C语言 PAT 甲级

每次询问,DFS 计算一次* v\[\]\[\] 记录地铁图,line\[\]\[\] 记录站点所在线路* path\[\] 记录最终路径,transfer\[\] 记录最终路径的线路编号* tpath\[\] 记录 dfs 过程中临时路径,ttransfer\[\] 记录 dfs 过程中临时路径的编号* 根据经停站个数最少,换乘次数最小,记录最终值输出

2020-07-08 00:10:39 235

原创 1130 Infix Expression (25point(s)) - C语言 PAT 甲级

输出中缀表达式,相当于中序遍历* 左子树或右子树存在,需要 `()` 把左右子树括起来* 把输出括号加入中序遍历

2020-07-08 00:07:23 226

原创 1129 Recommendation System (25point(s)) - C语言 PAT 甲级

* 利用数组记录每个编号询问的次数* 推荐位未满最大值 K,直接进入推荐位,排序输出* 推荐位已满最大值,仅需要和推荐位的末尾比较注意:* 每次询问过后,此编号的询问次数才能加 1* 所以第一次询问时,推荐位为空,什么也不输出* 题目中,K 最大为 10,所以排序最多只需要排 10 个数,最开始我直接全排序,然后直接超时

2020-07-08 00:05:58 120

原创 1128 N Queens Puzzle (20point(s)) - C语言 PAT 甲级

* 判断是否在同行、同列* 判断是否在同对角线:两个点的横坐标之差是否等于纵坐标之差

2020-07-08 00:04:30 117

原创 1127 ZigZagging on a Tree (30point(s)) - C语言 PAT 甲级

利用队列进行层序遍历,利用栈进行 Z 字型输出* 层序遍历,正常顺序入队* 偶数层出队,直接入栈,不打印* 奇数层出队前,先让栈中所有元素出栈,再出队并打印* 若树的最大层数为偶数,节点均出队后,栈中会有剩余元素未输出,所以用队列遍历完后,要把栈中剩余元素打印

2020-07-08 00:03:22 566

原创 1126 Eulerian Path (25point(s)) - C语言 PAT 甲级

关键词:欧拉图,并查集先用并查集判断是否为联通图,若是连通图再继续判断欧拉图1. Eulerian(欧拉图):联通图,每个节点度为偶数2. Semi-Eulerian(半欧拉图):连通图,只有两个节点度为奇数,其他均为偶数3. Non-Eulerian:既不是欧拉图也不是半欧拉图

2020-07-08 00:01:47 129

原创 1125 Chain the Ropes (25point(s)) - C语言 PAT 甲级

1. 用数组下标表示绳子长度2. 用数组记录每种长度绳子的个数3. 由最小值开始折叠绳子,完毕即为最大值* 感谢 OliverLew (LuXu) 大佬:https://oliverlew.github.io/PAT/Basic/1070.html

2020-07-08 00:00:33 497

原创 1124 Raffle for Weibo Followers (20point(s)) - C语言 PAT 甲级

1. 用数组记录获奖人的姓名2. 用 s + count x n + r 计算中奖人的号码

2020-07-08 00:00:08 75

原创 1123 Is It a Complete AVL Tree (30point(s)) - C语言 PAT 甲级

* 建树直接上 AVL 代码* 层序遍历用队列遍历* 判断完全二叉树 * 若一个节点没有孩子节点,则这个节点后的所有节点也没有孩子节点,即为完全二叉树 * 否则不是完全二叉树

2020-07-07 23:59:42 676

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除