自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

吴尼玛cs

记问之学

  • 博客(154)
  • 收藏
  • 关注

原创 算法进阶——滑动窗口的最大值

给定一个长度为 n 的数组 num 和滑动窗口的大小 size ,找出所有滑动窗口里数值的最大值。

2024-02-06 14:01:24 439

原创 算法进阶——数据流中的中位数

对于求动态中位数的问题,利用堆的性质,可以在O(nlogn)的时间复杂度取出最大值或最小值,那么我们可以用大顶堆维护前一半的数,用小顶堆维护后面一半的数。

2024-01-22 16:42:13 537 1

原创 算法进阶——按之字形顺序打印二叉树

用两个辅助栈,通过层序遍历二叉树,需要注意的是因为奇数层要从左往右打印,所以前一个偶数层入栈需要先右后左,偶数层正好相反。

2024-01-09 09:51:21 560

原创 算法进阶——求二叉树的层序遍历

利用辅助队列,通过bfs(广度优先)算法遍历二叉树,按层次顺序记录节点。我的解答代码还有一个可以优化的点是,每层的节点数其实就是当前辅助队列的大小,这样其实不需要next_level_num和to_be_handle这2个辅助变量。

2023-12-28 15:01:11 877

原创 基于模板的类型擦除

基于模板的类型擦除,技术上来说,是编写一个类,它提供模板的构造函数和非虚函数接口提供功能;隐藏了对象的具体类型,但保留其行为。典型的就是std::function。

2023-12-12 19:33:54 106

原创 算法进阶——删除有序链表中重复的元素

这里有个小技巧:因为链表有可能前几个元素就是重复的,这时就需要删除头指针了,所以我们需要给链表增加一个自定义的表头,以方便后面删除了原来的头指针而找不到表头,还有需要注意的就是在返回的时候要去掉增加的表头。

2023-12-06 09:29:38 283

原创 libcef在win10下的manifest问题

这是因为浏览器程序加载不到manifest文件,导致操作系统版本处理错误。

2023-12-01 14:34:26 113

原创 Windows中集成libcef(MD)

将Debug、Release、include、Resources以及刚刚编译的libcef_dll_wrapper中的库拷贝到需要使用的工程目录中,并配置好路径。

2023-12-01 14:22:25 98

原创 算法进阶——链表中环的入口节点

给一个长度为n链表,若其中包含环,请找出该链表的环的入口结点,否则,返回null。

2023-11-20 10:02:07 124

原创 进阶——旋转数组

举个例子:数组[1,2,3,4,5,6],数组长度n=6,需要右移m=2次,得到结果[5,6,1,2,3,4]。可以把数组分为两个部分,第一部分从开始到第4(n-m)个数字,也就是[1,2,3,4],剩下的是第二部分,也就是[5,6]。先翻转第一部分,得到[4,3,2,1,5,6]。再翻转第二部分,得到[4,3,2,1,6,5]。最后整体翻转,得到结果[5,6,1,2,3,4]。

2023-11-10 11:36:57 73

原创 算法进阶——数组中只出现一次的两个数字

一个整型数组里除了两个数字只出现一次,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。

2023-10-26 11:51:58 146

原创 算法进阶——数组中的逆序对

归并统计法,关键点在于合并环节,在合并数组的时候,当发现右边的小于左边的时候,此时可以直接求出当前产生的逆序对的个数。

2023-10-23 11:33:19 191

原创 算法进阶——丑数

利用小顶堆,即优先队列,每次取出堆顶元素一定是最小的,一共取n次就可以了,每次取出来的元素我们分别乘2、乘3、乘5后入堆,即作为之后要访问的数字,当然为了防止重复比如2∗3=6、3∗2=6,我们还要用哈希表去重。

2023-10-18 14:58:57 136

原创 算法进阶——最小的K个数

给定一个长度为 n 的可能有重复值的数组,找出其中不去重的最小的 k 个数。例如数组元素是4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4(任意顺序皆可)。

2023-10-13 15:07:04 120

原创 算法进阶——字符串的排列

使用递归的思路,每次先交换一个字符(可以是自己),然后将这个字符固定,之后递归的将后面的字符进行一次全排列,最后记得每次递归完需要回溯,也就是将交换的字符还原。另外原字符串中可能存在重复的字符,如“aab”,经过递归后会有重复的,所以可以使用set来保存结果,以达到去重的效果。

2023-10-11 13:56:34 142

原创 学懂现代C++——《Effective Modern C++》之转向现代C++

现代C++中像auto、智能指针、移动语义等都是一些重大的优化特性,但也有一些像constexpr、nullptr等等这样一个小的特性。这章的内容就是这些小特性的集合。

2023-09-27 17:03:41 78

原创 每日一题——二叉搜索树的最近公共祖先

利用二叉搜索树的性质:对于某一个节点若是p与q都小于这个这个节点值,说明p、q都在这个节点的左子树,而最近的公共祖先也一定在这个节点的左子树;若是p与q都大于这个节点,说明p、q都在这个节点的右子树,而最近的公共祖先也一定在这个节点的右子树。而若是对于某个节点,p与q的值一个大于等于节点值,一个小于等于节点值,说明它们分布在该节点的两边,而这个节点就是最近的公共祖先。

2023-08-22 22:34:42 262

原创 每日一题——判断是不是平衡二叉树

平衡二叉树(Balanced Binary Tree),具有以下性质:它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。

2023-08-21 21:54:28 105

原创 每日一题——螺旋矩阵

给定一个m x n大小的矩阵(m行,n列),按螺旋的顺序返回矩阵中的所有元素。数据范围:0≤n,m≤10,矩阵中任意元素都满足 ∣val∣≤100。要求:空间复杂度 O(nm) ,时间复杂度 O(nm)

2023-08-20 23:00:18 251 1

原创 每日一题——买卖股票的最好时机(一)

假设你有一个数组prices,长度为n,其中prices[i]是股票在第i天的价格,请根据这个价格数组,返回买卖股票能获得的最大收益。1.你可以买入一次股票和卖出一次股票,并非每天都可以买入或卖出一次,总共只能买入和卖出一次,且买入必须在卖出的前面的某一天。

2023-08-19 23:45:58 79

原创 每日一题——连续子数组的最大和

输入一个长度为n的整型数组array,数组中的一个或连续多个整数组成一个子数组,子数组最小长度为1。求所有子数组的和的最大值。

2023-08-18 22:34:50 120

原创 每日一题——不同路径的数目(一)

这题属于动态规划,可以用递归解决,每次n∗m矩阵的子问题都是(m−1)∗n的矩阵与m∗(n−1)的矩阵的和。

2023-08-17 22:35:18 152

原创 每日一题——二叉树的镜像

要求: 空间复杂度 O(n)。本题也有原地操作,即空间复杂度 O(1) 的解法,时间复杂度 O(n)数据范围:二叉树的节点数 0≤n≤1000 , 二叉树每个节点的值 0≤val≤1000。

2023-08-16 22:50:44 82

原创 每日一题——合并二叉树

已知两颗二叉树,将它们合并成一颗二叉树。合并规则是:都存在的结点,就将结点值加起来,否则空的位置就由另一个树的结点来代替。

2023-08-15 23:18:15 123

原创 每日一题——对称的二叉树

通过bfs(广度优先)分别遍历根节点的左右子树,检查其对称性。从左往右遍历左子树,从右往左遍历右子树。

2023-08-14 22:50:21 215

原创 每日一题——二叉树中和为某一值的路径

给定一个二叉树root和一个值 sum ,判断是否有从根节点到叶子节点的节点值之和等于 sum 的路径。

2023-08-13 18:06:22 244

原创 每日一题——二叉树的最大深度

二叉树的深度就等于根节点这个1层加上左子树和右子树深度的最大值,即。而每个子树我们都可以看成一个根节点,使用递归即可求的深度。

2023-08-12 17:38:16 242

原创 每日一题——最长公共前缀

给你一个大小为 n 的字符串数组 strs ,其中包含n个字符串 , 编写一个函数来查找字符串数组中的最长公共前缀,返回这个公共前缀。

2023-08-11 22:10:30 177

原创 每日一题——合并两个有序的数组

给出一个有序的整数数组 A 和有序的整数数组 B ,请将数组 B 合并到数组 A 中,变成一个有序的升序数组。

2023-08-10 19:26:52 139

原创 每日一题——字符串变形

解答代码的思路:先按空格分割字符串,将分割后的字符串存入栈中,根据栈的特点,后面的单词会先弹出,最后将出栈的字符串反转大小写后拼接成返回的字符串中。首先这个字符串中包含着一些空格,就像"Hello World"一样,然后我们要做的是把这个字符串中由空格隔开的单词反序,同时反转每个字符的大小写。

2023-08-09 21:45:51 244

原创 每日一题——最小花费爬楼梯

题目考察斐波那契数列的动态规划实现,不同的是题目要求了最小的花费,因此我们将方案统计进行递推的时候只记录最小的开销方案即可。可以用一个数组记录每次爬到第i阶楼梯的最小花费,然后每增加一级台阶就转移一次状态,最终得到结果。

2023-08-08 22:51:12 152

原创 每日一题—— 数组中出现次数超过一半的数字

给一个长度为 n 的数组,数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。

2023-08-07 22:33:15 122

原创 每日一题——两数之和

给出一个整型数组 numbers 和一个目标值 target,请在数组中找出两个加起来等于目标值的数的下标,返回的下标按升序排列。

2023-08-06 21:59:54 114

原创 每日一题——跳台阶

一只青蛙一次可以跳1阶或2阶,直到跳到第n阶,也可以看成这只青蛙从n阶往下跳,到0阶,按照原路返回的话,两种方法事实上可以的跳法是一样的——即怎么来的,怎么回去!当青蛙在第n阶往下跳,它可以选择跳1阶到n−1,也可以选择跳2阶到n−2,即它后续的跳法变成了f(n−1)+f(n−2),这就变成了斐波那契数列。

2023-08-05 15:33:37 105

原创 每日一题——有效括号序列

使用一个辅助栈,每次遇到’(‘,’{‘,’[‘这三种字符的时候,将字符入栈;而每次遇到’)‘,’}‘,’]'这三种字符的时候则让对应的匹配字符出栈。

2023-08-04 18:22:44 142

原创 每日一题——包含min函数的栈

定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的 min 函数,栈的各个操作的时间复杂度是 O(1) ,空间复杂度是 O(n)

2023-08-03 19:29:14 245

原创 每日一题——用两个栈实现队列

用两个栈来实现一个队列,使用n个元素来完成 n 次在队列尾部插入整数(push)和n次在队列头部删除整数(pop)的功能。队列中的元素为int类型。

2023-08-02 17:26:04 149

原创 每日一题——二叉树的遍历

二叉树的前序遍历就是按照“根左右”(中序是“左根右”,后序是“左右根”)的顺序访问其所有节点。可以使用递归的方法:对每个子树的访问,可以看成对于上一级树的子问题,终止条件是节点为空。

2023-08-01 17:49:33 225

原创 每日一题——旋转数组的最小数字

有一个长度为 n 的非降序数组,比如[1,2,3,4,5],将它进行旋转,即把一个数组最开始的若干个元素搬到数组的末尾,变成一个旋转数组,比如变成了[3,4,5,1,2],或者[4,5,1,2,3]这样的。请问,给定这样一个旋转数组,求数组中的最小值。

2023-07-31 19:27:47 417

原创 每日一题——二分查找

从数组的中间元素开始搜索,如果该元素为目标元素,则搜索过程结束,否则就进入下一个步骤,如果目标元素大于/小于中间元素,则在数组大于/小于中间元素的那一半区域查找,然后重复判断是为目标值,如果在最后一步还是没有找到中间元素,则返回-1,表示找不到目标元素。

2023-07-30 15:23:06 251

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除