![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
每天一道算法题
「已注销」
这个作者很懒,什么都没留下…
展开
-
0031树节点的第k个祖先
树节点的第k个祖先编号:0031试题来源:leetcodemy blog:Something试题描述给定一棵树,树上有n个节点,按照从0到n-1进行编号。树以父节点数组的形式给出,其中parent[i]是节点i的父节点。树的根节点是编号为0的节点。其中parent[0]=-1表示其没有父节点。请设计并实现getKthAncestor(int node, int k)函数,返回值为节点node的第k个祖先节点。若不存在,则返回-1。树节点的第k个祖先节点是从该节点到根节点路径上的第k个节点。原创 2020-06-20 19:16:08 · 434 阅读 · 0 评论 -
0030制作m束花所需要的最少天数
制作m束花所需要的最少天数编号:0030试题来源:leetcodemy blog:Something题目描述给定一个整数数组bloomDay,以及两个整数m和k。现需要制作m束花。制作花束的时候,需要使用花园中相邻的k朵花。花园中有n朵花,第i朵花会在bloomDay[i]时盛开,恰好可以用于一束花中。请返回从花园中摘m束花需要等待的最少的天数。如果不能摘到m束花,则返回-1。解答算法算法思路此题目用到的方法是二分法。好像只要答案符合单调的性质,都可以使用二分法进行解答。这里面返原创 2020-06-15 23:43:00 · 126 阅读 · 0 评论 -
0029转变数组后最接近目标值的数组和
转变数组后最接近目标值的数组和编号:0029试题来源:leetcode我的博客:Something试题描述给定一个数组arr和一个目标值target,请返回一个整数value,使得将数组中所有大于value的值变成value后,数组的和最接近target(最接近表示两者之差的绝对值最小)如果有多种使得和最接近target的方案,请返回这些整数中最小的值。请注意,value不一定是arr中的数字1≤arr.length≤1041\leq arr.length\leq 10^41≤arr原创 2020-06-14 23:40:34 · 98 阅读 · 0 评论 -
0028在圆内随机生成点
在圆内随机生成点编号:0028试题来源:leetcode我的博客:Something题目描述给定圆的半径和圆心的x和y坐标,写一个在圆中产生均匀随机点的函数randPoint说明:输入值和输出值都将是浮点数圆的半径和圆心的x、y坐标将作为参数传递给类的构造函数圆周上的点也认为在圆中randPoint返回一个包含随机点的x坐标和y坐标的大小为2的数组解答算法解答思路这道题大概有两种解答思路,第一种是拒绝采样,就是选取一个更容易随机生成的图形,例如一个正方形,让其边长为半径原创 2020-06-11 00:16:21 · 514 阅读 · 0 评论 -
0027把数字翻译成字符串
把数字翻译成字符串编号:0027试题来源:[leetcode]试题描述给定一个数字,按照如下规则将其翻译为字符串:0翻译成a,1翻译成b,⋯\cdots⋯,25翻译成z。一个数字可能有多种翻译,例如25既有可能分开翻译成cf,也有可能翻译成z。请输出给定数字有多少种不同的翻译方法。说明0≤num≤2310\leq num\leq 2^{31}0≤num≤231解答算法算法思路很显然这道题目应该是用动态规划的方法来看。我们假设dp[i]代表的是前iii位数字的可能翻译种类,注意假原创 2020-06-09 21:59:05 · 308 阅读 · 0 评论 -
0026KnapsackForAllSubsets
Knapsack for All Subsets编号:0026试题来源:AtCoder文章目录试题描述输入解答算法代码实现试题描述给定有NNN个正整数的一个序列A1,⋯ ,ANA_1,\cdots,A_NA1,⋯,AN,以及一个正整数SSS。对于任意一个{1,2,⋯ ,N}\{1,2,\cdots,N\}{1,2,⋯,N}的非空子集TTT,定义f(T)f(T)f(T)如下:f(T)f(T)f(T)是互不相同的TTT的非空子集x1,x2,⋯ ,xkx_1,x_2,\cdots,x_kx原创 2020-06-06 15:24:42 · 161 阅读 · 0 评论 -
0025CountMedian
Count Median编号:0025题目来源:AtCoder文章目录题目描述输入解答算法算法思路代码实现复杂度分析题目描述假定有NNN个整数X1,X2,… ,XNX_1,X_2,\dotso,X_NX1,X2,…,XN,我们知道其中的任意一个整数Ai≤Xi≤BiA_i\leq X_i \leq B_iAi≤Xi≤Bi,也就是说我们知道每一个数取值的上下界,要给出这NNN个整数的中位数的可能取值情况。当N&1=1N \& 1 = 1N&1=1的时候,也就是原创 2020-06-05 13:53:31 · 123 阅读 · 0 评论 -
0024DivGame
Div Game编号:0024试题来源:AtCoder题目描述给定一个正整数NNN,思考对NNN进行下面重复的操作首先,选定一个正整数zzz满足下面所有的要求:zzz能够被表示为z=pez=p^ez=pe,这里面的ppp是质数,eee是正整数N%z==0N\%z ==0N%z==0zzz和先前选择的整数不同然后继续对N/zN/zN/z进行上述操作找到这个操作能够进行的最大次数条件所有的输入都是整数1≤N≤10121\leq N\leq 10^{12}1≤N≤101原创 2020-06-04 14:58:19 · 118 阅读 · 0 评论 -
0023Multiplication2
Multiplication 2编号:0023试题来源:AtCoder试题描述给定NNN个整数A1,… ,ANA_1,\dotso,A_NA1,…,AN,计算A1×⋯×ANA_1\times \dots\times A_NA1×⋯×AN。当乘积的结果大于101810^{18}1018,输出-1而不是乘积说明:2≤N≤1052\leq N\leq 10^52≤N≤1050≤Ai≤10180\leq A_i \leq 10^{18}0≤Ai≤1018所有的输入都是非负整数原创 2020-06-04 11:41:23 · 184 阅读 · 0 评论 -
0022柱状图中最大的矩形
柱状图中最大的矩形编号:0022试题来源:leetcode文章目录题目描述解答算法算法思路代码实现复杂度分析题目描述给定nnn个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为1。求在该柱形图中,能够勾勒出来的矩形的最大面积。解答算法算法思路我们在思考最大的矩形的时候,可以任意选取一个柱子i,以其高度height[i]作为基准,向左右两侧进行拓展,如果拓展到的柱子的高度大于等于height[i],那么其可以作为以当前高度作为高的举行的一部分,如果小于,那么就可以得到原创 2020-05-30 04:12:56 · 95 阅读 · 0 评论 -
0021和可被K整除的子数组
和可被K整除的子数组编号:0021试题来源:leetcode文章目录题目描述解答算法逐一统计算法思路代码实现复杂度分析题目描述给定一个整数数组A,返回其中元素之和可被K整除的(连续、非空)子数组的数目1≤A.length≤300001\leq A.length\leq 300001≤A.length≤30000−10000≤A[i]≤10000-10000\leq A[i]\leq 10000−10000≤A[i]≤100002≤K≤100002\leq K\leq 100002≤K原创 2020-05-27 17:29:27 · 241 阅读 · 0 评论 -
0020LRU缓存机制
LRU缓存机制编号:0020题目来源:leetcode文章目录题目描述解答算法算法思路代码实现题目描述运用所掌握的数据结构,设计和实现一个**LRU(最近最少使用)缓存机制。**它应当支持以下操作:获取数据get和写入数据put,要求两种操作的时间复杂度为O(1)O(1)O(1)获取数据get(key):如果关键字key存在于缓存中,则获取关键字的值(总是正数),否则返回-1写入数据put(key,value):如果关键字已经存在,则变更其数据值,如果关键字不存在,则插入该组关键字和值关键原创 2020-05-26 11:05:38 · 83 阅读 · 0 评论 -
0019两个子序列的最大点积
两个子序列的最大点积编号:0019试题来源:leetcode周赛190文章目录题目描述解答算法算法思路实现代码复杂度分析题目描述给定两个数组nums1和nums2请返回nums1和nums2中两个长度相同的非空子序列的最大点积。数组的非空子序列是通过**删除原数组中某些元素(可能一个也不删除)**后剩余数字组成的序列,但不能改变数字间相对顺序。1≤nums1.length,nums2.length≤5001\leq nums1.length,nums2.length\leq 5001原创 2020-05-25 18:57:33 · 152 阅读 · 0 评论 -
0018寻找两个正序数组的中位数
寻找两个正序数组的中位数编号:0018试题来源:leetcode文章目录试题描述解答算法暴力解法算法思路代码实现复杂度分析二分查找算法算法思路代码实现试题描述给定两个大小为mmm和nnn的正序(从小大大)数组nums1和nums2。请找出这两个正序数组的中位数,并要求算法的算法的时间复杂度为O(log(m+n))O(log(m+n))O(log(m+n))假设num1和nums2不会同时为空解答算法暴力解法算法思路没做出来这道题,用的是两个有序数组的归并排序,合并的时间复杂度为O原创 2020-05-24 23:10:21 · 150 阅读 · 0 评论 -
0017最小覆盖子串
最小覆盖子串编号:0017题目来源:leetcode文章目录试题描述解答算法算法思路实现代码复杂度分析试题描述给定一个字符串S,一个字符串T,请在字符串S中找出包含T所有字符的最小子串如果S中不存在这样的子串,则返回空字符串""如果S中存在这样的子串,测试用例保证它是唯一的答案解答算法算法思路这道题用到的还是滑动窗口算法。简单的来说,就是维护两个指针begin和end,先移动end,当能够满足begin和end中子串满足条件的时候,停止移动end,转而移动begin,如果移动原创 2020-05-23 23:28:35 · 102 阅读 · 0 评论 -
0015重新排列句子中的单词
重新排列句子中的单词编号:0015题目来源:leetcode189周赛文章目录题目描述解答算法算法思路代码实现复杂度分析题目描述句子是一个用空格分隔单词的字符串。给你一个满足下述格式的句子text:句子的首字母大写text中的每个单词都用单个空格分隔请重新排列text中的单词,使所有单词按其长度的升序排列。如果两个单词的长度相同,则保留其在原句子中的相对顺序。请同样按上述格式返回新的句子。解答算法算法思路首先题目给的是一个string类型的变量,我们要把其按照空格进行拆分。原创 2020-05-18 22:45:32 · 328 阅读 · 0 评论 -
0014数位成本和为目标值的最大数字
数位成本和为目标值的最大数字编号:0014试题来源:leetcode文章目录题目描述解答算法算法思路代码实现复杂度分析题目描述给定整数数组cost和一个整数target。返回满足如下规则的可以得到的最大整数:给当前结果添加一个数位i+1的成本为cost[i](cost数组的下标从0开始)总成本必须恰好等于target添加的位数中没有数字0返回类型string如果无法得到任何整数,那么返回0。解答算法算法思路很显然这是一个0-1完全背包问题。我用的是暴力做法,时间复杂度太高原创 2020-05-17 15:44:10 · 282 阅读 · 0 评论 -
0013BracketSequencing
Bracket Sequencing编号:0013题目来源:AtCoder题目描述给出NNN个字符串,全都是由(和)组成的,判断S1,S2,⋯ ,SNS_1,S_2,\cdots,S_NS1,S2,⋯,SN能否以合理的顺序,满足其中的(和)配对成功。(注意配对的(和)一定是(在前,)在后)变量范围:1≤N≤1061\leq N \leq 10^61≤N≤106SiS_iSi的长度最多为10610^6106SiS_iSi非空数组,且仅包含(和)输入NS1S_1S1原创 2020-05-15 15:55:43 · 133 阅读 · 0 评论 -
0012ColorfulBlocks
Colorful Blocks编号:0012试题来源:AtCoder文章目录题目描述解答算法算法思路实现代码复杂度分析题目描述有NNN个连续排列成一行的方块,对他们进行涂色。总共有MMM种可以使用的颜色,不要求一定使用所有的颜色,最多有KKK对相邻的方块有相同的颜色(例如:涂色为11233,这里面有2对相邻的方块有相同的颜色)输入: N M K输出:可能的次数mod(998244353)解答算法算法思路进行遍历判断,题目要求最多有KKK对相邻的方块有相同的颜色,定义f(原创 2020-05-14 11:06:33 · 201 阅读 · 0 评论 -
0011SkillUp
Skill Up编号:0011试题来源:AtCoder试题描述怪人想要学习MMM门算法,假设对于技艺的掌握程度是可以量化的,怪人的期望是对于这MMM门算法,每一门的掌握程度都要大于XXX。提高掌握程度的方法是读书,假设书店中共有NNN本书,其中第iii本书的价格是CiC_iCi,对于第jjj门算法的提升程度是Ai,jA_{i,j}Ai,j。以上均为已知,判断能否满足怪人的期望,如果可以的话,请问最少花费?取值范围:所有值都是整数1≤N,M≤121\leq N, M\leq 121≤原创 2020-05-11 21:41:30 · 300 阅读 · 0 评论 -
0010 Pow(x,n)
Pow(x,n)编号:0010试题来源:leetcode文章目录题目描述示例解答算法递归(我的解法)算法思路实现代码复杂度分析递归(官方解答)代码实现迭代(官方解答)算法思路代码实现复杂度分析题目描述实现pow(x,n)pow(x,n)pow(x,n),即计算xxx的nnn次幂其中−100.0<x<100.0-100.0 < x<100.0−100.0<x<100.0nnn是32位有符号整数,其数值范围是[−231,231−1][-2^{31},2^{原创 2020-05-11 21:01:02 · 70 阅读 · 0 评论 -
0009 二叉树的最近公共祖先
二叉树的最近公共祖先编号:0009试题来源:leetcode文章目录试题描述示例解答算法递归(自己想的)思路分析代码实现复杂度分析递归思路(官方题解)思路代码实现复杂度试题描述给定一个二叉树,找到该树中两个指定节点的最近公共祖先。公共祖先的定义为:对于有根树TTT的两个结点p,qp,qp,q,最近公共节点表示为一个结点xxx,满足xxx时p,qp,qp,q的祖先,且xxx的深度尽可能大(一个节点也可以是它自己的祖先)此题中所有的节点的值val都是唯一的p,q为不同节点,且均存在于给定的原创 2020-05-10 20:22:29 · 84 阅读 · 0 评论 -
0008 最大正方形
最大正方形编号:0008试题来源:leetcode文章目录试题描述示例算法暴力法思路分析代码实现复杂度动态规划思路分析代码实现复杂度分析试题描述在一个由000和111组成的二维矩阵中,找到只包含1的最大正方形,并返回其面积。示例算法官方题解传送门暴力法思路分析对matrix二维数组进行遍历,当遍历到matrix[i][j] == 1的时候,以[i,j]作为可能正方形的左...原创 2020-05-08 17:17:37 · 147 阅读 · 0 评论 -
0007 另一个树的子树
另一个树的子树编号:0007题目来源:leetcode文章目录题目描述示例解答算法递归检查算法思路代码实现复杂度分析DFSDFSDFS序列上进行串匹配算法思路代码实现复杂度分析题目描述给定一个非空二叉树sss和ttt,检验sss中是否包含和ttt具有相同结构和节点值的子树。sss的一个子树包括sss的一个节点和这个节点的所有子孙。sss也可以看作它自身的一棵子树。树的结构如下:s...原创 2020-05-07 23:32:59 · 117 阅读 · 0 评论 -
0006 验证二叉搜索树
验证二叉搜索树编号:0006试题来源:leetcode文章目录题目描述示例解答算法递归思路分析代码实现复杂度分析中序遍历思路分析代码实现复杂度分析题目描述给定一个二叉树,判断其是否是一个有效的二叉搜索树。二叉搜索树的特征如下:节点的左子树只包含小于当前节点的数节点的右子树只包含大于当前节点的数所有的左子树和右子树自身必须也是二叉搜索树该题目中二叉树的结构定义struc...原创 2020-05-05 13:22:09 · 106 阅读 · 0 评论 -
0005 跳跃游戏Ⅱ
跳跃游戏Ⅱ编号:0005试题来源:leetcode文章目录题目描述示例解答算法反向查找出发位置算法思路代码实现复杂度分析正向查找可到达的最大位置思路分析代码实现复杂度分析题目描述给定一个非负整数数组,最初位于数组的第一个位置,数组中的每个元素代表你在该位置可以跳跃的最大长度。目标是使用最少的跳跃次数到达数组的最后一个位置。输出最少的跳跃次数。假设你总是可以到达数组的最后一个位置...原创 2020-05-04 15:33:56 · 106 阅读 · 0 评论 -
0004 无重复字符的最长子串
无重复字符的最长子串编号:0004试题来源:leetcode文章目录题目描述示例题解我的解法算法思路代码实现执行结果复杂度分析滑动窗口(官方题解)算法思路算法实现复杂度分析题目描述给定一个字符串,找出其中不含有重复字符的最长子串的长度。(注意,子串指的是原字符串中连续的部分)示例输入:"abcabcbb"输出:3解释:无重复字符的最长子串"abc",长度为3输...原创 2020-05-03 19:46:25 · 122 阅读 · 0 评论 -
0003 最大子序和
最大子序和编号:0003昨天出去玩,少写了一道,今天补上题目来源:leetcode文章目录题目描述示例题解动态规划思路分析代码提交结果算法复杂度分析分治法思路分析代码执行结果复杂度分析暴力法思路分析代码执行结果复杂度分析贪心法思路分析代码如下提交结果复杂度分析题目描述给定一个整数数组nums,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和示例输入:[-...原创 2020-05-03 17:07:38 · 149 阅读 · 0 评论 -
0002 合并两个有序链表
合并两个有序链表每天一道算法题编号:0002本文使用的编程语言c++,算法题来源leetcode文章目录题目描述示例题解我自己写的收集的解法迭代解法递归解法题目描述将两个升序链表合并成一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。链表的数据结构struct ListNode { int val; ListNode *next; Lis...原创 2020-05-01 21:44:42 · 117 阅读 · 0 评论 -
0001 回文数
回文数每天一道算法题,今天是第一天,目标是写到第一千天,希望我可以做到编号:0001本文使用的编程语言c++,算法题来源leetcode文章目录回文数题目描述示例输入输出题解转换为字符串不用转换为字符串完整比较不完整比较题目描述判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。(待判断的整数在int范围内)示例输入输出示例1:输入:...原创 2020-04-30 11:36:00 · 212 阅读 · 1 评论