自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 PPMP_char2

​ 这几年,断断续续地自学了一些cuda编程,是从一些博客、视频里学的,属于是零敲碎打,不够系统、全面。偶然间,发现了《Programming Massively Parallel Processors A Hands-on Approach, 4th Edition》,这本书很棒,便萌生了仔细系统地学习CUDA的想法。以前有一些基础,这次主要在于深入理解+查缺补漏,知识点方面不做过多记录,重点是课后习题及相关程序。争取做到周更,每周看完一章。我的答案和理解,可能有错误和纰漏的地方,欢迎评论指正。

2024-04-26 11:00:47 629

原创 图论第3天----第841题、第463题

图论第3天----第841题、第463题。

2023-10-08 08:55:25 524

原创 图论第2天----第1020题、第130题

图论第2天----第1020题、第130题。

2023-10-07 22:11:35 702

原创 图论第1天----第797题、第200题、第695题

图论第1天----第797题、第200题、第695题。

2023-10-07 10:05:43 262

原创 代码随想录结课总结

同时,也能看出卡哥在选题的类型、题目的顺序上,是做了精心安排的、是下了大功夫精心设计过的----一个大类型题里往往包含了几个小题型,卡哥每个小题型选几道题,带着一起做一遍。训练营结束后,大大小小、各种类型、翻来覆去,也算是见了十几二十多种算法题吧,经历过这轮的学习和训练,再遇到类似的题,不管我能不能做出来,我是完全不慌的,因为掌握了这些知识之后,我大概率是能做对的。如果让我自己学的话呢,我确实很难get到这么多知识点,很难自己就总结出这些解题步骤,而且很多力扣上的题解,很难理解的,自己看的话很难理解透彻。

2023-09-24 07:21:50 586 1

原创 力扣第50天--- 第84题

力扣第50天— 第84题。

2023-09-22 23:45:06 455

原创 力扣第49天--- 第503题、第42题

力扣第49天— 第503题、第42题。

2023-09-22 07:56:41 118

原创 力扣第48天--- 第739题、第496题

力扣第48天— 第739题、第496题。

2023-09-21 11:02:09 150

原创 力扣第47天--- 第647题、第516题

力扣第47天— 第647题、第516题。

2023-09-20 00:38:09 233

原创 力扣第46天--- 第583题、第72题

力扣第45天----第583题、第72题。

2023-09-19 10:59:18 301

原创 力扣第45天----第392题、第115题

力扣第45天----第392题、第115题。

2023-09-17 23:52:05 313

原创 力扣第44天----第1143题、第1035题、第53题

力扣第44天----第1143题、第1035题。

2023-09-16 10:15:22 208

原创 力扣第43天----第300题、第674题、第718题

力扣第43天----第300题、第674题、第718题。

2023-09-15 09:37:07 185

原创 力扣第42天----第309题、第714题

力扣第42天----第309题、第714题。

2023-09-14 00:27:21 66

原创 力扣第41天----第123题、第188题

力扣第41天----第123题、第188题。

2023-09-13 14:01:31 144

原创 力扣第40天----第121题、第122题

力扣第40天----第121题、第122题。

2023-09-12 09:57:20 185

原创 力扣第39天----第198题、第213题、第337题

采用的时候,下一层就不能采用,就是left[0]、right[0],然后再加起来;不采用的时候,下一层就要综合考虑,所以max(left[0], left[1])、max(right[0], right[1]),左右分支都要考虑到,再加一起。​ 初始化----这里与截止条件重合,树遍历终止的时候,就是dp数组初始化的时候,初始化为{0,0},即空节点时价值为0。​ 遍历顺序----采用树的遍历方式,这里采用后序遍历。​ dp数组----每个节点不采用、采用状态下,得到的金钱;跟着做下来,基本消化了吧。

2023-09-11 16:26:33 183

原创 力扣第38天----第139题

​ 思路跟前面几个差不多,不折腾了。看了下答案,过了就得了。

2023-09-11 00:32:43 149

原创 力扣第37天----第322题、第279题

​ 整体思路,跟前面的几道完全背包差不多,就不具体解释了。有一些细节要注意,见代码注释。​ 跟上一题,基本一样。

2023-09-10 23:21:38 147

原创 力扣第36天----第518题、第377题

​ 递推公式,就跟爬楼梯差不多,根据当前的coins[i],找到对应的dp[j - coins[i]],然后再叠加。​ 循环顺序,跟0/1背包不同,采用正序排列,因为可以重复叠加。并且要先遍历物品,再遍历背包容量–这样可以表示组合。​ dp数组表示金额为j时的组合数----题目里问什么,dp就定义成什么,这道题里问组合数量。​ 跟518题差不多,就是遍历顺序相反,先遍历背包,再遍历物品。

2023-09-09 19:16:05 128

原创 力扣第35天----第1049题、第494题、第474题

​ 0/1背包问题,滚动数组的方式。有套路的,反复做题,消化这个套路。​ 滚动数组,时间复杂度O(n2),空间复杂度O(n)。如果采用动态规划–二维数组,时间复杂度O(n2),空间复杂度O(n*m),m为dp数组大小。如果使用回溯,那么肯定会超时,时间复杂度O(2^n)。public://容量为target的背包所能背的最大重量。//最多30个石头,每个石头最多100重量,平分的话,少的部分不会超过1501;//计算target应该是多少。

2023-09-09 15:55:10 115

原创 力扣第34天----第416题

​ 完全懵掉,明天再复习。

2023-09-05 18:20:02 35

原创 力扣第33天----第343题、第96题

​ 递推公式,挺像找规律的。逐渐理解了动态规划,自低而上的思想,从0,1…​ 这题优点费劲,不是太理解,希望二刷时候能独立做出来。

2023-09-04 13:56:26 29

原创 力扣第32天----第62题、第63题

​ 递归的实现方式相对简单,但由于存在重复计算的问题,效率可能较低。递归是一种自顶向下的求解方法,而动态规划是一种自底向上的求解方法。​ 动态规划将问题分解成若干个子问题,用于求解最优化问题。递归是一种自顶向下的求解方法,而动态规划是一种自底向上的求解方法。​ 记住5步,加深记忆。

2023-09-02 13:24:02 24

原创 力扣第31天----第509题、第70题、第746题

​ 记住这五步,今天就够了–dp数组含义、递推公式、初始化、便利顺序、打印dp数组。​ 记住这五步,今天就够了–dp数组含义、递推公式、初始化、便利顺序、打印dp数组。​ 记住这五步,今天就够了–dp数组含义、递推公式、初始化、便利顺序、打印dp数组。

2023-09-02 01:42:34 33

原创 力扣第30天----第738题

​ 想到就是会做,也没啥太多可总结的。

2023-08-31 10:09:53 20

原创 力扣第29天----第435题、第763题、第56题

力扣第29天----第435题、第763题、第56题。

2023-08-30 09:52:09 31

原创 力扣第28天----第860题、第406题、第452题

力扣第28天----第860题、第406题、第452题。

2023-08-29 10:56:01 21

原创 力扣第27天----第1005题、第134题、第135题

力扣第27天----第1005题、第134题、第135题。

2023-08-27 22:59:56 24

原创 力扣第26天----第122题、第55题、第45题

​ 这个题,属于见过就会做。实现上没难度,分析起来花点时间,下次见到类似的能做出来。核心就是:1)根据i + nums[i]做是否满足的判断;2)for循环end的位置更新为max(end, i + nums[i])。​ 有点难,看了答案才做出来的。逻辑不好梳理,希望下次做,能做出来。​ 赚钱的时候,把每天赚的钱加起来,就是最终的钱。

2023-08-26 12:37:50 17

原创 力扣第25天----第455题、第376题、第53题

​ 这题情况挺多,试了好几次才过,但是总结起来,没啥好提炼的知识点。如果没有明显的反例,就可以用贪心算法试试。​ 类似于找规律,然后实现出来。​ 贪心算法,没有固定的套路。

2023-08-25 11:01:50 25

原创 力扣第24天----第491题、第46题、第47题

​ 这个题,由于不能排序,不能使用全局变量进行监控,要在函数内部创建监控变量(unordered_set myset),进行判断。这样,每次递归时都会创建一个新的监控变量,这个监控变量,监控这一层的情况。这里元素不能重复使用,所以通过vector used(nums.size(), false),记录每个元素是否被使用,然后遇到已经被使用过的,跳过即可。而且要求排列,不能使用通过startindex,只能通过used记录每个元素是否被使用,然后遇到已经被使用过的,跳过即可。

2023-08-23 11:40:51 24

原创 力扣第23天----第93题、第40题、第131题 - 副本

就是要分析出,搜集子树上每个节点对应的路径,而不只是叶子节点的路径。然后,再把每个节点代表的路径,加入到result里。​ 这道题,挺费劲。回溯的思路,跟上一题的分割的思路挺像。不断地分割子区间,碰到不满足的就回溯。挺麻烦的,加入了字符串判断。​ 第78题、第40题的结合。知识点上,没有新的。

2023-08-22 20:38:05 24

原创 力扣第22天----第39题、第40题、第131题

首先对数组排序,保证相同数值的元素相邻,通过used数组,控制某些情况被剪枝掉----使用元素可以重复,但是结果中不能重复。这样就要求当前元素被使用时,前一个元素不能被使用,可以当前元素和前一元素都被使用。如果,当前元素被使用,而前一元素没有被使用,那么这种情况,前一元素的分支前做过,就可以去重了,而且题目中也要求不能重合。譬如’aab’,构建为’a‘、’aa‘、’aab‘这三种,然后再逐渐递归遍历,每次递归时都进行判断,然后回溯。​ 还是经典的回溯的套路----确定参数、返回来类型;

2023-08-21 20:07:25 29

原创 力扣第21天----第216题、第17题

string数组,string本身就相当于一个数组,所以string数组是一个二维数组。通过digits的索引找到相应的字母,然后再递归+回溯,提取其中的字母组合。​ 回溯,都可以用树表示。

2023-08-19 20:34:15 25

原创 力扣第20天----第77题

​ 有递归就有回溯,回溯与递归同时发生。类似于二叉树的递归法(DFS),回溯也是三部曲----参数及返回值、终止条件、单层逻辑。通常回溯的返回值都是void,对全局变量进行回溯。

2023-08-18 10:54:22 24

原创 力扣第19天----第669题、第108题、第538题

​ 与105、106题较类似,整体思路也是不断递归划分数组,然后构建左右子树,建立与根节点关联。​ 右中左的遍历顺序,把上一位置根节点数值,加到现在这一位置上,然后再移动pre指向。​ 也是一道,挑选相应节点,返回节点的题。

2023-08-17 19:56:26 25

原创 力扣第15天----第513题、第112、113题、第106题

​ 106题,实现时很麻烦,要很小心、很注意。思路:后序遍历找中节点,并建立跟节点root→前序遍历找中节点index→前序遍历拆分左右子树→后续遍历拆分左右子树(根据前序左子树的大小)→递归实现,左右子树的构建(返回子树的根节点)→root的left、right分别指向左右子树的根节点。​ 大概明白了吧,重点在于回溯的运用。​ 112题,采用后序遍历,其实对于中节点,没有处理。​ 113题,跟上面一道题,不太一样,费了点劲。​ 105题,跟106题,基本上一模一样的。

2023-08-16 23:25:56 36

原创 力扣第18天----第235题、第701题、第450题

​ 这道题,就是在一个二叉树中找节点。无所谓前序、中序、后序,这里就只用到了左右子树,没有用到根节点。左右子树、根节点数值比较下,从上往下找,一旦发现夹在了p和q中间,就找到了节点。​ 跟着答案做下来,感觉还行。跟上一题类似,根据key与root的大小关系,找对应的节点位置。找到节点位置,就触发终止条件。​ 这里呢,也是不断地判断向左和向右,根据大小判断找到合适的位置,找到位置后新建一个TreeNode,并建立相应的链接。

2023-08-16 21:34:52 16

原创 力扣第17天----第530题、第501题、第236题

​ 自底而上的遍历,一定要用后序遍历。终止条件----root为nullptr,返回nullptr;单层递归逻辑----向左遍历、向右遍历,中间判断left和right是否为nullptr,不为nullptr表示找到了p或q,同时为q返回root,都为nullptr返回nullptr。​ 还是,双指针+中序遍历,整体遍历一次即可。不断循环,更新当前指针位置的计数(cur_num)、当前遇到的众数的个数(max_num)。​ 跟昨天做的题,差不多–双指针+中序遍历,不断记录更新相邻节点的最小绝对差。

2023-08-15 09:21:36 14

空空如也

空空如也

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

TA关注的人

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