changed.
changed.
全部文章
分类
题解(38)
归档
标签
去牛客网
登录
/
注册
changed.的博客
全部文章
(共38篇)
题解 | #最长递增子序列#
题意整理::对于给出的数组,要从其中找到一个子序列,满足序列中的数字是单调上升的,在满足的子序列中找到长度最长的并进行输出。子序列是指一个数组删除若干元素,但不改变其他元素相对位置形成的序列方法一:动态规划(超时)核心思想:定义为对前 个数中,以第 个数字结尾的最长上升子序列的长度,且必须被选取...
2021-07-20
30
3879
题解 | #包含min函数的栈#
方法一:辅助栈核心思想:普通栈的 和 函数的复杂度为,满足题目要求。但获取栈最小值的 函数需要遍历整个栈,复杂度为,所以本题的主要目的就在于优化对栈的最小值的获取,这可以通过使用一个具有单调性的辅助栈来实现。具体思路:数据栈:数据栈用于存储所有元素,保证函数的正常逻辑。辅助栈:辅助栈中存储数据...
2021-07-18
0
470
题解 | #字符串变形#
方法一:栈 核心思想: 题目要求将单词逆序输出,很容易想到一个思路就是利用栈的先入后出特性。 解法:首先读取单词,以空格为分界符(在字符串最后加上一个空格避免特判),读取的同时进行大小写转换,然后将单词加入到栈中。在全部单词读取完毕后,逐个弹出单词,即为答案 图示: 之后从栈顶逐个弹出即为答案 核...
2021-07-18
12
3911
题解 | #二分查找-II#
方法一:二分查找到指定元素后找到最左边 核心思想: 首先使用二分查找,寻找到一个与目标值相等的数,之后往左侧线性查找到最左边或到不等于目标值的元素 核心代码: class Solution { public: int search(vector<int>& nums, ...
2021-07-17
0
776
题解 | #比较版本号#
方法一:分割后比较核心思想:可以将需要比较的两个版本号按拆分为块,逐块进行比较,根据比较结果进行返回。注意:可能出现两个版本号块数不同,此时将较短版本号后续块中字符视为0。图示: 核心代码: class Solution { public: //用于拆分版本号的辅助函数 void...
2021-07-17
12
4421
题解 | #反转字符串#
方法一:遍历核心思想:开辟一个与原字符串同等大小的字符串,然后遍历输入的字符串,将其逆序输出到新字符串并返回过程如图:核心代码: class Solution { public: string solve(string str) { string ans = str; ...
2021-07-16
6
1915
题解 | #在二叉树中找到两个节点的最近公共祖先#
首先要明确题意,既寻找给定非空二叉树中的两个节点的最近公共祖先节点 祖先:若节点 o1 在 root的左子树/右子树上,或 o1 = root, 则 root 为 o1 祖先 最近公共祖先:节点 root 为 o1 和 o2 的公共祖先,且 root的左子树/右子树都不为 o1 和 o2的公共...
2021-07-16
40
2694
题解 | #缺失数字#
方法一:求和 核心思想:由题意可知,给定数组为0 - n中的n + 1个数去除一个数所得,所以只要将0 - n中所有数的和与给定数组的和做差,所得结果即为缺少的数。 既假设给定数组为$[0, 1, ..., k - 1, k + 1, ..., n],$ 缺少数字为k。 此时设数组和为: ...
2021-07-15
4
798
首页
上一页
1
2
3
4
下一页
末页