随笔分类 - 算法
摘要:PAT乙级: 1064 朋友数 (20分) 题干 如果两个整数各位数字的和是一样的,则被称为是“朋友数”,而那个公共的和就是它们的“朋友证号”。例如 123 和 51 就是朋友数,因为 1+2+3 = 5+1 = 6,而 6 就是它们的朋友证号。给定一些整数,要求你统计一下它们中有多少个不同的朋友证
阅读全文
摘要:PAT乙级: 1076 Wifi密码 (15分) 题干 下面是微博上流传的一张照片:“各位亲爱的同学们,鉴于大家有时需要使用 wifi,又怕耽误亲们的学习,现将 wifi 密码设置为下列数学题答案:A 1;B 2;C 3;D 4;请同学们自己作答,每两日一换。谢谢合作!!~”—— 老师们为了促进学生
阅读全文
摘要:PAT乙级: 1063 计算谱半径 (20分) 题干 在数学中,矩阵的“谱半径”是指其特征值的模集合的上确界。换言之,对于给定的 n 个复数空间的特征值 { a 1+ b 1 i ,⋯, a n + b n i },它们的模为实部与虚部的平方和的开方,而“谱半径”就是最大模。 现在给定一些复数空间的
阅读全文
摘要:PAT乙级: 1077 互评成绩计算 (20分) 在浙大的计算机专业课中,经常有互评分组报告这个环节。一个组上台介绍自己的工作,其他组在台下为其表现评分。最后这个组的互评成绩是这样计算的:所有其他组的评分中,去掉一个最高分和一个最低分,剩下的分数取平均分记为 G 1;老师给这个组的评分记为 G 2。
阅读全文
摘要:PAT乙级: 1061 判断题 (15 分) 题干 判断题的评判很简单,本题就要求你写个简单的程序帮助老师判题并统计学生们判断题的得分。 输入格式: 输入在第一行给出两个不超过 100 的正整数 N 和 M,分别是学生人数和判断题数量。第二行给出 M 个不超过 5 的正整数,是每道题的满分值。第三行
阅读全文
摘要:PAT乙级: 1087 有多少不同的值 (20分) 当自然数 n 依次取 1、2、3、……、 N 时,算式 ⌊ n /2⌋+⌊ n /3⌋+⌊ n /5⌋ 有多少个不同的值?(注:⌊ x ⌋ 为取整函数,表示不超过 x 的最大自然数,即 x 的整数部分。) 输入格式: 输入给出一个正整数 N (2≤
阅读全文
摘要:Leetcode: "169. 多数元素" "传送门" 思路 1. 一开始想到的一个很简单的做法就是hash法,直接利用打表记录次数再输出结果。 2. 而利用BM算法可以令算法复杂度同样也在$O(n)$的情况下,将空间复杂度也下降到1(好像也叫投票法) 3. 不谈证明,谈谈理解: 如果一个数是众数,
阅读全文
摘要:Leetcode: "1305. 两棵二叉搜索树中的所有元素" Leetcode: "1305. 两棵二叉搜索树中的所有元素" 思路 1. BST树中序历遍 有序 。 2. 利用双指针法可以在$O(n)$的复杂度内完成排序。 基于上述两个点,可以很简单的做出这道题。 1. 先中序历遍得到两个有序的数
阅读全文
摘要:Leetcode春季打卡第四天: "994. 腐烂的橘子" Leetcode春季打卡第四天: "994. 腐烂的橘子" 思路 1. 思路是采用广度优先搜索,一层一层遍历。 2. 首先先扫描矩阵,将坏橘子放进队列,记录正常橘子的个数。 3. 正常橘子个数为零,直接返回0 4. 不为零就开始BFS 5.
阅读全文
摘要:Leetcode: "1008. 先序遍历构造二叉树" Leetcode: "1008. 先序遍历构造二叉树" 思路 既然给了一个遍历结果让我们建树,那就是要需要前序中序建树咯~ 题目给的树是一颗BST树,说明中序历遍是有序的。最简单的想法自然是先排序再建树。 但是排序似乎是不需要的,因为BST左子
阅读全文
摘要:Leetcode: "230. 二叉搜索树中第K小的元素" Leetcode: "230. 二叉搜索树中第K小的元素" 思路: 利用BST的中序历遍的结果为其排序后的结果,我们可以利用其特性直接找到第k个中序遍历元素,即为问题答案。 Talk is cheap . Show me the code
阅读全文
摘要:Leetcode春季活动打卡第三天: "面试题 10.01. 合并排序的数组" Leetcode春季活动打卡第三天: "面试题 10.01. 合并排序的数组" 思路 这道题,两个数组原本就有序。于是我们采用双指针法完成题目。 又由于A本身就预留了足够的空间,于是我们的双指针就逆向执行,即从大到小移动
阅读全文
摘要:Leetcode春季打卡活动 第二题: "206. 反转链表" "206. 反转链表" Talk is cheap . Show me the code .
阅读全文
摘要:Leetcode 春季打卡活动 第一题: "225. 用队列实现栈" Leetcode 春季打卡活动 第一题: "225. 用队列实现栈" 解题思路 这里用了非常简单的思路,就是在push函数上做点操作,让队头总是最后一个元素即可。 也就是说,每新进一个新元素,就把前面的所有元素逐个弹出放到队尾即可
阅读全文
摘要:Leetcode: "面试题68 II. 二叉树的最近公共祖先" Leetcode: "面试题68 II. 二叉树的最近公共祖先" Talk is cheap . Show me the code .
阅读全文
摘要:Leetcode: "637. 二叉树的层平均值" Leetcode: "637. 二叉树的层平均值" Talk is cheap . Show me the code .
阅读全文
摘要:Leetcode: "面试题28. 对称的二叉树" Leetcode: "面试题28. 对称的二叉树" Talk is cheap . Show me the code .
阅读全文
摘要:Leetcode: "面试题55 II. 平衡二叉树" Leetcode: "面试题55 II. 平衡二叉树" Talk is cheap . Show me the code .
阅读全文
摘要:Leetcode: "559. N叉树的最大深度" Leetcode: "559. N叉树的最大深度" Talk is cheap . Show me the code .
阅读全文
摘要:Leetcode: "700. 二叉搜索树中的搜索" Leetcode: "700. 二叉搜索树中的搜索" Talk is cheap . Show me the code . 递归写法: 迭代写法:
阅读全文

浙公网安备 33010602011771号