随笔分类 - 算法
摘要:一、题目: 给定一个二叉树,找到最长的路径,这个路径中的每个节点具有相同值。 这条路径可以经过也可以不经过根节点。 注意:两个节点之间的路径长度由它们之间的边数表示。 示例 1: 输入: 5 / \ 4 5 / \ \ 1 1 5 输出: 2 示例 2: 输入: 1 / \ 4 5 / \ \ 4
阅读全文
摘要:题目: 泰波那契序列 Tn 定义如下: T0 = 0, T1 = 1, T2 = 1, 且在 n >= 0 的条件下 Tn+3 = Tn + Tn+1 + Tn+2 给你整数 n,请返回第 n 个泰波那契数 Tn 的值。 示例 1: 输入:n = 4 输出:4 解释: T_3 = 0 + 1 + 1
阅读全文
摘要:扩展欧几里得定理 扩展欧几里得定理(Extended Euclidean algorithm, EXGCD),常用于求ax+by=gcd(a,b) 的一组可行解。 将 不断代入递归求解直至 (最大公约数,下同)为 0 递归 x=1,y=0 回去求解。 public static int f(int
阅读全文
摘要:题目 如果两个数很大,怎样求最大公约数,最小公倍数? 如果是n个数呢?比如1000个数的最小公倍数 输入 2 4 6 3 2 5 7 输出 12 70 思路 首先最大公约数可以用辗转相除法,定义为lcm(m,n),然后再定义一个方法gcd(m,n)求最大公约数,用公式法 :最小公倍数 = m * n
阅读全文
摘要:题目: 用天平称重时,我们希望用尽可能少的砝码组合称出尽可能多的重量。 如果只有5个砝码,重量分别是1,3,9,27,81 则它们可以组合称出1到121之间任意整数重量(砝码允许放在左右两个盘中)。 本题目要求编程实现:对用户给定的重量,给出砝码组合方案。 例如: 用户输入: 5 程序输出: 9-3
阅读全文
摘要:在数学中,我们学习了,排列组合,排列是有序的,组合是无顺序的。在做算法题时,我们也会遇到这种。 so,今天来理下,怎么写组合。 举个例子,桌子上有3个球A,B,C,我们取2个,无放回的取,有几种情况?算一下:也就是C(3,2)=3。 需要解决的问题 那么先理下思路,我们需要解决哪几个问题: 要怎么表
阅读全文
摘要:如果你是做这道题不会,那么你可以看这道题的解题思路,如果你是不太理解全排列算法,那么你可以通过这个题来理解。 题目描述: 小明最近喜欢搭数字积木。一共有10块积木,每个积木上有一个数字,0~9。 搭积木规则: 每个积木放到其它两个积木的上面,并且一定比下面的两个积木数字小。 最后搭成4层的金字塔形,
阅读全文
摘要:给你打个比喻吧:你英雄救美了,美女想要报答你,你想要1000块感谢费,但是美女却想要以身相许😁,懂了吧,同样都是报答,只是用了不一样的方式,辗转相除法也是这样,你两个数的最大公约数不容易求,我就用另外两个简单的数来解决。 废话不多说,看定理。 定理: 辗转相除 可以求最大公约数,顾名思义,反复的除
阅读全文
摘要:题目要求 古罗马帝国开创了辉煌的人类文明,但他们的数字表示法的确有些繁琐,尤其在表示大数的时候,现在看起来简直不能忍受,所以在现代很少使用了。 之所以这样,不是因为发明表示法的人的智力的问题,而是因为一个宗教的原因,当时的宗教禁止在数字中出现0的概念! 罗马数字的表示主要依赖以下几个基本符号: I
阅读全文
摘要:问题描述: 小明最近在教邻居家的小朋友小学奥数,而最近正好讲述到了三阶幻方这个部分,三阶幻方指的是将1~9不重复的填入一个3*3的矩阵当中,使得每一行、每一列和每一条对角线的和都是相同的。 三阶幻方又被称作九宫格,在小学奥数里有一句非常有名的口诀:“二四为肩,六八为足,左三右七,戴九履一,五居其中”
阅读全文
摘要:问题描述: 2:信用卡号的验证 【信用卡号的验证】 当你输入信用卡号码的时候,有没有担心输错了而造成损失呢?其实可以不必这么 担心,因为并不是一个随便的信用卡号码都是合法的,它必须通过 Luhn 算法来验 证通过。 该校验的过程: 1、从卡号最后一位数字开始,逆向将奇数位(1、3、5 等等)相加。
阅读全文

浙公网安备 33010602011771号