自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(41)
  • 收藏
  • 关注

原创 代码随想录算法训练营第39天 |62.不同路径、63.不同路径 II

链接: 62.不同路径链接: 63. 不同路径II62.不同路径:向下和向右的数量是一定的,所以一共有多少条路径本质上是一定数量的向左向右的两个选项的排列组合种类有多少。回想一下动态规划五部曲,首先是递推公式。63.不同路径II:由于输入的是mxn的网格数组,只有障碍物的地方定为1,如果没有障碍,就跟上一题一样,通过上和左的递推公式进行递推,但是有障碍物的情况下,应当避开障碍物,是否可以分段进行呢?障碍物的上边和左边总路径加起来算作从起点到障碍物的路径总数,从障碍物到终点的路径记作另一个结果。所以是两个

2024-06-06 16:48:14 969 1

原创 代码随想录算法训练营第38天 | 509. 斐波那契数、70. 爬楼梯、746. 使用最小花费爬楼梯

链接: 509. 斐波那契数链接: 70. 爬楼梯链接: 746. 使用最小花费爬楼梯五部曲:1.确定dp数组(dp table)以及下标的含义2.确定递推公式3.dp数组如何初始化4.确定遍历顺序5.举例推导dp数组509.斐波那契数:直接看题解。70.爬楼梯:746.使用最小花费爬楼梯:509.斐波那契数:五部曲上秤!(1)确定dp数组以及下标的含义:dp[i]的定义为:第i个数的斐波那契数值是dp[i](2)确定递推公式:直接有递推公式:状态转移方程dp[i]=dp[i-1]+

2024-05-31 19:04:27 388

原创 代码随想录算法训练营第36天 | 738.单调递增的数字

链接: 738.单调递增的数字738.单调递增的数字:先判断本身是否单调递增,如果是就直接返回该数字,如果不是则while循环,执行减一,跳出循环的条件是数字单调递增。那么如何判断单调递增,将各个数字取出来并且进行大小判断。738.单调递增的数字:我的思路是暴力求解,力扣超时。其实想明白了代码就很简单,从前向后遍历,前面的数字大于后面的数字的时候记录位置,循环完之后会得到最终的位置,最终的位置以及后面都变成9即可。很难想,只会暴力,看完题解之后会发现,妙。

2024-05-30 22:41:44 211

原创 代码随想录算法训练营第35天 |435.无重叠区间、763.划分字母区间、56.合并区间

链接: 435.无重叠区间链接: 763.划分字母区间链接: 56.合并区间435.无重叠区间:先对数组的左边界进行排序,排序之后比较右边界,循环过程中,如果当前数组的右边界比下一个数组的左边界大,则计数加1,否则就更新右边界,右边界是当前最短的右边界。但是我不会根据当前数组左边界进行排序。。。763.划分字母区间:直接把单独一个字符当作一个子字符串不就是最多的片段划分吗?啊嘞?56.合并区间:这道题看起来不难,左边界排序后遍历比较右边界,如果判断到了重叠就进行数组合并,本质上是更新边界。但是不知道

2024-05-30 22:23:55 566

原创 代码随想录算法训练营第34天 | 860.柠檬水找零、406.根据身高重建队列、452.用最少数量的箭引爆气球

链接: 860.柠檬水找零链接: 406.根据身高重建队列 链接: 452.用最少数量的箭引爆气球860.柠檬水找零:对于收到5和10的情况其实有固定套路,但是针对收到20,就开始不知所措,因为可以返回去3个5或者1个5和1个10,这两种情况不知道如何取舍。406.根据身高重建队列:不太会,没什么思路。452.用最少数量的箭引爆气球:区间重叠,尽可能找到多个区间重叠的地方。但是我的这种“人类”思维并不知道如何用代码转变出来。860.柠檬水找零:局部最优是优先返回1个5和1个10,因为5是万能的,既可

2024-05-30 18:28:48 147

原创 代码随想录算法训练营第33天 | 1005.K次取反后最大化的数组和、134.加油站、135.分发糖果

链接: 1005.K次取反后最大化的数组和链接: 134. 加油站链接: 135.分发糖果1005.K次取反后最大化的数组和:输出只需要和,不需要知道具体下标,所以是可以排序再进行反转的。先将所有数进行排序,从负数开始去反转,并且每反转一个就将k减1,之后再对最小的非负数进行多次反转,直到k减为0。这个思路还是很清晰,但具体到代码如何实现是需要再看一看的。134.加油站:可以环绕行驶一周的条件就是,在行驶的过程中邮箱的油量一直是正数。可以用一个while判断循环。135.分发糖果: 看到例子之后发现

2024-05-28 22:42:40 408

原创 代码随想录算法训练营第32天 | 122.买卖股票的最佳时机II、 55. 跳跃游戏、45.跳跃游戏II

链接: 122.买卖股票的最佳时机II链接: 55. 跳跃游戏 链接: 45.跳跃游戏II 122.买卖股票的最佳时机II:在低点买入,高点卖出,但是怎样找到低点和高点,也就是一个数组如何找到局部最值的问题。局部最低点是左右两边的数都大于这个数的情况,局部最高点是左右两边的数都小于这个数的情况。那么就循环进行判断,先找到局部最低点,再找到局部最高点进行取差值。如果是特殊情况,如一直上升,或者一直下降,就单独进行处理。但是对于多次买卖的情况,如何通过这一次遍历进行转卖呢?我只会写一次买卖。55. 跳

2024-05-16 22:41:24 152

原创 代码随想录算法训练营第31天|455.分发饼干、376.摆动序列、53.最大子序和

链接: 455.分发饼干链接: 376. 摆动序列链接: 53. 最大子序和1.局部最优是什么?2.是否可以推出全局最优且无明显反例?455.分发饼干:一看样例就知道答案,但是不知道怎么写代码。376. 摆动序列 :这和贪心算法有什么关系?遍历数组,记录与前面元素的差值和与后面元素的差值,如果一正一负就计数加一。但是测试样例没有完全通过。相同元素的处理没有想清楚。455.分发饼干:局部最优是大饼干喂给大胃口,全局最优是尽可能多的孩子吃了饼干。先对饼干和孩子进行排序,遍历饼干,最大饼干喂给能吃的最大胃

2024-05-07 22:37:05 199

原创 代码随想录算法训练营第30天 | 回溯算法总结、332.重新安排行程、51. N皇后、37. 解数独

2.子集问题去重依然采用组合问题去重的那两个思路。要注意,去重方式目前了解的一个是对数组进行排序之后使用used数组,另一种方式是使用hashset。1.本质:转成组合问题,切割线使用startIndex,子串范围为nums[startIndex,i]5.树枝去重与树层去重:结果集不可有重复,使用树层去重;每个结果不可有重复,使用树枝去重。如果是多个集合取组合,各个集合之间相互不影响,则不需要startIndex。1.子集问题收集所有节点的结果,组合问题收集叶子节点的结果。6.注意输入异常的情况。

2024-05-06 22:14:15 309

原创 代码随想录算法训练营第29天 | 491.递增子序列、46.全排列和47.全排列 II

链接: 491.递增子序列链接: 46.全排列链接: 47.全排列 II491.递增子序列:排序后使用used数组,进行树层去重,每次增加path需要比较大小。46.全排列:直接看视频47.全排列 II:上面两道题目的结合。使用hashset进行树层去重,并且使用排列的方式。491.递增子序列:完蛋,掉坑里了。。。在90.子集问题中我们是通过排序结合used数组进行去重,但是这道题目给出的是有序数组,不能重新排序。又重新看了一遍树层去重,同一树层取相同的就重复了,也就对应for循环的遍历不能有重复元

2024-05-06 19:51:28 480

原创 代码随想录算法训练营第28天 | 93.复原IP地址、78.子集、90.子集II

链接: 93.复原IP地址链接: 78.子集链接: 90.子集II93.复原IP地址:画好树形图之后分析三部曲怎么写,但是感觉还不是很清晰,怎样加点?感觉似乎有点像切割问题,在切割的地方增加点,回想起之前切割回文串题目,使用startIndex作为切割线,但是具体实现我还是比较模糊。78.子集:切割问题。[ ]预定,但是和之前的不一样,对于每个节点,要有不再做任何深入的操作,也就是它的叶子节点的选取要有一个是空的选择,除此之外的起始点选择应该是i+1。90.子集II:树层去重,使用use数组记录各个

2024-05-06 16:40:16 417

原创 代码随想录算法训练营第27天 | 39.组合总和 、40.组合总和II和131.分割回文串

链接: 39.组合总和链接: 40.组合总和II链接: 131.分割回文串39.组合总和:数字可以被无限选取,那么startIndex就不是像之前组合问题一样了。不管怎样先画树形图自己模拟一下流程,画树形图的时候明确了两个点:第一就是每个节点处剩下的集合是什么?第二个是树的宽度和深度由什么决定?根据回溯的算法模板和三部曲一步步写代码。40.组合总和II: 我看示例的时候有个疑问:题目要求candidates中的每个数字在每个组合中只能使用一次,那么candidates本身有重复的数字是算一个数字还是多

2024-05-05 22:52:42 356

原创 代码随想录算法训练营第25天 | 216.组合总和III、17.电话号码的字母组合

链接: 216.组合总和III链接: 17.电话号码的字母组合216.组合总和III:递归函数终止条件为搜索得到的数相加为n,其他逻辑和组合一样。17.电话号码的字母组合:先把各个字母对应数字的映射关系存一下,针对读取数字对应字母,采用回溯来解决。具体细节是真的不太清楚。216.组合总和III:通过这道题,并不知道组合个数的情况下也更能看出回溯算法相对于for循环的优势。要注意的点就是:在画树形图的时候,剩余集合的范围是什么?理解完树形图之后再看代码。这里贴上卡哥网站的树形图:再贴上卡哥总结的回

2024-05-04 21:59:41 480 2

原创 代码随想录算法训练营第24天 | 回溯算法理论基础、77.组合

链接:链接:拖延了几天又开始回溯的理论基础了,通过初步看答案做题目发现回溯解法其实和递归是差不离的,所以我就很好奇,为什么要单独开出一期回溯算法的讲解,我的一个猜想是之前我们做的题目场景主要在二叉树中使用递归法,而对于回溯算法,它的场景就不仅局限于二叉树了,可能还有其它的场景。当然具体这个问题可能还需要进一步学习解答这个疑惑。

2024-05-04 16:27:35 247

原创 代码随想录算法训练营第23天 | 669. 修剪二叉搜索树、108.将有序数组转换为二叉搜索树、538.把二叉搜索树转换为累加树 、总结

写了8天的二叉树,现在做个总结吧!1.树的类型:二叉树,搜索二叉树,完全二叉树,平衡二叉树,平衡搜索二叉树2.遍历方式:前中后序遍历(递归法),层序遍历3.递归法三部曲4.遇到觉得很复杂的二叉树问题时,可以将二叉树看做一个数组,对数组进行如此操作的时候思路是怎样,那么转成二叉树的问题了之后其实就是再增加一个遍历方式而已。5.遍历顺序的选择:(1)构造:前序 (2)二叉搜索树:中序 (3)普通二叉树的属性:后序。

2024-04-25 21:50:11 418 1

原创 代码随想录算法训练营第22天 | 235. 二叉搜索树的最近公共祖先 、701.二叉搜索树中的插入操作、450.删除二叉搜索树中的节点

链接: 235. 二叉搜索树的最近公共祖先 链接: 701.二叉搜索树中的插入操作链接: 450.删除二叉搜索树中的节点 235.二叉搜索树的最近公共祖先:对于普通二叉树的寻找最近公共祖先可以直接搬过来写,但是二叉搜索树既然限定了,肯定会有更多条件导致题目更加容易做。701.二叉搜索树中的插入操作:直接按照原树和增加的值的节点重新构建一个二叉搜索树即可,因为答案是不唯一的,可以在原树的基础上插入也可以重新构建。最简单的思路就是重新构建。两种方法都做一下。701.二叉搜索树中的插入操作:看完答案之后

2024-04-24 16:56:43 440

原创 代码随想录算法训练营第21天 |530.二叉搜索树的最小绝对差、236. 二叉树的最近公共祖先

链接: 530.二叉搜索树的最小绝对差链接: 501.二叉搜索树中的众数链接: 236. 二叉树的最近公共祖先530.二叉搜索树的最小绝对差:二叉搜索树与中序遍历有着联系,这点需要去看一下二叉搜索树的构建过程。二叉搜索树中序遍历数组之后比较相邻的差值绝对值的最小值。为了节省空间可以直接使用双指针,在中序遍历的过程中比较。501.二叉搜索树中的众数:这题好细节,没有什么算法但是一些细节的悟性和灵活性是需要的。二叉搜索树递归函数的逻辑是中序遍历,因为这样中序遍历才是单调递增的,中间节点的处理逻辑单独抽象出

2024-04-23 22:45:16 225

原创 代码随想录算法训练营第20天 |654.最大二叉树、 617.合并二叉树、700.二叉搜索树中的搜索、98.验证二叉搜索树

链接: 654.最大二叉树链接: 617.合并二叉树链接: 700.二叉搜索树中的搜索链接: 98.验证二叉搜索树654.最大二叉树:明确了是递归法,知道应该使用三部曲,首先确定递归函数的参数和返回类型,构建二叉树返回类型是void,参数为数组;终止条件应该是数组使用完成;递归函数内的逻辑是前序遍历。700.二叉搜索树中的搜索:递归,前序遍历654.最大二叉树:首先整体思路是递归,三部曲,递归函数输入参数是数组,返回值应当是根节点,而不是空,这点我自己第一想法是错误的,终止条件应该是数组的长度为1,

2024-04-23 21:23:04 529

原创 代码随想录算法训练营第十八天 | 513.找树左下角的值、112. 路径总和、113. 路径总和ii

链接: 513.找树左下角的值链接: 112. 路径总和,和 113. 路径总和ii 链接: 从中序与后序遍历序列构造二叉树 513.找树左下角的值:层序遍历,输出最后一行的最左边的值。自己亲手写代码之后发现,有个问题就是,你怎么知道此时就是最后一层呢?另一种方法是递归法,采用后序遍历,递归处理逻辑是当中间节点的左叶子节点的子节点都为空的时候返回该左叶子节点的值。自己亲手写代码之后发现编译错误,缺少return语句。112.路径总和和 113.路径总和ii:使用递归法用三部曲思考,第一返回类型和参数,

2024-04-20 22:24:17 1013

原创 代码随想录算法训练营第十七天 | 110.平衡二叉树、 257. 二叉树的所有路径、404.左叶子之和

链接: 110.平衡二叉树链接: 257.二叉树的所有路径链接: 404.左叶子之和:110.平衡二叉树:首先平衡二叉树是每个节点的左子树和右子树之间的高度差不大于1的树,那么这道题一方面是高度,采用后序遍历,另一点就是在中进行处理的时候要求出左右子树的高度差。在递归遍历的过程中,每个节点的左右子树的高度差通过中间节点依次往根节点传递,各自的左右子树但凡出现了高度差大于1的情况都会返回-1。257.二叉树的所有路径:前序遍历+回溯,Java代码中又一次出现了StringBuffer,再次忘记啥意思,回

2024-04-19 22:18:16 316

原创 代码随想录算法训练营第十六天 | 104.二叉树的最大深度、111.二叉树的最小深度、222.完全二叉树的节点个数

链接: 104.二叉树的最大深度链接: 111.二叉树的最小深度链接: 222.完全二叉树的节点个数104.二叉树的最大深度:深度是从根节点到叶子节点所经过的最多节点个数,高度是叶子节点到根节点所经过的最多节点个数。这道题其实层序遍历直接可以做出来,但是看卡哥说要掌握递归法。递归法首先考虑遍历方式,求深度和求高度对应的遍历方式是不一样的,求深度采用前序遍历方式,求高度采用后序遍历方式。所以这道题正规方法应该是前序遍历递归法,返回值为深度数值。递归结束条件是节点为null,递归函数的逻辑我并不是很理解,

2024-04-19 16:51:34 292

原创 代码随想录算法训练营第十五天 | 层序遍历

链接: 层序遍历(1)层序遍历:使用队列实现层序遍历,也就是广度优先搜索。从根节点开始,push进入队列中并记录此时队列中的数量size,将size个元素依次pop出队列,每个元素pop出来的时候需要将它的子节点push进入队列。使用二维数组记录最终结果并返回。然后做一做十道题。以下是自己写题的想法:(2)107. 二叉树的层序遍历 II:题目要求自底向上进行层序遍历(叶子从左到右):不知道怎么做,看答案。看完答案发现是用链表存储层序遍历的结果,并且用头插法将答案进行反转即可。(3)199. 二叉树

2024-04-17 22:38:53 189

原创 代码随想录算法训练营第十四天 | 递归遍历

链接: 递归遍历看完代码随想录之后的想法递归遍历:第一是确定思路:三步曲1:确定递归函数的参数和返回值,2:确定终止条件,3:确定单层递归的逻辑。但是看完之后我依然不是很理解为什么要用这些思路?以及这样就一定能是正确的吗?但是决定自己敲一敲代码来巩固这个思维方式。对于第一步,由于前序或后序或中序遍历最终是要返回一个遍历的数组结果,那么对于递归函数来说,传入的参数是每次的结果result以及根节点root,返回结果是void。第二步,递归的结束条件是当前这个节点root是空就直接return。第三步,确

2024-04-17 20:49:40 382

原创 代码随想录算法训练营第十三天 | 239. 滑动窗口最大值、347.前 K 个高频元素

链接: 239. 滑动窗口最大值链接: 347.前 K 个高频元素239.滑动窗口最大值:看完卡哥视频之后我明白了底层的思路:push新入的数字要和队首元素进行比较,队首小于新加入的元素要被pop出去。这样就保证了队首的元素一直是最大的,那么取最大的值的时候只需要pop队首元素即可。但是我在看Java代码的时候发现,使用的双端队列实现的,用一个单调队列来存储对应的下标,每当窗口滑动的时候,直接取队列的头部指针对应的值放入结果集即可。然而代码里面出现了很多dequeue调用的函数,比如peekLast()

2024-04-16 22:00:47 214

原创 代码随想录算法训练营第十一天 | 20.有效的括号、1047. 删除字符串中的所有相邻重复项、150. 逆波兰表达式求值

链接: 20.有效的括号链接: 1047. 删除字符串中的所有相邻重复项链接: 150. 逆波兰表达式求值 20.有效的括号:利用栈进行匹配。写题之前先分清三种情况:第一种是左括号没有匹配成功,遍历完字符串后发现栈不为空,第二种是右括号没有匹配成功,字符串遍历的过程中发现栈已经空了,没有可以匹配的字符串了,第三种是括号没有多余,但是括号的类型没有匹配上。1047. 删除字符串中的所有相邻重复项:这题和有效括号一样的,利用栈来保存遍历的字符串,在遍历的过程中就与保存在栈中的字符进行匹配,如果匹配成功就直

2024-04-16 19:01:08 363

原创 代码随想录算法训练营第十天 | 232.用栈实现队列 、225.用队列实现栈

链接: 232.用栈实现队列 链接: 225.用队列实现栈1.栈和队列的基础认识:操作受限的两种数据结构,栈只能从一端取出数据,先入后出;队列只能从两端放入和取出数据,先入先出。基本API如下:可以发现其实栈和队列的API是一样的。这就很好记忆了。232.用栈实现队列:使用两个栈实现队列,由于栈的顺序是先入后出,而队列是先入先出,则队列在push完之后想要pop需要相同的顺序,那么栈push之后如果直接pop就相反,则需要push之后再push进入另一个栈,取名叫出栈(第一个叫入栈),再对出栈的元素进行

2024-04-16 17:49:34 148

原创 代码随想录算法训练营第九天 | 28. 实现 strStr()、459.重复的子字符串

@[TOC]( 代码随想录算法训练营第九天 | 28. 实现 strStr()、459.重复的子字符串)链接: 28. 实现 strStr()链接: 459.重复的子字符串28.实现 strStr():题目要求返回haystack中对needle的第一个匹配项的下标,那么我的想法是,取出needle的第一个字符,然后遍历寻找haystack中该字符的下标,如果没有直接返回-1,如果有则记录进入数组中,然后依次去对比,如果有就返回第一个下标,如果没有就进行下一个下标的对比,直到遍历完成之后还没有返回下标则

2024-04-11 20:17:13 290

原创 代码随想录算法训练营第八天 | 344.反转字符串 、541. 反转字符串II、卡码网:54.替换数字、151.翻转字符串里的单词

链接: 344.反转字符串 链接: 541. 反转字符串II链接: 卡码网:54.替换数字 344.反转字符串:一看到原地,想起来之前数组原地移除数组中值等于val的,当时使用的是双指针法,快指针用于寻找不等于val的元素,慢指针用于标记等于val的元素。还应该想到反转链表,反转链表也是是使用双指针法,同时注意对于链表来说,应当把各个步骤的图画出来才能分清每一步执行后的情况。那对于反转字符串我觉得很像反转数组,同时印象中字符串应该有很多api可以调用。541.反转字符串II: 异或运算反转54.替换

2024-04-10 18:54:57 339

原创 代码随想录算法训练营第七天 | 454.四数相加II、383. 赎金信、15. 三数之和、18. 四数之和

链接: 454.四数相加II链接: 383. 赎金信链接: 15. 三数之和链接: 18. 四数之和454.四数相加II :快速查询+返回索引下标我第一时间想到用哈希map,跟昨天的两数之和那道题不一样的点在于,这道题是四个数相加,我在想,两个数相加用一个hashmap存target-nums[i]和i,那么四个数相加岂不是要用两个hashmap?383. 赎金信:第一想法是为什么这个题的名字要叫赎金信?是否能由对方的字符构成,但是有一个问题是,magazine中的字符串不能重复使用,哈希map可以

2024-04-09 21:12:17 801

原创 代码随想录算法训练营第六天 | 242.有效的字母异位词 、 349. 两个数组的交集、 202. 快乐数、1.两数之和

链接: 242.有效的字母异位词链接: 349. 两个数组的交集链接: 202. 快乐数链接: 1. 两数之和242.有效的字母异位词:首先判断s和t的字符串长度是否相同,然后再把s放入哈希表,遍历t来查找是否t里的字符是否都在s里出现。但是我目前对于相关的api记不起起来了。需要看一下解答。349. 两个数组的交集:题目中对数组的元素中的数范围有了限定,在0到1000,所以可以和上面一题的思路一样,去创建一个1000位的数组,根据索引来遍历。但是看到说用set比较好,于是看答案。350. 快乐

2024-04-08 22:00:24 556

原创 代码随想录算法训练营第四天 | 24. 两两交换链表中的节点、 19.删除链表的倒数第N个节点、面试题 02.07. 链表相交、142.环形链表II

链接: 24. 两两交换链表中的节点链接: 19.删除链表的倒数第N个节点链接: 面试题 02.07. 链表相交链接: 142.环形链表II 24.两两交换链表中的节点:画出了链表交换的结果,试图推导出数学公式来操作对应位置的链表,同时对于链表节点个数为奇数的情况有些疑惑怎样处理最后一个节点。**19.删除链表的倒数第N个节点:**先遍历一遍得到链表总数,然后得到需要删除的正向索引,之后再遍历寻找删除,感觉时间复杂度可能会高一些。**面试题 02.07. 链表相交:**这道题不看题目举例是真的

2024-04-06 17:28:54 896

原创 代码随想录算法训练营第三天 | 203.移除链表元素、707.设计链表、 206.反转链表

类ListNode里有定义两个成员变量,一个是值,也就是数据域,另一个是ListNode,表示下一个节点,通过重写构造函数对值和下一个节点进行初始化。

2024-04-05 18:02:20 626

原创 代码随想录算法训练营第二天 | 977.有序数组的平方 、 209.长度最小的子数组、59.螺旋矩阵II

链接: 977.有序数组的平方链接: 209.长度最小的子数组链接: 59.螺旋矩阵II977.有序数组的平方:首先遍历平方得到平方后的数组,再使用冒泡排序法。但执行用时比较落后。209.长度最小的子数组:最小长度的子数组里包含的数肯定都相对来说大一些,所以先排序,然后再从大到小取数相加,如果满足大于等于target直接返回此时取到的整数长度,如果遍历一遍之后依然没有满足条件就直接返回-1。59.螺旋矩阵II:输出是一个二维数组,本质上是确认matrix[i][j]与n的关系,但由于螺旋,且输出是按

2024-04-04 21:57:28 338

原创 代码随想录算法训练营第一天 | 704. 二分查找 、27. 移除元素

链接: 704.二分查找链接: 27. 移除元素回顾数组基础知识:数组是存放在连续内存空间上的相同类型数据的集合。注意:下标从0开始,内存空间的地址连续。704.二分查找:用while循环遍历,利用索引取值与target对比,如果相同返回下标,结束循环后直接返回-127. 移除元素:题目中着重表明了原地移除,并且空间复杂度为1,那也就是不能开辟新的内存空间,于是只能交换值,第一反应是两层循环暴力求解。外层循环遍历到val元素时,开启二层遍历,从该元素开始往后寻找不是val值的进行覆盖。那么最后输出的l

2024-04-03 17:18:26 432

原创 Windows系统下使用pybind11实现python调用C++

IDE:VS2022+Pycharm(只用VS也可以实现,即VS代替Pycharm生成python项目)Python版本:本地Python3.9为了运行一份python调用C++写的模块的代码,搜索各种操作方法实现以及请教他人,经过三四天之后终于成功。

2023-04-08 22:03:10 1211 6

原创 小白安装pytorch以及pytorch geometirc库以及在Pycharm中使用教程

pytorch以及pyg库安装详细过程以及在pycharm中使用

2022-11-27 17:39:38 2188

原创 DQN学习整理

DQN学习写代码过程

2022-11-15 20:15:53 304

原创 全面攻克指针

c++指针

2022-09-13 21:28:56 259

原创 MATLAB安装踩坑记录

MATLAB安装采坑记录

2022-09-12 09:43:07 2619 2

原创 小白使用Visual Studio新建项目时容易遇到的问题

记录小白问题

2022-09-11 18:42:59 1914

空空如也

空空如也

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

TA关注的人

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