大厂算法岗必拿下
大厂算法岗必拿下
全部文章
题解
归档
标签
去牛客网
登录
/
注册
大厂算法岗必拿下的博客
欢迎一起学习~
全部文章
/ 题解
(共212篇)
题解 | #正则表达式匹配#
来自专栏
懂了动态规划的路径。 注意dp[0][0] = true不要覆盖。 遇到号时,记得或运算,因为可以不管那个号。 其实边界条件就是让dp或者数组不超就行,因为开始条件已经初始化好的呢。并会自动具有各自的意义(数组的意义和动态规划方程的意义) class Solution { public: ...
2021-09-06
0
389
题解 | #第一个只出现一次的字符#
来自专栏
注意字典和字典的结合。 注意全是重复的时候最后返回-1 class Solution { public: int FirstNotRepeatingChar(string str) { if(!str.size()){ return 0; ...
2021-09-06
0
383
题解 | #整数中1出现的次数(从1到n整数中1出现的次数)#
来自专栏
借鉴了牛客 WosAlan的思路,感谢提供思路 此外要注意base要从1开始,每次*10,不要超过n。 class Solution { public: int NumberOf1Between1AndN_Solution(int n) { if(n==0){ ...
2021-09-06
0
355
题解 | #调整数组顺序使奇数位于偶数前面#
来自专栏
注意申明两个数组。 以及最后数组插入的方式。 class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param array int整型vector ...
2021-09-06
0
408
题解 | #把数组排成最小的数#
来自专栏
使用排序可以使问题复杂度讲到O(NlogN); 使用匿名函数进行sort排序。(类似于贪心的思想) 最后在组合在一起就好。 class Solution { public: string PrintMinNumber(vector<int> numbers) { ...
2021-09-06
0
375
题解 | #数字在升序数组中出现的次数#
来自专栏
只要找到重复数字的左边界。之后迭代判断即可。 class Solution { public: int GetNumberOfK(vector<int> data ,int k) { if(!data.size()) return 0; i...
2021-09-06
0
322
题解 | #二叉搜索树与双向链表#
来自专栏
不能new新的节点,但是可以保存这些中序遍历的节点。 由于需要消耗脑力建立的函数别忘了最后的调用。因此推荐先写出一个函数,然后在定义。 /* struct TreeNode { int val; struct TreeNode *left; struct TreeNode ...
2021-09-06
0
398
题解 | #数组中的逆序对#
来自专栏
这个题的要用归并排序做,否则时间复杂度太大。 原理,当左边的一个数比右边的一个数大的时候,那么包括左边的左边所有的数都比该数大,从而算出逆序对的个数。 然后从大的方面递归就相当于算出了最终完整的答案。 class Solution { public: int count = 0; ...
2021-09-06
0
434
题解 | #剪绳子#
来自专栏
一遇到,怎么选的时候,在分析的时候除了把基本的条件出来之后,那紧接着就需要用到递归。 递归会具有很大的时间复杂度,因此要用备忘录的形式剪枝。 其余看注释即可。 class Solution { public: int back_tack(int n, vector<int>&...
2021-09-06
0
328
题解 | #孩子们的游戏(圆圈中最后剩下的数)#
来自专栏
画成圈进行做题。 一般就会涉及加一个固定的长度。以及对一个数取余数。 其余看注释即可。 class Solution { public: int LastRemaining_Solution(int n, int m) { if(n<=0) return -1; ...
2021-09-06
0
552
首页
上一页
5
6
7
8
9
10
11
12
13
14
下一页
末页