POJ2528的另一种解法(线段切割)】的更多相关文章

题目:Mayor's posters 原文地址 首先本题题意是:有一面墙,被等分为1QW份,一份的宽度为一个单位宽度.现在往墙上贴N张海报,每张海报的宽度是任意 的,但是必定是单位宽度的整数倍,且<=1QW.后贴的海报若与先贴的海报有交集,后贴的海报必定会全部或局部覆盖先贴的海 报.现在给出每张海报所贴的位置(左端位置和右端位置),问张贴完N张海报后,还能看见多少张海报? 利用线段切割,由于后贴的海报可能会覆盖前面的,而很明显知道前面的海报不会影响后面海报的可见性,所以应该从后面往 前面推. 所…
Given an array and a value, remove all instances of that value in place and return the new length. The order of elements can be changed. It doesn't matter what you leave beyond the new length. 这题做下来感觉技巧性比较强,解出第一种解法以后我又尝试了另外两种解法,一个比一个简单...我一开始却折腾出了最晦涩…
  题目:http://poj.org/problem?id=2528 Mayor's posters Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 55156   Accepted: 16000 Description The citizens of Bytetown, AB, could not stand that the candidates in the mayoral election campaign ha…
题干: 意思就是字符串替换,"A"与"C"配对,"T"与"G"配对,DNA不为空. 解法一:我的解法,用for循环遍历字符串,按照配对规则进行一一判断,之后输出新的字符串. function DNAStrand(dna){ //your code here var len=dna.length; var str1=""; for(i=0;i<len;i++){ if(dna[i]==="A&…
这是悦乐书的第314次更新,第335篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第183题(顺位题号是783).给定具有根节点值的二叉搜索树(BST),返回树中任何两个不同节点的值之间的最小差值.示例: 给定的树[4,2,6,1,3,null,null]由下图表示: 4 / \ 2 6 / \ 1 3 输出:1 说明:请注意,root是TreeNode对象,而不是数组.该树中的任意节点最小差值为1,它发生在节点1和节点2之间,也发生在节点3和节点2之间. 注意:…
这是悦乐书的第240次更新,第253篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第107题(顺位题号是476).给定正整数,输出其补码数.补充策略是翻转其二进制表示的位.例如: 输入:5 输出:2 说明:5的二进制表示为101(无前导零位),其补码为010,因此需要输出2. 输入:1 输出:0 说明:1的二进制表示形式为1(无前导零位),其补码为0,因此需要输出0. 注意: 保证给定的整数适合32位有符号整数的范围. 您可以假设整数的二进制表示中没有前导零位. 本…
这是悦乐书的第222次更新,第235篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第89题(顺位题号是414).给定非空的整数数组,返回此数组中的第三个最大数字.如果不存在,则返回最大数量.时间复杂度必须在O(n)中.例如: 输入:[3,2,1] 输出:1 说明:第三个最大值为1. 输入:[1,2] 输出:2 说明:第三个最大值不存在,因此返回最大值2. 输入:[2,2,3,1] 输出:1 说明:请注意,此处的第三个最大值表示第三个最大不同的数字.值为2的两个数字都…
这是悦乐书的第220次更新,第232篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第87题(顺位题号是409).给定一个由小写或大写字母组成的字符串,找到可以用这些字母构建的最长的回文长度.这是区分大小写的,例如"Aa"在这里不被视为回文.例如: 输入:"abccccdd" 输出:7 说明:可以建造的最长的回文是"dccaccd",其长度为7. 注意:假设给定字符串的长度不超过1,010. 本次解题使用的开发工具是e…
这是悦乐书的第214次更新,第227篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第82题(顺位题号是389).给定两个字符串s和t,它们只包含小写字母.字符串t由随机混洗字符串s生成,然后在随机位置再添加一个字母.找到t中添加的字母.例如: 输入:s ="abcd", t ="abcde" 输出:'e' 说明:'e'是添加的字母. 本次解题使用的开发工具是eclipse,jdk使用的版本是1.8,环境是win7 64位系统,使用Jav…
这是悦乐书的第209次更新,第221篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第77题(顺位题号是367).给定正整数num,写一个函数,如果num是一个完美的正方形,则返回True,否则返回False.例如: 输入:16 输出:true 输入:14 输出:false 注意:不要使用任何内置库函数,例如sqrt. 本次解题使用的开发工具是eclipse,jdk使用的版本是1.8,环境是win7 64位系统,使用Java语言编写和测试. 02 第一种解法 暴力解法…
这是悦乐书的第207次更新,第219篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第75题(顺位题号是349).给定两个数组,编写一个函数来计算它们的交集.例如: 输入:nums1 = [1,2,2,1],nums2 = [2,2] 输出:[2] 输入:nums1 = [4,9,5],nums2 = [9,4,9,8,4] 输出:[9,4] 注意: 结果中的每个元素都必须是唯一的. 结果可以是任何顺序. 本次解题使用的开发工具是eclipse,jdk使用的版本是1.…
这是悦乐书的第206次更新,第218篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第74题(顺位题号是345).编写一个函数,它将一个字符串作为输入,并仅反转一个字符串的元音.例如: 输入:"hello" 输出:"holle" 输入:"leetcode" 输出:"leotcede" 注意:元音不包括字母"y". 本次解题使用的开发工具是eclipse,jdk使用的版本是1.8,…
这是悦乐书的第204次更新,第215篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第71题(顺位题号是326).给定一个整数,写一个函数来确定它是否为3的幂.例如: 输入:27 输出:true 输入:0 输出:false 输入:9 输出:true 输入:45 输出:false 跟进:你可以不使用任何循环/递归吗? 本次解题使用的开发工具是eclipse,jdk使用的版本是1.8,环境是win7 64位系统,使用Java语言编写和测试. 02 第一种解法 新建一个变量…
这是悦乐书的第201次更新,第211篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第67题(顺位题号是283).给定一个数组nums,写一个函数将所有0移动到它的末尾,同时保持非零元素的相对顺序.例如: 输入:[0,1,0,3,12] 输出:[1,3,12,0,0] 注意: 您必须在不制作数组副本的情况下就地执行此操作. 最小化操作总数. 本次解题使用的开发工具是eclipse,jdk使用的版本是1.8,环境是win7 64位系统,使用Java语言编写和测试. 02…
这是悦乐书的第200次更新,第210篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第66题(顺位题号是278).您是产品经理,目前领导团队开发新产品.不幸的是,您产品的最新版本未通过质量检查.由于每个版本都是基于以前的版本开发的,因此坏版本之后的所有版本也是坏的. 假设您有n个版本[1,2,...,n]并且您想找出第一个坏的版本,这会导致以下所有版本都不好.您将获得一个API bool isBadVersion(版本),它将返回版本是否错误. 实现一个函数来查找第一…
这是悦乐书的第200次更新,第209篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第65题(顺位题号是268).给定一个包含n个不同数字的数组,取自0,1,2,...,n,找到数组中缺少的数字.例如: 输入:[3,0,1] 输出:2 输入:[9,6,4,2,3,5,7,0,1] 输出:8 注意:您的算法应该以线性运行时复杂性运行. 你能用恒定的额外空间复杂度来实现吗? 本次解题使用的开发工具是eclipse,jdk使用的版本是1.8,环境是win7 64位系统,使用…
这是悦乐书的第199次更新,第208篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第64题(顺位题号是263).编写一个程序来检查给定的数字是否是一个丑陋的数字.丑陋的数字是正数,其主要因子仅包括2,3,5.例如: 输入:6 输出:true 说明:6 = 2×3 输入:8 输出:true 说明:8 = 2×2×2 输入:14 输出:false 说明:14并不丑陋,因为它包含另一个因子7. 注意: 1通常被视为丑陋的数字. 输入在32位有符号整数范围内:[ -2^31…
这是悦乐书的第199次更新,第207篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第63题(顺位题号是258).给定非负整数num,重复添加其所有数字,直到结果只有一位数.例如: 输入:38 输出:2 说明:过程如下:3 + 8 = 11,1 + 1 = 2.由于2只有一位数,所以请将其返回. 跟进:你可以在O(1)运行时间内没有任何循环/递归的情况下执行此操作吗? 本次解题使用的开发工具是eclipse,jdk使用的版本是1.8,环境是win7 64位系统,使用J…
这是悦乐书的第199次更新,第206篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第62题(顺位题号是257).给定二叉树,返回所有根到叶路径.例如: 输入: 1 / \ 2 3 \ 5 输出:["1-> 2-> 5","1-> 3"] 说明:所有根到叶路径是:1-> 2-> 5, 1-> 3 注意:叶子是没有子节点的节点. 本次解题使用的开发工具是eclipse,jdk使用的版本是1.8,环境是wi…
Two strings 的另一种解法 论文中的解法是离线插入 \(O(\log n)\) 询问 \(O(\log n)\) 的,不过我发现有一种离线插入 \(O(1)\) 询问 \(O(\log n)\) 的方法. 首先我们离线处理,将两个串连在一起.我们以 \(ababa\) 和 \(aba\) 为例: 比如现在我们要询问 \(A\) 串 \([1,4]\) 和 \(B\) 串 \([1,2]\) 我们先在 \(rnk[7]\) 开始倍增,使得 \([l,r]\) 中 \(height>=2\…
16 级高代 II 思考题九  设 $V$ 是数域 $\mathbb{K}$ 上的 $n$ 维线性空间, $\varphi$ 是 $V$ 上的线性变换, $f(\lambda),m(\lambda)$ 分别是 $\varphi$ 的特征多项式和极小多项式. 设 $f(\lambda)=m(\lambda)=P_1(\lambda)^{r_1}P_2(\lambda)^{r_2}\cdots P_k(\lambda)^{r_k}$, 其中 $P_1(\lambda),P_2(\lambda),\c…
题目描述: 详细的题目描述见上一篇博客<leetcode-137-Single Number II-第一种解法>,这里简单说一下. 有一个数组,所有元素都出现了三次,除了一个元素只出现了一次.输出这个只出现一次的元素. 要求时间复杂度O(n),空间复杂度O(1). 要完成的函数: int singleNumber(vector<int>& s) 说明: 上一篇博客中提出的方法很容易理解,但是不是O(n)的时间复杂度,而是O(n^2),这点应该很多朋友都能看出来. 今天给大家…
Java描述表达式求值的两种解法:双栈结构和二叉树 原题大意:表达式求值 求一个非负整数四则混合运算且含嵌套括号表达式的值.如: # 输入: 1+2*(6/2)-4 # 输出: 3.0 数据保证: 保证表达式合法(含除数不为0). 保证运算数是非负整数. 双栈版 维护两个栈: 符号栈,数字栈,遍历输入串过程中计算 数字直接入栈 符号入栈 a. 符号栈为空 b. 当前符号优先于栈顶符号 c. 栈顶为'(' 符号出栈计算: 栈顶符号非'(' 且 优先级更高. class ExpStack { pri…
链接:http://www.51nod.com/Challenge/Problem.html#!#problemId=1165 直角三角形,三条边的长度都是整数.给出周长N,求符合条件的三角形数量. 例如:N = 120,共有3种不同的满足条件的直角3角行.分别是:{20,48,52}, {24,45,51}, {30,40,50}. 输入: 第1行:一个数T,表示后面用作输入测试的数的数量.(1 <= T <= 50000) 第2 - T + 1行:每行1个数N(12 <= N <…
转: 学习笔记 - 快速傅里叶变换 / 大数A * B的另一种解法 文章目录 前言 ~~Fast Fast TLE~~ 一.FFT是什么? 二.FFT可以干什么? 1.多项式乘法 2.大数乘法 三.FFT怎么做? 1. 系数表示法和点值表示法 3.如何巧妙地进行DFT? - FFT的高明之处 4. *单位复根* - FFT的高明之处(二) 5. Inverse Fast Fourier Transform - 从点值表示法回到系数表示法 四.FFT的递归实现 五.大数乘法的实现(FFT版) 后话…
Brainman Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 10575   Accepted: 5489 Description BackgroundRaymond Babbitt drives his brother Charlie mad. Recently Raymond counted 246 toothpicks spilled all over the floor in an instant just b…
N个气球排成一排,从左到右依次编号为1,2,3....N.每次给定2个整数a b(a <= b),lele便为骑上他的"小飞鸽"牌电动车从气球a开始到气球b依次给每个气球涂一次颜色.但是N次以后lele已经忘记了第I个气球已经涂过几次颜色了,你能帮他算出每个气球被涂过几次颜色吗? Input 每个测试实例第一行为一个整数N,(N <= 100000).接下来的N行,每行包括2个整数a b(1 <= a <= b <= N).  当N = 0,输入结束. O…
题目要求:String s="-1 2 5 78 129 -65 -23";将字符串进行升序排序后输出. 方法一:使用数组进行排序 思路: 1.获取字符串中的数值:   2.将数组存入整型数组中:   3.对int数组进行排序:   4.将int数组变成字符串:步骤:   1.切割;   2.对字符串数组中元素进行转化存入;   3.对int数组进行sort;   4.把int数组变成字符串: 源代码如下: /** *@date:2013年9月25日 *@author:lkx / /*…
区间第K大问题,变化包括带修改和不带修改,强制在线和允许离线 修改主要是单点修改,我们前面也只讨论这种情况. 接下来我们从编程复杂度和时空复杂度来讨论几种做法. 1.整体二分(编程复杂度:低-中,时间复杂度:优秀,空间复杂度:优秀) 缺点:只能做离线 优点:空间都是O(n).常数小.带修改O(nlog2n),不带修改O(nlogn). 但是不带修改的情况,如果允许的话,个人认为加个树状数组写O(nlog2n)的更好写 这时单次solve中面对的问题是,数列中一些点是1其余都是0,然后求区间和的问…
题意:给一个元素周期表的元素符号(114种),再给一个串,问这个串能否有这些元素符号组成(全为小写). 解法1:动态规划 定义:dp[i]表示到 i 这个字符为止,能否有元素周期表里的符号构成. 则有转移方程:dp[i] = (dp[i-1]&&f(i-1,1)) || (dp[i-2]&&f(i-2,2))     f(i,k):表示从i开始填入k个字符,这k个字符在不在元素周期表中.  dp[0] = 1 代码: //109ms 0KB #include <ios…