OtherOJ
文章平均质量分 74
其他OJ
zxzxin
分享、总结 C++、Java、算法 等技术
展开
-
京东2017校招编程题 - 保卫方案(山峰对数量)
京东2017校招编程题 - 保卫方案(山峰对数量)题目链接题目 简单的说就是: 一个环形山脉,哪两座山的烽火可以相互看见,条件如下: (1)相邻的山; (2)两座山中的某条路 中间不存在比这两座山的最小值大的山(可以相等); 给出环形山数组值,求能互相看到的山的对数解析求解过程如下: 先准备一个栈,栈中存放山峰值和出现次数...原创 2018-08-14 10:47:16 · 811 阅读 · 2 评论 -
TimusOJ - 1225.Flags & 1119.Metr & 1009.K-based Numbers (DP简单题)
TimusOJ - 1225.Flags & 1119.Metr & 1009.K-based Numbers (DP简单题)TimusOJ - 1225.FlagsTimusOJ - 1119.MetrTimusOJ - 1009.K-based NumbersTimusOJ - 1225.Flags题目链接题目给你三种颜色,输入n代表的是长方形数,向这些...原创 2019-01-10 21:14:13 · 244 阅读 · 0 评论 -
TimusOJ - 1353. Milliard Vasya's Function(DP)
TimusOJ - 1353. Milliard Vasya’s Function(DP)题目链接题目求1到109 ( [1, 109] )中各位数字之和为S的数有多少个;解析这个题目和LeetCode - 518. Coin Change 2非常的相似。递归(记忆化)的写法:总共需要9位数字,我们就去递归每一个位置可以累加0 ~ 9之间的数;递归终止条件就是当够了9个数字的时...原创 2019-01-08 22:33:45 · 233 阅读 · 0 评论 -
TimusOJ - 1146. Maximum Sum(子矩阵的最大累加和)
TimusOJ - 1146. Maximum Sum(子矩阵的最大累加和)题目链接题目解析首先,解这道题之前,先要知道求一维的最大子数组和LeetCode53和Hdu1003。解析:假设一个2行4列的矩阵如下:-2 3 -5 7 1 4 -1 -3如何求必须含有2行元素的子矩阵的最大累加和? 做法是将两列的元素累加,然后得到累加数组[-1, 7, -6, 4],然...原创 2019-01-05 20:58:25 · 384 阅读 · 0 评论 -
HDU4109_Instrction Arrangement以及关键路径详解
HDU4109_Instrction Arrangement以及关键路径详解关键路径详解HDU4109_Instrction Arrangement题解关键路径详解AOE网概念:在一个表示工程的带权有向图中,用顶点表示事件,用有向边表示活动,边上的权值表示活动的持续时间,称这样的有向图叫做边表示活动的网,简称AOE(Activity On Edge)网。AOE网中没有入边的顶点...原创 2018-12-30 15:45:09 · 424 阅读 · 0 评论 -
POJ 3126 & 2251 & 1321 & 3278 (DFS | BFS)
POJ 3126 & 2251POJ - 3126 - Prime PathPOJ - 2251 - Dungeon MasterPOJ - 3126 - Prime Path题目链接题目大意第一个数T代表测试样例个数,下面每一行是一个测试样例,每行输入两个数a、b,这两个数都是1000~9999之间的素数,现在要求你从第一个数变成第二个数,每次变换可以(只可以)改变其中...原创 2018-12-29 16:42:56 · 225 阅读 · 0 评论 -
51Nod-1006-最长公共子序列LCS 和 最长公众子串
51Nod-1006-最长公共子序列LCS 和 最长公众子串51Nod-1006-最长公共子序列LCS 最长公众子串51Nod-1006-最长公共子序列LCS题目链接题目就是输入两个字符串str1、str2,输出任意一个最长公共子序列。解析dp[i][j]代表的是 : 必须以str1[i]、str2[j]结尾的最长公共子序列,dp[i][j]来源:可能是dp[i-1][j...原创 2018-12-27 09:07:08 · 275 阅读 · 0 评论 -
POJ1013-Counterfeit Dollar(枚举)
POJ1013-Counterfeit Dollar(枚举)题目链接题目大意有12枚硬币,其中有11枚真币和1枚假币,真币和假币重量不同,但不知道是真币重还是假币重,现在,用一架天平称了这些硬币三次,给你称量的结果,请你找出假币,并且确定假币是重还是轻。Sample Input1 ABCD EFGH even ABCI EFJK up ABIJ EFGH even Sample...原创 2018-12-04 14:37:01 · 283 阅读 · 0 评论 -
POJ1006-Biorhythms(枚举技巧)
POJ1006-Biorhythms(枚举技巧)简单枚举优化枚举题目链接题目大意人有三个生理高峰期,即体力、感情和智力,它们的周期长度分别为23天、28天和33天。每一个周期有一天是高峰,这一天很特别。由于这三个生理周期时间长短不同,所以通常三个周期的高峰不会落在同一天。现在想知道何时三个高峰落在同一天。对于每个周期,给出从当前年份的第一天开始,到出现高峰的天数(不一定是第一次高...原创 2018-12-03 23:54:25 · 275 阅读 · 1 评论 -
Hdu - 1431素数回文以及素数相关总结
Hdu1431素数回文以及素数相关总结普通筛素数法埃式筛法优化筛法整数分解(唯一分解定理)约束枚举Hdu1431题解普通筛素数法这个也是普通的素数判定的方法,这个方法判定素数时间复杂度为O (sqrt(n))。 public static ArrayList<Integer> primary(boolean[] is_prime,int MAX原创 2018-09-22 11:48:10 · 452 阅读 · 0 评论 -
Hdu - 2602. Bone Collector(01背包问题)
Hdu2602-Bone Collector(01背包问题)01背包递归写法(记忆化)二维dp一维dp01背包递归写法(记忆化)递归的思想就是: 我要计算的是从第0号物体到n-1号物体的最大重量;记录一个当前判断到i号物体时,已经选择的物体的容量curW;我的递归边界是如果判断到当前的物体大于我的背包容量了,这个物体就不能选,于是我之前如果假设选了的话我就要减掉这...原创 2018-09-08 16:50:55 · 352 阅读 · 0 评论 -
POJ - 2342. Anniversary party(员工的活跃度问题)(多叉树以及树形dp)
POJ2342Anniversary party(员工的活跃度问题)(多叉树以及树形dp)题目链接题意: 某公司要举办一次晚会,但是为了使得晚会的气氛更加活跃,每个参加晚会的人都不希望在晚会中见到他的直接上司,现在已知每个人的活跃指数和上司关系(当然不可能存在环),求邀请哪些人(多少人)来能使得晚会的总活跃指数最大。比如下面的两个例子: 解析:在一个结点no...原创 2018-08-17 16:48:45 · 768 阅读 · 0 评论 -
Hdu - 1874. 畅通工程续(最短路dijkstra模板)
Hdu1874-畅通工程续(最短路dijkstra和堆优化)dijkstra算法总结普通dijstra算法解决堆优化解决手写堆解决 题目链接dijkstra算法总结总结一下dijkstra算法大致的流程: 一开始有一个dist[]数组(也可以是map)来保存从start(起点)到每个点的最短路径(一开始的话,如果start和某个点没有边,就为INF(或者为nu...原创 2018-08-10 12:53:19 · 262 阅读 · 0 评论 -
Hdu - 1863. 畅通工程(最小生成树模板题)(Kruskal算法和Prim算法实现)
Hdu1863-畅通工程(最小生成树模板题)(Kruskal算法和Prim算法实现)Kruskal算法思想及流程Prim算法思想及流程: 题目链接题意以及解析 就是一个求最小生成树的模板题;Kruskal算法思想及流程:首先各个顶点看成一个集合,每个顶点的根就是自己;从整个图中边的集合中取出最小的一条(一开始对边的集合排序),判断该边的两个定点是不是...原创 2018-08-09 16:58:53 · 686 阅读 · 0 评论 -
POJ - 1611. The Suspects以及并查集总结
POJ1611-The Suspects(并查集结构的基本使用)题目链接题意 就是告诉你0号同学被感染了,他还参加了一些社团,给出一些社团以及里面的人,问总共多少人感染。输入给出n表示人数(标号为0~n-1),m表示社团数目,接下来m行每行第一个数k ,表示该社团有k人,然后是k个人的编号。要你输出有多少个人感染了病毒。解析 把每个社团加入到各自的并查集中,然后合并,...原创 2018-08-09 14:32:19 · 678 阅读 · 0 评论 -
Uva - 10305. Ordering Tasks | LeetCode - 207. Course Schedule (拓扑排序)
Uva10305-Ordering Tasks(拓扑排序)题目链接题意给你n、m,n代表点的个数,m代表边的条数,然后下面给出m条边,都是有向的(有向图),要你建出一个图,并且找出一种序列,这种序列叫做拓扑序列 。 拓扑排序 是对有向无环图(DAG)进行的一种操作,这种操作是将DAG中的所有顶点排成一个线性序列,使得图中的任意一对顶点u,v满足如下条件:若边(u,v)∈E...原创 2018-08-09 11:20:11 · 349 阅读 · 0 评论 -
POJ - 2136. VerticalHistogram(统计字母个数)
PO2136- VerticalHistogram(统计字母个数)题目链接题意 就是给你四行字符串,然后要你统计大写字母(只有大写字母)的个数,然后以特定的方式打印出来;解析 使用一个nums数组保存一下出现的次数,注意’A’对应的ascii码为65,所以稍微转换一下,然后再找到个数对应关系,逐行打印即可;import java.io.BufferedRe...原创 2018-07-31 20:45:43 · 187 阅读 · 0 评论 -
POJ - 2039. ToAndFro(竖型输出)
POJ2039-ToAndFro(竖型输出)题目链接题意 就是给你一个数n,和一串字符串,然后要你将这些字符串分成n列(蛇形),并且一竖一竖的打印;解析 可以定义一个bool型变量,表示从左到右还是从右到左,然后,通过行列的关系输出即可。如果是往右边走,对应的下标关系就是行数*n + 列数,往左边走的就是(行数+1)*n-列数-1;import java.i...原创 2018-07-31 20:40:02 · 287 阅读 · 0 评论 -
LintCode - 861. K Empty Slots (BST | 桶)
LintCode - 861. K Empty Slots (BST | 桶)题目链接题目解析一开始的傻逼的想法。。。O(N ^ 4) -> TLE。public class Solution { public int kEmptySlots(int[] flowers, int k) { if(flowers == null || flowers.le...原创 2019-01-16 15:23:29 · 339 阅读 · 0 评论 -
LintCode - 862. Next Closest Time (暴力 | DFS)
LintCode - 862. Next Closest Time (暴力 | DFS)暴力DFS题目链接题目暴力解法暴力的解法就是,枚举所有的可能:每次累加一分钟 ,然后检查所有的数字是不是都在原来的数字中;如果是就可以break,因为注意题目说的是下一个最近的时间,不能往前面推;public class Solution { public String n...原创 2019-01-13 10:18:00 · 235 阅读 · 0 评论 -
LintCode - 849. Basic Calculator III(包括+ - * / 和括号的计算器)
LintCode-849. Basic Calculator III(包括+-*/和括号的计算器)解法一: 使用中缀表达式转后缀表达式计算结果解法二: 使用递归计算解法一: 使用中缀表达式转后缀表达式计算结果这个方法可以说是比较简单的方法,先把中缀表达式转换成后缀表达式,然后计算后缀表达式的值,这两个分别对应两个题目LintCode370和LintCode424;要注意的地方...原创 2018-08-21 09:29:31 · 896 阅读 · 0 评论 -
LintCode - 978. Basic Calculator(只有 + - 号的表达式计算)
LintCode-978. Basic Calculator(只有+-号的表达式计算)比较容易想到的就是先转换成逆波兰(后缀表达式),然后通过计算后缀表达式来解决问题; public String infixToSuffix(String str){//中缀转后缀 >1位的数字后面加上_ StringBuffer sb = new StringBuffer(); ...原创 2018-08-21 10:33:12 · 233 阅读 · 0 评论 -
LintCode - 370. Convert Expression to Reverse Polish Notation(转换为逆波兰表达式)(中缀转后缀表达式)
LintCode-370. Convert Expression to Reverse Polish Notation(将表达式转换为逆波兰表达式)(中缀表达式转后缀表达式)题目链接题目 准备一个栈用来存放操作符,注意执行流程: 当前字符串是数字,直接添加到结果集;当前字符串是”(“,直接入栈;当前字符串是”)”,从栈中一直弹出操作符,直到操作符为”)“,并把这些操作符...原创 2018-08-20 15:19:00 · 374 阅读 · 0 评论 -
LintCode - 424. Evaluate Reverse Polish Notation(逆波兰表达式求值)
LintCode-424. Evaluate Reverse Polish Notation(逆波兰表达式求值)题目链接题目逆波兰表达式又叫做后缀表达式,每一运算符都置于其运算对象之后,故称为后缀表示。 现在给你逆波兰表达式字符串数组,要你求出值。 样例1: ["2", "1", "+", "3&am原创 2018-08-20 11:50:16 · 233 阅读 · 0 评论 -
LintCode - 980. Basic Calculator II(没有括号的计算表达式)
LintCode-980. Basic Calculator II(没有括号的计算表达式)题目链接题目给你一个字符串,里面是一个计算表达式,字符串表达式仅包含非负整数,且里面有+,-,*,/但是没有括号,要你计算表达式的值,整数除法仅保留整数部分,注意表达式可能有空格; 样例: "3+2*2" = 7" 3/2 &a原创 2018-08-20 11:17:20 · 566 阅读 · 0 评论 -
LintCode - 131. The Skyline Problem(建筑的轮廓)(利用二叉搜索树解决)
LintCode-131. The Skyline Problem(建筑的轮廓)(利用二叉搜索树解决)题目链接题意:解析:解析过程:将输入的每一组数据处理成两个Node结构,结构中是[位置,高度,上升/下降]的信息;对上面的Node结构数组按照位置进行升序排序;准备两个TreeMap,第一个htMap存[高度,次数],第二个pmMap存[位置,最大高度] (注意两...原创 2018-08-15 15:20:17 · 997 阅读 · 1 评论 -
LintCode - 510. Maximal Rectangle(最大矩形)(单调栈)
LintCode-510. Maximal Rectangle(最大矩形)(单调栈)题目链接题目解析这个题目就是直方图最大矩形覆盖的一个变式, 我们只需要求出以每一行作为底最大的矩形是多少,每一行都有一个height数组,把每个数组都调用上个题目的方法就可以求出,以每一行作为底(直方图最下面)时最大矩形面积,然后记录最大值即可。 关键就是每次更新height数组...原创 2018-08-13 17:11:19 · 648 阅读 · 0 评论 -
LintCode - 122. Largest Rectangle in Histogram(直方图最大矩形覆盖)(单调栈)
LintCode-122. Largest Rectangle in Histogram(直方图最大举行覆盖)(单调栈)题目链接题目 给出 height = [2,1,5,6,2,3],返回 10。解析 主要是运用单调栈(单调栈的知识这篇博客)来解决,注意这个栈是 从栈底到栈顶依次是从小到大的: 如果栈中的数比当前的数大(或者等于)就要处理栈顶的(记...原创 2018-08-13 15:30:15 · 474 阅读 · 0 评论 -
LintCode - 362. Sliding Window Maximum(滑动窗口的最大值)(单调队列(窗口滑动))
LintCode362-Sliding Window Maximum(滑动窗口的最大值)(单调队列)单调队列介绍使用单调队列解决此题 题目链接单调队列介绍单调队列一开始用来求出在数组的某个区间范围内求出最大值。具体的做法如下 准备一个双端队列,队列遵守从左到右从大到小(不能相等)的规则,然后当窗口决定加入一个数,则R往右移动一位,L不动,并且判断队列中的尾部的数是否比...原创 2018-08-11 16:07:15 · 1035 阅读 · 0 评论 -
Hdu - 1711. Number Sequence以及KMP算法总结
Hdu1711-Number Sequence以及KMP算法总结KMP求解流程KMPnext数组求解Hdu1711-Number Sequence模板题 题目链接KMP求解流程 这里先说明next数组的含义: next[i]的含义是在str[i]之前的字符串str[0…i]中,必须以str[i-1]结尾的后缀子串(不能包含str[0])与必须以s...原创 2018-08-05 13:30:33 · 438 阅读 · 0 评论 -
POJ - 1222. EXTENDED LIGHTS OUT(熄灯问题)(二进制枚举)
POJ1222 - EXTENDED LIGHTS OUT(熄灯问题)(二进制枚举)题目链接题目大意有一个由按钮组成的矩阵,其中每行有6个按钮,共5行。每个按钮的位置上有一盏灯。当按下一个按钮后,该按钮以及周围位置(上边、下边、左边、右边)的灯都会改变一次。即,如果灯原来是点亮的,就会被熄灭;如果灯原来是熄灭的,则会被点亮。在矩阵角上的按钮改变3盏灯的状态;在矩阵边上的按钮改变4盏灯的状态...原创 2018-12-18 16:38:04 · 550 阅读 · 0 评论