04 2021 档案
摘要:暴力匹配就不说了,说说KMP。 KMP算法思想: 第一步:根据模式串(needle)得出next数组。 第二步:匹配主串,但在匹配主串时,遇到冲突位置时,不是立即和暴力匹配一样直接从头匹配。而是查看next数组,得到一个回退位置,从此处再开始匹配。 重复第二步,直至匹配成功或者匹配失败。 next数
阅读全文
摘要:题目意思就是说判断s1能否经过题目所说的算法得到s2。 题目中的算法处理的位置为随机,所以复现算法基本无法得到s2 那么只能搜索了。 分析: 初始时:如果s1==s2,直接返回true。 对于一个字符串s1,在随机位置分割s1,那么我们只能遍历s1,假设当前位置为分割处,然后进行后续操作,来判断是否
阅读全文
摘要:这个题主要解法和1是一样的,都是动态规划,建立一个2xn的二维数组,一行表示偷,一行表示不偷。 递推公式: i号房子偷,那么i-1号房子必不能偷,i号房子不偷,则当前最大金额值为偷到i-1号房子时偷和不偷的最大值 当前房子选择偷:dp[1][i] = dp[0][i-1] 当前房子不偷:dp[0][
阅读全文
摘要:前序遍历 + 中序遍历 = 可复原树 后序遍历 + 中序遍历 = 可复原树 前序遍历 + 后序遍历 = 不可 分析: 前序遍历第一个值即为根节点,但是无法知道左子树有几个节点,也就确定不了左右子树 中序遍历如果能知道根节点,就能知道左子树、右子树各自节点数。 组合两者,由前序得到根节点,再由中序判别
阅读全文
摘要:前缀树又称字典树,每颗节点结构与一般树有一点不同。 一般树节点 struct TreeNode { valueType val; vector<TreeNode*> next;//个数不固定,个数代表一个节点有多少个子节点 } 本题前缀树节点 struct TrieNode { bool isEnd
阅读全文
摘要:作业任务: 填写并调用函数 rasterize_triangle(const Triangle& t)。 即实现光栅化 该函数的内部工作流程如下: 创建三角形的 2 维 bounding box。 遍历此 bounding box 内的所有像素(使用其整数索引)。然后,使用像素中 心的屏幕空间坐标来
阅读全文
摘要:PS:(感觉这题名字和内容有歧义) 要求得到任意不同节点值之间的最小差值。 本身二叉树是有序的,又找最小差值,其实就是相当于在一个有序数组中找到每相邻两数之间最小差值。 朴素思想: 中序遍历树,把值都塞到数组里,然后遍历数组,得到最小差值。 改良: 中序遍历树时,依次得到的数已经是有序的,只需在遍历
阅读全文
摘要:简单说 就是将数组里的几个数拼起来,组合成最大的数 分析: 实际上就是要排个序,然后组合起来返回 一说排序,就想到std::sort 关键是怎么比? 其实要获得最大数,这个最大的数进行to_string得到的字典序也会是最大的! 这么一来就很好办了,就把两数的to_string结果正反相加,比较最大
阅读全文
摘要:作业目标: get_model_matrix(float rotation_angle): 逐个元素地构建模型变换矩阵并返回该矩阵。在此函数中,你只需要实现三维中绕 z 轴旋转的变换矩阵,而不用处理平移与缩放 get_projection_matrix(float eye_fov, float as
阅读全文
摘要:作业描述: 给定一个点 P=(2,1), 将该点绕原点先逆时针旋转 45◦,再平移 (1,2), 计算出 变换后点的坐标(要求用齐次坐标进行计算)。 C++用的弧度制,所以 //右手坐标系,右边x正半轴,上面y正半轴,前面z负半轴 double theta = (45.0/180.0)*PI;//#
阅读全文
摘要:一开始乍一看题,首先就想到了之前做的一个求质数的题,采用的过滤的方式,将已经确定的质数,排除掉这些质数的倍数值。 再仔细一看题给的输入,发现给的不是范围值,就只好想其他办法。 朴素的想法是遍历每个数,判断是否是丑数,是,++count;直到count==n为止。结果就是运行超时。 朴素的想法是遍历每
阅读全文

浙公网安备 33010602011771号