ToBe-YOU
ToBe-YOU
全部文章
分类
题解(15)
归档
标签
去牛客网
登录
/
注册
ToBe-YOU的博客
全部文章
(共15篇)
题解 | #集合的所有子集(二)#
递归 + 回溯 + 访问标记 举例说明,对于数组[1,2,2],将其标记为[1,2,2']。 排序后,对于相邻的相等元素: 如果我们访问了2,再访问2'; 将子集[2, 2']加入结果。继续。 如果我们访问了2',却还没有访问2,我们是不希望有这种情况的,得跳过。 class Solution ...
C++
递归
回溯
2022-01-06
2
509
题解 | #数组中只出现一次的数(其它数出现k次)#
如果k个相同的k进制数进行无进位相加,相加的结果一定是每一位上都是0的k进制数。 所有的数都是32位整型,讲所有数都转为二进制数,计算所有数在32位每一位的和。如果该位可以被k整除,则表示那个只出现一次的数在该位为0;如果该位整除不为0, 则表示那个只出现一次的数在该位为1。 class Solu...
C++
位运算
2022-01-04
0
447
题解 | #大数乘法#
最简单的做法:先不进位,把各个位的数算出来,同一位置累加,最后再做进位操作。 以6789 x 8976为例: class Solution { public: void str2num(string& s, vector<int>& num){ ...
C++
数组
2022-01-01
0
407
题解 | #集合的所有子集(一)#
1. 递归 每次递归,当前位置的数字可以选择或者不选择。 class Solution { public: vector<vector<int> > res; void dfs(vector<int>& S, vector<int&g...
C++
递归
位运算
2021-12-31
2
490
题解 | #验证IP地址#
class Solution { public: const string IPV4 = "IPv4"; const string IPV6 = "IPv6"; const string NEITHER = "Neither"; const char IP4_SEP ...
C++
字符串
2021-12-30
0
434
题解 | #序列化二叉树#
1. 先序遍历解法 /* struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL...
C++
二叉树
2021-12-29
1
435
题解 | #最长的括号子串#
1.栈 用栈保存最近未匹配括号的下标,将栈初始化为{-1}。 只有当前字符s[i]为')'且未匹配括号为'('时,弹出栈顶元素,并更新匹配括号子串的最大长度。 否则就将当前括号的下标进栈。 class Solution { public: /** * * @param ...
C++
动态规划
字符串
栈
2021-12-26
0
408
题解 | #滑动窗口的最大值#
c++双端队列 参考精华解答,时间复杂度O(n),空间复杂度O(n),记录一下,熟悉解题思路 用双端队列保存数组元素下标。队列中数组下标对应元素应当是递减的,这是为了通过下标保存当前这个window下,最大、第二大、第三大……的元素。最大元素的下标始终在队头。 如果队列为空,或者当前元素小于队...
C++
队列
2021-12-24
1
459
题解 | #数字字符串转化成IP地址#
class Solution { public: vector<string> res; string src_str; int str_len; string trans(vector<string> str_vec){ ...
C++
字符串
递归
深度优先搜索
回溯
2021-12-22
0
513
题解 | #求路径# 空间优化
经典动态规划的方程为: dp[i][j] = dp[i][j-1] + dp[i-1][j] 因为只要求解总路径数,dp[i][j]只与左边和上边的状态有关,不需要保存中间状态。 因而可以只用一个数组来保存。当前需要更新的黄色的dp[j]为:刚更新的dp[j-1] 与 旧的dp[j]值之和。 cl...
C++
动态规划
2021-12-18
0
457
首页
上一页
1
2
下一页
末页