自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 leetcode552--学生出勤记录

题目链接链接: link.自己思索的解法我们观察题目可以容易获悉,学生的出勤记录中不能出现2个A,只能有1个或者没有A。所以分情况讨论,当学生出勤记录没有A时,只存在P和L,且L不能连续出现3个,这就可以用动态规划的思想求解,每天有3个状态,L0(P),L1(这一天迟到了),L2(连续迟到两天了),很容易写出转移方程并求解。当学生出勤记录只有一个A时,我们可以假设A出现在位置i,且将出勤记录分割成前后两个子出勤记录, 这两个子出勤记录时无关的,而且在第一种情况求解的过程中计算出来了,只需要将前后

2021-08-18 12:26:56 85

原创 leetcode310--最小高度树

这道题需要用拓扑排序的思想做。我们可以把树想象成图,图想象成一层一层的圆,第一层是出度为1的节点,很容易知道,这些点并不是我们要找的最小高度节点(因为连接的那个点高度肯定小于等于他)。我们先把初始图初度为1的点加入队列,然后用BFS算法,依次把点和边删除,如果删除边之后出现出度为1的点再加入队列中,直到队列中的点与剩余未访问点的个数相同,这些点就是最后答案的点。// 拓扑排序class Solution {public: vector<int> findMinHeightTrees

2021-03-04 12:06:41 99 1

原创 Leetcode-77组合

这道题目一般的递归方法就不说了,比较有意思的算法是利用二进制的思想来做,记录一下。基本思路就是从小到大寻找n位中有k个1,n-k个0的二进制数。从开始的位置找最近的连续1序列,将最高位1和最高位前面一位置换,然后把其他1全部搬移到最低位。算法用一个数组实现,找到第一个a[j] +1!=a[j+1]的位置,说明此时出现断裂,将a[j]++,把[0,j-1]位置的数换位j+1,相当于搬移1到最低位。class Solution {public: vector<int> temp;

2021-02-28 19:41:19 72

原创 无重叠区间

这道题本身没啥好说的,但是提交后发现自己的用时和内存排名都很低,但只更改了一个地方,排名迅速地上升, [](vector a, vector b) 更换成了[](const auto& a, const auto& b),具体原理等学到C++的时候再补充。class Solution {public: int eraseOverlapIntervals(vector<vector<int>>& intervals) { if(inte

2021-01-30 14:43:26 69

原创 leetcode135 分发糖果

这是一个贪心算法的经典题目,一开始我时找到最小值,然后向两边增加糖果的数量,后来发现这样做有问题。应该采取双向遍历,一次遍历保证右>左,另一次遍历保证左>右class Solution {public: int candy(vector<int>& rate) { int size = rate.size(); if(size < 2) return size; vector<in

2021-01-29 15:20:28 46

原创 CSAPP datalab详解

CSAPP第一章实验详解bitXor(x,y)tmin()isTmax(x)allOddBits(x)negateisAsciiDigitSmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。bitXor(x,y

2020-12-14 23:44:49 3410

原创 数组在栈上的分配

数组在栈上的分配gcc分配数组内存创建了一个长度为N的字节数组,C编译器的在栈上的空间分配很有意思处理器总是以16字节为单位分配栈空间比如当数组长度为2字节时,处理器会分配16字节的空间,但是当数组长度为9字节时,处理器直接分配了32字节,当数组长度为25字节时,处理器会分配48字节。可以发现一个规律,当数组的字节长度 > 16k -8时,处理器会分配(k+1)*16的空间如果再声明一个数组,整数等,处理器继续按16字节分配内存,且都是先分配数组再分配普通变量mov %fs

2020-11-24 15:00:01 1905

空空如也

空空如也

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

TA关注的人

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