OJ
OJ
博_采_众_长
理论与实践并行!
展开
-
LintCode 18.子集 II
文章目录描述思路题解描述给定一个可能具有重复数字的列表,返回其所有可能的子集。样例样例 1:输入:[0]输出:[ [], [0]]样例 2:输入:[1,2,2]输出:[ [2], [1], [1,2,2], [2,2], [1,2], []]挑战你可以同时用递归与非递归的方式解决么?注意事项子集中的每个元素都是非降序的两个子集间的顺序是无关紧要的解集中不能包含重复子集思路题解...原创 2020-12-19 16:06:32 · 132 阅读 · 3 评论 -
LintCode 17.子集
文章目录描述思路题解描述给定一个含不同整数的集合,返回其所有的子集。样例样例 1:输入:[0]输出:[ [], [0]]样例 2:输入:[1,2,3]输出:[ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], []]挑战你可以同时用递归与非递归的方式解决么?注意事项子集中的元素排列必须是非降序的,解集必须不包含重复的子集。思路采用递归的方法,将数组从小到大排好序,每次执行subsets原创 2020-12-19 15:44:19 · 167 阅读 · 1 评论 -
CCF认证-20190301-小中大
CCF认证考试题解目录C++题解 数组也不需要用,注意偶数的时候分为中间两数之和是偶数或奇数两种情况。#include <bits/stdc++.h>using namespace std;int main(){ int N,a,b=0,c; scanf("%d",&N); scanf("%d",&a); for(int i = 1; i <原创 2020-10-15 17:49:49 · 135 阅读 · 0 评论 -
CCF认证-20190902-小明种苹果(续)
CCF认证考试题解目录C++题解 用数组记录果树的????数,用数组记录每棵树是否有????掉落,最后循环一下看看是否存在相邻连续三棵树发生????掉落的情况。 这种情况不许需要考虑2棵树及以下的情况,都适用(全局数组开始的时候都初始化为0)。#include <bits/stdc++.h>using namespa原创 2020-10-15 17:09:24 · 99 阅读 · 0 评论 -
CCF认证-20190901-小明种苹果
CCF认证考试题解目录C++题解 呵呵,小学题都得交两边,哈哈哈。#include <bits/stdc++.h>using namespace std;int shu[1005];int guo[1005];int main(){ int N,M,sum=0; scanf("%d%d",&N,&M); for(int i = 0; i < N原创 2020-10-15 16:16:14 · 117 阅读 · 0 评论 -
CCF认证-20191202-回收站选址
CCF认证考试题解目录C++题解 直接模拟就行了!主要提高自己对STL库的熟练程度!参考日沉云起大佬!自己的实现方法是在是小学生,不,可能连小学生都不如,┭┮﹏┭┮!...原创 2020-10-15 15:20:48 · 115 阅读 · 0 评论 -
CCF认证-20191201-报数
CCF认证考试题解目录C++题解 只怪自己太菜,只会做第一第二题,后三道不会呀,ε=(´ο`*)))唉;#include <bits/stdc++.h>using namespace std;bool ok(int num){ while(num) { if(num%10==7) return true; num/=10; } retu原创 2020-10-14 09:40:56 · 169 阅读 · 0 评论 -
LeetCode 1002. 查找常用字符(数组Hash)
1.题目给定仅有小写字母组成的字符串数组 A,返回列表中的每个字符串中都显示的全部字符(包括重复字符)组成的列表。例如,如果一个字符在每个字符串中出现 3 次,但不是 4 次,则需要在最终答案中包含该字符 3 次。你可以按任意顺序返回答案。示例 1:输入:["bella","label","roller"]输出:["e","l","l"]示例 2:输入:["cool","lock","cook"]输出:["c","o"] 提示:1 <= A.length <= 10原创 2020-10-14 09:00:07 · 94 阅读 · 0 评论 -
LeetCode 1. 两数之和(一遍Hash)
1.题目给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/two-sum著作原创 2020-10-13 21:05:18 · 148 阅读 · 2 评论 -
CCF认证-20200602-稀疏向量
CCF认证考试题解目录C++题解 ios::sync_with_stdio(false);加上这句代码可以加速数据的读入,事实上取消cin和scanf的同步,cin和scanf的速度是差不多的!详情请见OJ神器 - sync_with_stdio。#include <bits/stdc++.h>using namespace std;int main(){ long long res =0原创 2020-10-13 15:34:53 · 138 阅读 · 0 评论 -
CCF认证-20200601-线性分类器
CCF认证考试题解目录测试用例9 31 1 A1 0 A1 -1 A2 2 B2 3 B0 1 A3 1 B1 3 B2 0 A0 2 -3-3 0 2-3 1 1C++题解 不知道为啥用pair就显示编译错误。#include <bits/stdc++.h>using namespace std;vector<int> A1,A2;vector<原创 2020-10-13 14:59:30 · 300 阅读 · 0 评论 -
CCF认证-20200901-称检测点查询
CCF认证考试题解目录原创 2020-10-12 14:09:44 · 1745 阅读 · 0 评论 -
CCF认证-20200902-风险人群筛查
题目背景某地疫情爆发后,出于“应检尽检”的原则,我们想要通知所有近期经过该高危区域的居民参与核酸检测。问题描述想要找出经过高危区域的居民,分析位置记录是一种简单有效的方法。具体来说,一位居民的位置记录包含 t 个平面坐标 (x1,y1),(x2,y2),⋯,(xt,yt),其中 (xi,yi) 表示该居民 i 时刻所在位置。高危区域则可以抽象为一个矩形区域(含边界),左下角和右上角的坐标分别为 (xl,yd) 和 (xr,yu),满足 xl<xr 且 yd<yu。考虑某位居民的位置记录原创 2020-10-12 13:49:06 · 683 阅读 · 0 评论 -
CCF认证考试题解目录(持续更新)
该认证考试代码均采用C++语言来进行编写!!!编号标题题解202009-1原创 2020-10-12 13:24:44 · 578 阅读 · 2 评论 -
LeetCode 151. 翻转字符串里的单词(双指针+API)
1.题目给定一个字符串,逐个翻转字符串中的每个单词。示例 1:输入: "the sky is blue"输出: "blue is sky the"示例 2:输入: " hello world! "输出: "world! hello"解释: 输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。示例 3:输入: "a good example"输出: "example good a"解释: 如果两个单词间有多余的空格,将反转后单词间的空格减少到只含一个。原创 2020-07-29 10:10:40 · 178 阅读 · 0 评论 -
LeetCode 1177. 构建回文串检测(前缀和+位运算)
1.题目给你一个字符串 s,请你对 s 的子串进行检测。每次检测,待检子串都可以表示为 queries[i] = [left, right, k]。我们可以 重新排列 子串 s[left], …, s[right],并从中选择 最多 k 项替换成任何小写英文字母。如果在上述检测过程中,子串可以变成回文形式的字符串,那么检测结果为 true,否则结果为 false。返回答案数组 answer[],其中 answer[i] 是第 i 个待检子串 queries[i] 的检测结果。注意:在替换时,子串中原创 2020-07-28 11:33:18 · 217 阅读 · 0 评论 -
LeetCode 128. 最长连续序列(Hash)
1.题目给定一个未排序的整数数组,找出最长连续序列的长度。要求算法的时间复杂度为 O(n)。示例:输入: [100, 4, 200, 1, 3, 2]输出: 4解释: 最长连续序列是 [1, 2, 3, 4]。它的长度为 4。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/longest-consecutive-sequence/著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。2.题解思路:一见到时间复杂度原创 2020-06-06 21:02:38 · 189 阅读 · 0 评论 -
LeetCode 101. 对称二叉树(递归+迭代)
1.题目给定一个二叉树,检查它是否是镜像对称的。例如,二叉树 [1,2,2,3,4,4,3] 是对称的。 1 / \ 2 2 / \ / \3 4 4 3 但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的: 1 / \ 2 2 \ \ 3 3 进阶:你可以运用递归和迭代两种方法解决这个问题吗?来源:力扣(LeetCode)链接:https://leetcode-cn.com/p原创 2020-05-31 21:52:53 · 239 阅读 · 0 评论 -
LeetCode 84. 柱状图中最大的矩形(单调栈)
1.题目给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。求在该柱状图中,能够勾勒出来的矩形的最大面积。以上是柱状图的示例,其中每个柱子的宽度为 1,给定的高度为 [2,1,5,6,2,3]。图中阴影部分为所能勾勒出的最大矩形面积,其面积为 10 个单位。示例:输入: [2,1,5,6,2,3]输出: 10来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/largest-rectangle-i原创 2020-05-30 15:45:10 · 217 阅读 · 0 评论 -
LeetCode 198. 打家劫舍(动态规划+滚动数组)
1.题目你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。示例 1:输入: [1,2,3,1]输出: 4解释: 偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号房屋 (金额 = 3)。 偷窃到的最高金额 = 1 + 3 = 4 。示例 2原创 2020-05-29 16:29:58 · 171 阅读 · 0 评论 -
面试题56 - I. 数组中数字出现的次数(异或运算)
1.题目一个整型数组 nums 里除两个数字之外,其他数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1)。示例 1:输入:nums = [4,1,4,6]输出:[1,6] 或 [6,1]示例 2:输入:nums = [1,2,10,4,1,4,3,3]输出:[2,10] 或 [10,2] 限制:2 <= nums ...原创 2020-04-28 08:46:38 · 239 阅读 · 0 评论 -
LeetCode 287. 寻找重复数(不关注数组,关注元素)
1.题目给定一个包含 n + 1 个整数的数组 nums,其数字都在 1 到 n 之间(包括 1 和 n),可知至少存在一个重复的整数。假设只有一个重复的整数,找出这个重复的数。示例 1:输入: [1,3,4,2,2]输出: 2示例 2:输入: [3,1,3,4,2]输出: 3说明:不能更改原数组(假设数组是只读的)。只能使用额外的 O(1) 的空间。时间复杂度小于 O(n2) 。数组中只有一个重复的数字,但它可能不止重复出现一次。来源:力扣(LeetCode)链接:h原创 2020-05-26 00:15:35 · 151 阅读 · 0 评论 -
LeetCode 105. 从前序与中序遍历序列构造二叉树(递归)
1.题目根据一棵树的前序遍历与中序遍历构造二叉树。注意:你可以假设树中没有重复的元素。例如,给出前序遍历 preorder = [3,9,20,15,7]中序遍历 inorder = [9,3,15,20,7]返回如下的二叉树: 3 / \ 9 20 / \ 15 7来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/construct-binary-tree-from-preorder-an原创 2020-05-22 13:26:42 · 210 阅读 · 0 评论 -
LeetCode 5. 最长回文子串(中心扩展算法)
1.题目给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。示例 1:输入: "babad"输出: "bab"注意: "aba" 也是一个有效答案。示例 2:输入: "cbbd"输出: "bb"来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/longest-palindromic-substring/著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。2.题解中心扩展算法原创 2020-05-21 08:11:23 · 179 阅读 · 0 评论 -
LeetCode 1371. 每个元音包含偶数次的最长子字符串(暴力+简单优化 + 前缀和+状态压缩)
1.题目给你一个字符串 s ,请你返回满足以下条件的最长子字符串的长度:每个元音字母,即 ‘a’,‘e’,‘i’,‘o’,‘u’ ,在子字符串中都恰好出现了偶数次。示例 1:输入:s = "eleetminicoworoep"输出:13解释:最长子字符串是 "leetminicowor" ,它包含 e,i,o 各 2 个,以及 0 个 a,u 。示例 2:输入:s = "leetcodeisgreat"输出:5解释:最长子字符串是 "leetc" ,其中包含 2 个 e 。示例 3:原创 2020-05-20 23:02:17 · 233 阅读 · 0 评论 -
LeetCode 680. 验证回文字符串 Ⅱ(双指针+删除)
1.题目给定一个非空字符串 s,最多删除一个字符。判断是否能成为回文字符串。示例 1:输入: "aba"输出: True示例 2:输入: "abca"输出: True解释: 你可以删除c字符。注意:字符串只包含从 a-z 的小写字母。字符串的最大长度是50000。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/valid-palindrome-ii著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。2原创 2020-05-19 07:26:17 · 215 阅读 · 0 评论 -
LeetCode 125. 验证回文串(双指针)
1.题目给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串。示例 1:输入: "A man, a plan, a canal: Panama"输出: true示例 2:输入: "race a car"输出: false来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/valid-palindrome著作权归领扣网络所有。商业转载请联系官方授权,非商业转原创 2020-05-19 06:54:53 · 145 阅读 · 0 评论 -
LeetCode 152. 乘积最大子数组(在线处理+动态规划)
1.题目给你一个整数数组 nums ,请你找出数组中乘积最大的连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。示例 1:输入: [2,3,-2,4]输出: 6解释: 子数组 [2,3] 有最大乘积 6。示例 2:输入: [-2,0,-1]输出: 0解释: 结果不能为 2, 因为 [-2,-1] 不是子数组。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/maximum-product-subarray原创 2020-05-18 20:07:55 · 227 阅读 · 0 评论 -
LeetCode 210. 课程表 II(Kahn)
1.题目现在你总共有 n 门课需要选,记为 0 到 n-1。在选修某些课程之前需要一些先修课程。 例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用一个匹配来表示他们: [0,1]给定课程总量以及它们的先决条件,返回你为了学完所有课程所安排的学习顺序。可能会有多个正确的顺序,你只要返回一种就可以了。如果不可能完成所有课程,返回一个空数组。示例 1:输入: 2, [[1,0]] 输出: [0,1]解释: 总共有 2 门课程。要学习课程 1,你需要先完成课程 0。因此,正确的课程顺序为原创 2020-05-17 09:01:49 · 157 阅读 · 0 评论 -
LeetCode 25. K 个一组翻转链表(递归+模拟)
1.题目给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表。k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。示例:给你这个链表:1->2->3->4->5当 k = 2 时,应当返回: 2->1->4->3->5当 k = 3 时,应当返回: 3->2->1->4->5 说明:你的算法只能使用常数的额外空间。你不能只是单纯的改原创 2020-05-16 21:33:23 · 242 阅读 · 0 评论 -
LeetCode 560. 和为K的子数组(前缀和 + 哈希表优化)
1.题目给定一个整数数组和一个整数 k,你需要找到该数组中和为 k 的连续的子数组的个数。示例 1 :输入:nums = [1,1,1], k = 2输出: 2 , [1,1] 与 [1,1] 为两种不同的情况。说明 :1.数组的长度为 [1, 20,000]。2.数组中元素的范围是 [-1000, 1000] ,且整数 k 的范围是 [-1e7, 1e7]。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/subarray-su原创 2020-05-15 09:38:40 · 249 阅读 · 0 评论 -
LeetCode 103. 二叉树的锯齿形层次遍历(双端队列+BFS)
1.题目给定一个二叉树,返回其节点值的锯齿形层次遍历。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。例如:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回锯齿形层次遍历如下:[ [3], [20,9], [15,7]]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/binary-tree-zigz原创 2020-05-13 23:16:53 · 141 阅读 · 0 评论 -
LeetCode 107. 二叉树的层次遍历 II(倒装+逆序)
1.题目给定一个二叉树,返回其节点值自底向上的层次遍历。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)例如:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回其自底向上的层次遍历为:[ [15,7], [9,20], [3]]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/binary-tree-level-or原创 2020-05-13 10:11:41 · 282 阅读 · 0 评论 -
LeetCode 102. 二叉树的层序遍历(DFS+BFS)
1.题目给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。示例:二叉树:[3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回其层次遍历结果:[ [3], [9,20], [15,7]]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/binary-tree-level-order-traversal原创 2020-05-13 07:35:27 · 250 阅读 · 0 评论 -
LeetCode 155. 最小栈(双栈)
1.题目设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。push(x) —— 将元素 x 推入栈中。pop() —— 删除栈顶的元素。top() —— 获取栈顶元素。getMin() —— 检索栈中的最小元素。输入:["MinStack","push","push","push","getMin","pop","top","getMin"][[],[-2],[0],[-3],[],[],[],[]]输出:[null,null,null,null,-原创 2020-05-12 18:28:22 · 141 阅读 · 0 评论 -
LeetCode 50. Pow(x, n) (快速幂 递归+迭代)
1.题目实现 pow(x, n) ,即计算 x 的 n 次幂函数。示例 1:输入: 2.00000, 10输出: 1024.00000示例 2:输入: 2.10000, 3输出: 9.26100示例 3:输入: 2.00000, -2输出: 0.25000解释: 2-2 = 1/22 = 1/4 = 0.25说明:-100.0 < x < 100.0n 是 32 位有符号整数,其数值范围是 [−231, 231 − 1] 。来源:力扣(LeetCode)原创 2020-05-11 08:41:54 · 252 阅读 · 0 评论 -
LeetCode 69. x 的平方根(二分+牛顿迭代)
1,题目实现 int sqrt(int x) 函数。计算并返回 x 的平方根,其中 x 是非负整数。由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。示例 1:输入: 4输出: 2示例 2:输入: 8输出: 2说明: 8 的平方根是 2.82842..., 由于返回类型是整数,小数部分将被舍去。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/sqrtx著作权归领扣网络所有。商业转载请联系官方授权,非原创 2020-05-09 07:58:42 · 137 阅读 · 0 评论 -
LeetCode 221. 最大正方形(动态规划)
1.题目在一个由 0 和 1 组成的二维矩阵内,找到只包含 1 的最大正方形,并返回其面积。示例:输入: 1 0 1 0 01 0 1 1 11 1 1 1 11 0 0 1 0输出: 4来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/maximal-square/著作权归领扣网络所有。商业转载请联系官方授权,非商...原创 2020-05-08 19:56:11 · 217 阅读 · 0 评论 -
LeetCode 572. 另一个树的子树(dfs)
1.题目给定两个非空二叉树 s 和 t,检验 s 中是否包含和 t 具有相同结构和节点值的子树。s 的一个子树包括 s 的一个节点和这个节点的所有子孙。s 也可以看做它自身的一棵子树。示例 1:给定的树 s: 3 / \ 4 5 / \ 1 2给定的树 t: 4 / \ 1 2返回 true,因为 t 与 s 的一个子树拥有相同...原创 2020-05-07 17:43:20 · 123 阅读 · 0 评论 -
LeetCode 983. 最低票价(动态规划+记忆化搜索)
1.题目在一个火车旅行很受欢迎的国度,你提前一年计划了一些火车旅行。在接下来的一年里,你要旅行的日子将以一个名为 days 的数组给出。每一项是一个从 1 到 365 的整数。火车票有三种不同的销售方式:一张为期一天的通行证售价为 costs[0] 美元;一张为期七天的通行证售价为 costs[1] 美元;一张为期三十天的通行证售价为 costs[2] 美元。通行证允许数天无限制的...原创 2020-05-06 10:38:57 · 236 阅读 · 4 评论