![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
oj
文章平均质量分 80
不一样的烟火___
我就是我,不一样的烟火(๑• . •๑)
展开
-
Leetcode 无重复字符的最长子串(滑动窗口 O(n) )
给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。示例1:输入: "abcabcbb"输出: 3解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例 3:输入: "pwwkew"输出: 3解释: 因为无重复字符的最长子串是...原创 2020-01-06 22:23:40 · 462 阅读 · 0 评论 -
Leetcode 计算逆波兰式(后缀表达式)的值
题目描述计算逆波兰式(后缀表达式)的值运算符仅包含"+","-","*"和"/",被操作数可能是整数或其他表达式例如: ["2", "1", "+", "3", "*"] -> ((2 + 1) * 3) -> 9↵ ["4", "13", "5", "/", "+"] -> (4 + (13 / 5)) -> 6Evaluate the valu...原创 2020-01-04 10:13:44 · 571 阅读 · 0 评论 -
Leetcode minimum-depth-of-binary-tree 求给定二叉树的最小深度
题目描述求给定二叉树的最小深度。最小深度是指树的根结点到最近叶子结点的最短路径上结点的数量。Given a binary tree, find its minimum depth.The minimum depth is the number of nodes along the shortest path from the root node down to the nearest le...原创 2020-01-03 22:26:30 · 139 阅读 · 0 评论 -
LeetCode1. 两数之和
给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1] 暴力解决...原创 2019-01-20 20:07:44 · 127 阅读 · 0 评论 -
LeetCode 验证二叉搜索树 long long 大法好~
验证二叉搜索树给定一个二叉树,判断其是否是一个有效的二叉搜索树。假设一个二叉搜索树具有如下特征:节点的左子树只包含小于当前节点的数。 节点的右子树只包含大于当前节点的数。 所有左子树和右子树自身必须也是二叉搜索树。示例 1:输入: 2 / \ 1 3输出: true示例 2:输入: 5 / \ 1 4 / ...原创 2018-11-26 14:05:19 · 301 阅读 · 0 评论 -
LeetCode
二叉树的最大深度给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回它的最大深度 3 。思路:如果根结点为null ,数的高度就是0,否则就返...原创 2018-11-25 12:43:58 · 109 阅读 · 2 评论 -
LeetCode 88. 合并两个有序数组
给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组。说明: 初始化 nums1 和 nums2 的元素数量分别为 m 和 n。 你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。 示例:输入:nums1 = [1,2,3,0,0,0], m = 3...原创 2018-11-24 23:01:36 · 83 阅读 · 0 评论 -
只出现一次的数字
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,1]输出: 1示例 2:输入: [4,1,2,1,2]输出: 4不解释...int singleNumber(int* nums, int numsSize) { if(numsSize...原创 2018-07-14 23:13:23 · 81 阅读 · 0 评论 -
217. 存在重复元素
给定一个整数数组,判断是否存在重复元素。如果任何值在数组中出现至少两次,函数返回 true。如果数组中每个元素都不相同,则返回 false。示例 1:输入: [1,2,3,1]输出: true示例 2:输入: [1,2,3,4]输出: false示例 3:输入: [1,1,1,3,3,4,3,2,4,2]输出: true基本操作,不需要解释了吧?...bool containsDuplic...原创 2018-07-14 22:46:09 · 236 阅读 · 0 评论 -
旋转数组
旋转数组给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。示例 1:输入: [1,2,3,4,5,6,7] 和 k = 3输出: [5,6,7,1,2,3,4]解释:向右旋转 1 步: [7,1,2,3,4,5,6]向右旋转 2 步: [6,7,1,2,3,4,5]向右旋转 3 步: [5,6,7,1,2,3,4]示例 2:输入: [-1,-100,3,99] ...原创 2018-07-13 23:23:37 · 99 阅读 · 0 评论 -
122. 买卖股票的最佳时机 II
给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例 1:输入: [7,1,5,3,6,4]输出: 7解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交易所能获得利润 ...原创 2018-07-12 23:33:12 · 1130 阅读 · 2 评论 -
LeetCode 从排序数组中删除重复项
给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。示例 1:给定数组 nums = [1,1,2], 函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。 你不需要考虑数组中超出新长度后面的元素。示例 2:给定 nums =...原创 2018-07-11 18:57:53 · 106 阅读 · 0 评论 -
F - Decoding
F - DecodingPolycarp is mad about coding, that is why he writes Sveta encoded messages. He calls the median letter in a word the letter which is in the middle of the word. If the word’s length is even原创 2017-01-05 11:14:45 · 360 阅读 · 1 评论 -
Dungeon Master 三维+BFS
Dungeon MasterTime Limit : 2000/1000ms (Java/Other) Memory Limit : 131072/65536K (Java/Other)Total Submission(s) : 64 Accepted Submission(s) : 29Problem DescriptionYou are trapped in a原创 2016-08-15 15:06:59 · 533 阅读 · 0 评论 -
Nim博弈
重点结论:对于一个Nim游戏的局面(a1,a2,…,an),它是P-position当且仅当a1^a2^…^an=0,其中^表示位异或(xor)运算。Nim游戏是博弈论中最经典的模型(之一?),它又有着十分简单的规则和无比优美的结论,由这个游戏开始了解博弈论恐怕是最合适不过了。 Nim游戏是组合游戏(Combinatorial Games)的一种,准确来说,属于“Impartial Combina转载 2016-08-11 16:17:00 · 425 阅读 · 0 评论 -
ACM主要算法
ACM主要算法ACM主要算法介绍初期篇一、基本算法(1)枚举(poj1753, poj2965)(2)贪心(poj1328, poj2109, poj2586)(3)递归和分治法(4)递推(5)构造法(poj3295)(6)模拟法(poj1068, poj2632, poj1573, poj2993, poj2996)二、图算法(1)图的原创 2016-08-05 14:41:41 · 6308 阅读 · 0 评论 -
A + B for you again KMP
A + B for you againTime Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 6352 Accepted Submission(s): 1566Problem DescriptionGenera原创 2016-08-05 11:32:31 · 343 阅读 · 0 评论 -
Outlets 最小生成树
OutletsTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 3264 Accepted Submission(s): 1517Problem DescriptionIn China, foreign原创 2016-08-03 19:44:07 · 363 阅读 · 0 评论 -
一个人的旅行 (Dijkstra大法好!)
一个人的旅行Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 31679 Accepted Submission(s): 10880Problem Description虽然草儿是个路痴(就是在杭电待了一原创 2016-08-03 15:51:35 · 407 阅读 · 0 评论 -
图论 C - 最短路
C - 最短路Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64uDescription 在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的t-shirt。但是每当我们的工作人员把上百件的衣服从商店运回到赛场的时候,却是非常累的!所以现在他们想要寻找最短的从商店到赛场的路线,你可以帮助他们吗?原创 2016-08-02 20:15:22 · 749 阅读 · 0 评论 -
Building Block 并查集
Building Block Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)原创 2016-07-26 15:33:36 · 351 阅读 · 0 评论 -
noj 1143 G 字母转换
ProblemG字母转换时限:1000ms内存限制:10000K总时限:3000ms描述:通过栈交换字母顺序。给定两个字符串,要求所有的进栈和出栈序列(i表示进栈,o表示出栈),使得字符串2在求得的进出栈序列的操作下,变成字符串1。输出结果需满足字典序。例如TROT 到 TORT:[i i i i o o o oi o i i o o i o]输入:...原创 2019-09-19 10:08:23 · 554 阅读 · 0 评论 -
noj 1142 F 踩气球
ProblemF踩气球时限:1000ms内存限制:10000K总时限:3000ms描述:六一儿童节,小朋友们做踩气球游戏,气球的编号是1~100,两位小朋友各踩了一些气球,要求他们报出自己所踩气球的编号的乘积。现在需要你编一个程序来判断他们的胜负,判断的规则是这样的:如果两人都说了真话,数字大的人赢;如果两人都说了假话,数字大的人赢;如果报小数字的人说的是真话而报大数字...原创 2019-09-18 16:09:48 · 709 阅读 · 0 评论 -
noj 1008 D 素数环问题 (暴力搜索)
ProblemD素数环问题时限:1000ms内存限制:10000K总时限:3000ms描述:把1到20这重新排列,使得排列后的序列A满足:a. 任意相邻两个数之和是素数b. 不存在满足条件a的序列B使得:A和B的前k(0 <= k <= 19)项相同且B的第k+1项比A的第k+1项小。(即按字典序排列的第一项)输入:没有输入。输出:...原创 2019-09-12 17:15:32 · 363 阅读 · 0 评论 -
noj 1009 E 迷宫问题
ProblemE迷宫问题时限:1000ms内存限制:10000K总时限:3000ms描述:给一个20×20的迷宫、起点坐标和终点坐标,问从起点是否能到达终点。输入:多个测例。输入的第一行是一个整数n,表示测例的个数。接下来是n个测例,每个测例占21行,第一行四个整数x1,y1,x2,y2是起止点的位置(坐标从零开始),(x1,y1)是起点,(x2,y2)是...原创 2019-09-12 13:39:40 · 354 阅读 · 0 评论 -
noj 1005 B 装载问题 (dfs暴力)
ProblemB装载问题时限:1000ms内存限制:10000K总时限:3000ms描述:有两艘船,载重量分别是c1、 c2,n个集装箱,重量是wi (i=1…n),且所有集装箱的总重量不超过c1+c2。确定是否有可能将所有集装箱全部装入两艘船。输入:多个测例,每个测例的输入占两行。第一行一次是c1、c2和n(n<=10);第二行n个整数表示wi (...原创 2019-09-12 10:01:01 · 251 阅读 · 0 评论 -
noj 1004 0-1背包问题(dfs)
ProblemA0-1背包问题时限:1000ms内存限制:10000K总时限:3000ms描述:需对容量为c 的背包进行装载。从n 个物品中选取装入背包的物品,每件物品i 的重量为wi ,价值为pi 。对于可行的背包装载,背包中物品的总重量不能超过背包的容量,最佳装载是指所装入的物品价值最高。输入:多个测例,每个测例的输入占三行。第一行两个整数:n(n&l...原创 2019-09-12 09:45:08 · 327 阅读 · 0 评论 -
1091 D 求解逆波兰表达式(Calculate the reverse Polish notation)
ProblemD求解逆波兰表达式(Calculate the reverse Polish notation)时限:1000ms内存限制:10000K总时限:3000ms描述:编写函数int add(char s[]);计算字符串形式的逆波兰表达式(即两个操作数在前,计算符在后)。本题内,保证每个操作数均为1位数。操作符有'+','-','*','/'四种。且保证计算过...原创 2019-09-11 21:33:20 · 335 阅读 · 1 评论 -
noj 1017 k阶裴波那契数列
ProblemE数列时限:1000ms内存限制:10000K总时限:3000ms描述:已知k阶裴波那契数列的定义为f0=0,f1=0,…,fk-2=0, fk-1=1; fn=fn-1+fn-2+…+fn-k,n=k,k+1,…,试编写求k阶裴波那契数列的第m项值的函数算法,k和m均以值调用的形式在函数参数表中出现。输入:输入两个正整数k m(其中1<...原创 2019-09-11 19:31:23 · 189 阅读 · 0 评论 -
noj 1579 三阶幻方(回溯穷举法)
ProblemH三阶幻方时限:1000ms内存限制:10000K总时限:3000ms描述:三阶幻方是最简单的幻方,又叫九宫格,是由1,2,3,4,5,6,7,8,9九个数字组成的一个三行三列的矩阵,其对角线、横行、纵向的的和都为15。输入:无输出:按字典序输出所有的满足条件的幻方矩阵,每两个数字之间带一个空格,行尾无空格,每个幻方后带一个空行...原创 2019-09-11 19:15:43 · 1253 阅读 · 0 评论 -
noj 1018 选太子 (约瑟夫问题变种)
ProblemB选太子(select the prince)时限:1000ms内存限制:10000K总时限:3000ms描述:某皇帝有2m个儿子,现在要从中选出一个做太子,皇帝不知道该把那一个皇子立为太子,于是决定用下面的方法来选出太子,设每个太子的编号分别1、2、3、…、2m,按顺时针方向站成一个圆圈,现在从1号太子开始按顺时针方向数,数到第n个人,把他淘汰出局,然后...原创 2019-09-11 17:25:14 · 179 阅读 · 0 评论 -
noj 1141 走迷宫
ProblemK走迷宫时限:1000ms内存限制:10000K总时限:3000ms描述:判断是否能从迷宫的入口到达出口输入:先输入两个不超过20的正整数表示迷宫的行数m和列数n,再输入口和出口的坐标,最后分m行输入迷宫,其中1表示墙,0表示空格每个数字之间都有空格。输出:只能向上、下、左、右四个方向走若能到达,则输出"Yes",否则输出"No...原创 2019-09-11 15:28:39 · 473 阅读 · 0 评论 -
noj 1324 G 穷举所有排列 (经典回溯法)
ProblemG穷举所有排列时限:100ms内存限制:10000K总时限:300ms描述:输入一个小于10的正整数n,按把每个元素都交换到最前面一次的方法,输出前n个小写字母的所有排列。输入:输入一个小于10的正整数n。输出:按把每个元素都交换到最前面一次的方法,输出前n个小写字母的所有排列。输入样例:3输出样例:...原创 2019-09-11 11:08:54 · 384 阅读 · 0 评论 -
noj 1243 循环赛日程表(典型分治法)
ProblemJ循环赛日程表时限:1000ms内存限制:10000K总时限:3000ms描述:用分治算法生成循环赛日程表(1到2的n次方个人)输入:一个小于等于7的正整数n输出:循环赛日程表(1到2的n次方个人)输入样例:3输出样例:1 2 3 4 5 6 7 82 1 4 3 6 5 8 7...原创 2019-09-10 21:12:16 · 595 阅读 · 0 评论 -
noj 1574求第k小数
ProblemI求第k小数时限:1000ms内存限制:10000K总时限:3000ms描述:求第k小数输入:先输入一个小于10000的正整数n,再输入n个整数,最后输入一个小于等于n的正整数k,输出:输出其中第k小的数。输入样例:529834512849210002输出样例:98...原创 2019-09-10 10:49:09 · 386 阅读 · 0 评论 -
noj 1007八皇后
ProblemL8皇后问题时限:1000ms内存限制:10000K总时限:3000ms描述:输出8皇后问题所有结果。输入:没有输入。输出:每个结果第一行是No n:的形式,n表示输出的是第几个结果;下面8行,每行8个字符,‘A’表示皇后,‘.’表示空格。不同的结果中,先输出第一个皇后位置靠前的结果;第一个皇后位置相同,先输出第二个皇后位置靠前...原创 2019-09-10 10:11:40 · 324 阅读 · 0 评论 -
noj穷举n位二进制数
1323 ProblemF穷举n位二进制数时限:100ms内存限制:10000K总时限:300ms描述:输入一个小于20的正整数n,要求按从小到大的顺序输出所有的n位二进制数,每个数占一行。输入:输入一个小于20的正整数n。输出:按从小到大的顺序输出所有的n位二进制数,每个数占一行。输入样例:3输出样例:...原创 2019-09-09 14:48:01 · 398 阅读 · 0 评论 -
dp 房屋染色
描述中文English这里有n个房子在一列直线上,现在我们需要给房屋染色,分别有红色蓝色和绿色。每个房屋染不同的颜色费用也不同,你需要设计一种染色方案使得相邻的房屋颜色不同,并且费用最小,返回最小的费用。费用通过一个nx3的矩阵给出,比如cost[0][0]表示房屋0染红色的费用,cost[1][2]表示房屋1染绿色的费用。所有费用都是正整数您在真实的面试中是否遇到过这...原创 2020-01-08 17:52:01 · 299 阅读 · 0 评论