随笔分类 - 算法
在oj时碰到的一些算法问题
摘要:首先我们看原题 给出一个满足下述规则的二叉树: root.val == 0 如果 treeNode.val == x 且 treeNode.left != null,那么 treeNode.left.val == 2 * x + 1 如果 treeNode.val == x 且 treeNode.r
阅读全文
摘要:题解如下: /** * 动态规划解法: * dp[i] 表示 0-i的最小不能被识别的字母个数 * 求 dp[k] 如果第K个字母 不能和前面的字母[0-{k-1}]合在一起被识别 那么dp[k] = dp[k-1]+1 * 如果可以别识别 dp[k] = min(dp[k],dp[j-1]) *
阅读全文
摘要:题解如下: public class DivingBoardLCCI { /** * 暴力解法,遍历每一种可能性 时间复杂度:O(2*N) * @param shorter * @param longer * @param k * @return */ public int[] divingBoar
阅读全文
摘要:题目描述: 题解: public class ConvertSortedArrayToBinarySearchTree { /** * hint: 数组已经排序,用类似二分的手段将数组分开建树,最后的高度差一定小于等于一,因为左右子树最多只会相差一个元素 * @param nums * @retur
阅读全文
摘要:题目描述: 题解: public class LongestValidParentheses { /** * 解法一:暴力解法,超时了 * 从最大长度的字串,判断字串是否是合格的,如果是,那么当前字串长度就是结果 * @param s * @return */ public int longestV
阅读全文
摘要:/* author:谦智 find your present (2) hdoj 2095 法一:用暴力 法二:用map 法三: 符号是^. 异或是个位运算符号,具体是怎么操作的请百度,这里有个特性使得他能产生一种巧方法 a^a=0 0^c=c 看到上面这个式子是否你懂了呢? 没错,例如样例 5 1 1 3 2 2 如果我们用异或运算计算就是 1^1^3^2^2 由于1^1=0 2^2=0...
阅读全文
摘要:在《孙子算经》中有这样一个问题:“今有物不知其数,三三数之剩二(除以3余2),五五数之剩三(除以5余3),七七数之剩二(除以7余2),问物几何?”这个问题称为“孙子问题”,该问题的一般解法国际上称为“中国剩余定理”。具体解法分三步: 1. 找出三个数:从3和5的公倍数中找出被7除余1的最小数15,从
阅读全文
摘要:留恋 时间限制:1000 ms | 内存限制:65535 KB 难度:2 留恋 时间限制:1000 ms | 内存限制:65535 KB 难度:2 大家都知道,高中的时候,座位基本都是固定的,但是对于视力不好却又坐在后面的人是很不公平的。 念情的高中班主任安哥是个非常好的班主任,他为每个人着想,制定
阅读全文
摘要:GCD nyoj 1007 (欧拉函数+欧几里得) GCD 时间限制:1000 ms | 内存限制:65535 KB 难度:3 GCD 时间限制:1000 ms | 内存限制:65535 KB 难度:3 计算x的个数:附上代码
阅读全文
摘要:三. 尼姆博弈(Nimm Game): 尼姆博弈指的是这样一个博弈游戏:有任意堆物品,每堆物品的个数是任意的,双方轮流从中取物品,每一次只能从一堆物品中取部分或全部物品,最少取一件,取到最后一件物品的人获胜。 结论就是:把每堆物品数全部异或起来,如果得到的值为0,那么先手必败,否则先手必胜。 代码如
阅读全文
摘要:圈水池 时间限制:3000 ms | 内存限制:65535 KB 难度:4 圈水池 时间限制:3000 ms | 内存限制:65535 KB 难度:4
阅读全文
摘要:前言: 首先,什么是凸包? 假设平面上有p0~p12共13个点,过某些点作一个多边形,使这个多边形能把所有点都“包”起来。当这个多边形是凸多边形的时候,我们就叫它“凸包”。如下图: 然后,什么是凸包问题? 我们把这些点放在二维坐标系里面,那么每个点都能用 (x,y) 来表示。 现给出点的数目13,和
阅读全文