自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 2023复旦大学计算机科学技术(网络空间安全)保研记录

5min的英语面试。我觉得自信流利比较重要,大家一定要和老师交流,不要像回答问题,放轻松,咱们准备这么久了,只要把能说的,自己做的都告诉老师就行了,我和朋友碰到的老师都是很好的,不过有个哥们做的内容好像是老师的研究领域,就被揪着问项目了,所以大家一定要准备充分,所有可能的问题都提前预设一下,就算不背,也先想好怎么说,然后现场发挥我觉得也不错。然后专业课,被问了概率论、计网安全、密码学、数据结构诸如此类的基本课程,复习到位就行,但是我因为纯纯摆烂了,就很多没复习到吧,答的磕磕绊绊,在此告诫大家,好好复习。

2023-09-20 10:16:26 881 2

原创 CS人的痛

选取一些学习的,求上岸。

2023-08-01 10:00:08 106

原创 动态规划V (85、91、97)-最近都开始摆烂

题目描述:给定一个仅包含0和1、大小为的二维二进制矩阵,找出只包含1的最大矩形,并返回其面积。学习记录:对每一个地方都去统计最大举行的话,会有很多多余的计算,题解思路很好理解。先统计每个位置最左边有多少个连续的1,然后在遍历数组,以每个位置为右下角寻找即可。

2023-06-23 22:05:59 182

原创 C++测试

开始对C嘎嘎下手!

2023-06-22 20:24:40 635

原创 动态规划IV (118、119、198、213、337)

题目描述:给定一个非负整数 numRows生成「杨辉三角」的前 numRows行。在「杨辉三角」中,每个数是它左上方和右上方的数的和。学习记录:思想就是没有思想,的杨辉三角,但是注意resize的用法和初始化的方法!

2023-06-16 22:53:27 1031

原创 extern声明&static的用法

extern”告诉编译器变量在外部某处声明过,但是不可以再对他进行二次赋值。1.h:test1:可以正常运行test2:不能正确运行test3:可以正确运行。

2023-06-10 22:28:50 56

原创 枚举类型enum的用法

Enumeration type(枚举数据类型):用户自定义的构造数据类型,其值集是由用户程序定义的。正常认为是0,1.....如果你赋值了,就按你赋值的来。enum <枚举类型名> { <枚举值表> };

2023-06-10 21:48:06 64

原创 动态规划III (买股票-121、122、123、188、309)

题目描述:给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0。学习记录:第一想法是双指针往中间走,但是存在问题,就是取到最大最小的地方我们不知道,无法判断指针的移动,这种方法不可行。

2023-06-09 21:23:37 431

原创 动态规划II (42、53、64、70、72)

题目描述:学习记录:虽然脑子里第一个蹦出双指针,但是题目是动态规划,两个混着想,啥也没想出来...不会1.动态规划:太牛了吧,这个不是从整体去考虑每一块该怎么填,而是通过判断每一个位置上的雨水的量进行判断的2.双指针:和动态规划思想一样,就是省去了两个数组,并且也不需要两边的最大距离,只需要在这个地方能存储的最大即可。

2023-06-09 20:34:32 599

原创 动态规划I (45、55、62、63)

按顺序刷确实效率太低了,今天开始要按顺序的同时也按标题来了,全面加油!这种应该以后会更多直接总结题解了,自我学习用,全靠大佬,贴贴!!

2023-06-08 20:47:28 684

原创 (不会)CP30 串联所有单词的子串

想法是之前做过的两道题的结合,先返回数组的所有串联子串,然后将所有子串当作模式串,采用模式匹配,找到在主串中的位置。但是看起来就是时间应该不会短,但是肯定能做。直接上题解,滑动窗口的思想...但是没看懂,先放这里,回来再写把...

2023-06-08 19:18:34 39

原创 CPU如何访问主存?

如果TLB没有找到相应的页表项,那么说明不在TLB里,那我们就需要通过页表来进行查询物理地址,这个时候需要借助内存管理单元MMU,通过MMU查询页表,如果在页表中相应页表项装入位为1,说明在内存中,得到物理地址;如果为0不在内存中则需要通过虚拟存储器中软硬件进行主存和辅存的调入调出,修改页表,最终得到物理地址。1.1 该地址首先会去到cache中,cache中存在TLB表,TLB表是页表的一部分内容,保存装入为1的条目,如果在TLB中找到了相应的页表项,那么直接根据页表项得到物理地址。

2023-06-03 17:09:12 1397

原创 CP28 找出字符串中第一个匹配项下标 & CP29 两数相除

给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串的第一个匹配项的下标(下标从 0 开始)。如果 needle 不是 haystack 的一部分,则返回 -1。数据结构上学过,去复习,不多说。

2023-06-03 08:57:33 26

原创 CP27 移除元素

然后上述方法是可以的,但是存在很多不需要的操作。我们把5放在位置1上,又把6放在位置2上,但不考虑顺序,最简操作显然是将6放在位置1上。所以可以采用双指针的优化,定义左右指针,左指针存放下一个要存的地方,右指针找下一个要存的元素,左右重合就是结束。给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。看了题解方法一双指针,思路一样,但是突然发现result和index是同步变化的呀,可以删去一个,虽然设想的用法不同,但实际是一样的。

2023-06-01 10:20:27 38

原创 CP26 删除有序数组中的重复项

思考可知,我们需要历遍数组来判断,用三个变量,result,index,value。result统计有几个不同的值,由于是升序数组,只需要看和上次的一不一样就行,如果不一样就++。index用来记录下一次存储的位置,由于数组历遍后就不再需要了,而且根据题目描述不需要考虑多余的部分,因此只需要在和上次不同的时候覆盖存储就行了。简单题就是要一遍过!题解使用的是双指针,然后没有额外记录,其实和原思路中i和index的用法是一样的。但是他没有额外记录value的内容,也就是说,我们的方法是可以修改的,修改如上。

2023-06-01 10:01:48 39

原创 CP25 K 个一组翻转链表

给你链表的头节点 head ,每 k 个节点一组进行翻转,请你返回修改后的链表。k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。你不能只是单纯的改变节点内部的值,而是需要实际进行节点交换。刚刚做完两个节点的,就想着用类似的方法来处理这道题,先判断是否后面还有k个节点,没有则返回当前头,有则翻转该k个。感觉还是很简单,但写的时候思路有点混乱,参考题解。题解代码如下,看完其实豁然开朗。然后就是这里讲了如何返回两个值,用pair即可。

2023-06-01 09:38:22 32

原创 CP24 两两交换链表中的节点

想法就是依次记录三个指针a,b,c表示上一个节点、交换节点1,交换节点2;通过指针的操作交换位置,然后依次往后进行。这里想完后看了一下题解,应该是没问题的,可以实现,就去写了,代码如下,一遍过!给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。2.head在交换后是改变位置了的,需要head=save->next,找到新的头。1.第一次交换情况和别的不同,因为没有前驱,但可以。了,能够将问题一般化,要学会使用。

2023-06-01 09:07:38 28

原创 CP23 合并K个升序链表

为什么执行这么慢,因为对空指针其实是重复判断的,有一个方法是,当空指针后就将指针移出vector, 但我记得之前做删除的时候vector其实还是存在问题,这里就没有这样,但是如果做了可能会提升执行速度。思路:这个方法和前两种方法的思路有所不同,我们需要维护当前每个链表没有被合并的元素的最前面一个,k 个链表就最多有 k 个满足这样条件的元素,每次在这些元素里面选取 val 属性最小的元素合并到答案中。想不到更好的方法了,写了一下,是OK的,但用时还是很长的。思路:考虑优化方法一,用分治的方法进行合并。

2023-05-30 12:04:38 57

原创 C++中set类函数的使用

目前还没有找到可以直接没有e的,但是固定长度(有效位数非小数的)L输出........ 可能确实需要判断整数的位数M,然后采用<<fixed<<setprecision(L-M)这种?注:set后,在后面所有的输出都是管用的,所以测试一个,需注释其他的。想输出:123.4 7.000 45.20。输出:空格221.113,会补空格,使长度为8。头文件:#include <iomanip>输出:221.000。

2023-05-30 10:48:57 79

原创 CP22 括号生成

看到的第一想法是,用递归和回溯,就和那个电话号码题差不多,但苦鲁西,但是我写不出来鸭!代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且。题解是暴力法、回溯法、按括号长度递归法,emmm,都看不懂。其实这两种思路都是差不多的,但是都很清晰,我简直依托答辩。看看dl,提升自己,

2023-05-29 20:15:09 37

原创 CP21 合并两个有序链表

数据结构上学过的想法,直接定abc三个指针移动,不用开辟新的空间,一遍过。新链表是通过拼接给定的两个链表的所有节点组成的。答案使用的递归的方法,也是非常巧妙的。将两个升序链表合并为一个新的。

2023-05-29 14:17:38 30

原创 CP20 有效的括号

最开始的想法就是,定义三个计数的变量a,b,c,分别记录(),{},[],的个数,左加右减,过程中不小于0,最后等于0是正确的。但是存在一种情况 ( [ ) ] 这种情况在我的方法中会返回正确,但是显然这个应该是不正确的,因此wrong!题解里给出的代码用到了unordered_map,leetcode是真的喜欢用,也是真的方便,粘上来学习一下。给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。题解:栈的方法,栈与含括号是的方式是完全一样的!

2023-05-29 10:39:36 38

原创 CP19 删除链表的倒数第N个节点

最简单的就是两次循环便利链表,第一次找到长度,第二次进行删除,是OK的,主要是注意一下条件那里,最开始是认为length==1 return nullptr;但是在return前加入delele所有自定义的指针后,发现执行出错,因为这些指针指的是链表里的元素,再和题解中的进行对比,题解中的delete的指针是new出来的,直接定义没有开辟新空间的指针是不需要delete的,C++已经全忘完了,该去复习复习了。也是一种很巧妙的思想,不需要知道总长度,给你一个链表,删除链表的倒数第。

2023-05-29 10:11:17 29

原创 CP18 四数之和

给你一个由 n 个整数组成的数组 nums ,和一个目标值 target。请你找出并返回满足下述全部条件且不重复的四元组 [nums[a], nums[b], nums[c], nums[d]] (若两个四元组元素一一对应,则认为两个四元组重复):0

2023-05-29 09:03:30 73

原创 ※CP17 电话号码的字母组合(递归+回溯,不会)

给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。最简单的想法就是每一位往后加,但总觉得不是很对劲,看了题解,还是太菜了,复制题解学习一下吧。

2023-05-29 08:58:36 32

原创 CP16 最接近的三数之和

给你一个长度为 n 的整数数组 nums 和 一个目标值 target。请你从 nums 中选出三个整数,使它们的和与 target 最接近。假定每组输入只存在恰好一个解。1.初始化result不能是0,因为如果0和target比结果更接近就是存在问题的。想到CP15是用双指针,这里是不是也可以捏。2.j和k的变化借助变量比++更方便。

2023-05-23 16:49:20 29

原创 CP15 三数之和

做完11题过来的,选了个双指针想练练,发现是一点都不会i,因为要求没有重复,所以思索用unordered_set进行查找,但是这样的问题是,重复的元素并不能直接去掉,因为比如-1+-1+2=0我们是需要使用的,需要两个循环,也用不了双指针...还是去学习一下吧。的代码,自学一下,首先排序可以采用自带方案sort函数,然后要注意边界值的情况,比如空的时候返回的问题,然后注意一点在循环中判断左右指针移动的时候,我是这样的,然后就报--时间超时,可以看到这个uu用tem[]记录后判断会减少很多访问,就可以通过!

2023-05-23 12:03:16 28

原创 CP14 最长公共前缀

正确使用截子串:s.substr(n,length)//表示从字符串n的位置开始截取length长度的字符。编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串。

2023-05-23 12:03:05 50

原创 CP13 罗马数字转整数

理论上我会逐位判断,然后加加,懒得写,复制题解,题解好简单,看来要学会用map。

2023-05-23 12:02:02 83

原创 CP12 整数转罗马数字

好像之前做过,简单复制一下。

2023-05-23 10:59:07 30

原创 CP11 盛最多水的容器

找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。拿到题,在想是不是动态规划,选这个的情况和不选这个回退到上一步的,但是回退后只知道盛水最大,但不知道是哪个边界,所以应该是有问题的。想想简单的或许双循环?哎,只会这种最笨的,试试吧,试了超时了,偷偷看了眼评论应该用双指针来做。若指向同一数组,但是遍历方向相反,则可用来进行搜索,例如在本题中,如果我们都从左向右,那么其实收缩条件是很难的,最终感觉还是会变成历遍,采用反向移!若两个指针指向同一数组,遍历方向相同且不会相交,也成为滑动窗口。

2023-05-13 11:13:44 30

原创 CP10 正则表达式匹配

如果逐位判断,'.'视作相同,'*'要看上一位的,如果上一位是'.'视作相同,是别的字符在进行判断。写完后发现,'*'是匹配零个或多个,不是一个或多个,我真的哭死,难绷,然后修改错误百出,需要考虑的情况也是非常多的。给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 '.' 和 '*' 的正则表达式匹配。所谓匹配,是要涵盖整个字符串 s的,而不是部分字符串。,太菜,去看了题解,是采用的动态规划的方法(我算法是真的菜👎)然后,还在CSDN上参考了这个uu的文章,是用的递归的思想。

2023-05-13 11:13:28 175

原创 CP9 回文数

给你一个整数 x ,如果 x 是一个回文整数,返回 true;否则,返回 false。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121 是回文,而 123 不是。注:考虑符号,-121不是回文。你能不将整数转为字符串来解决这个问题吗?”思考.jpg,result=result*10+x/10;x=x/10这种,看了题解,好吧,确实,就不写了。但是官方还是聪明的,简单方案,to_string哈哈哈哈哈,就没写。

2023-05-11 17:59:23 23

原创 CP8 字符串转换整数

4. 边界条件"2147483646" "-2147483648"应该格外考虑,int所能表示的范围是-2147483648到2147483647,因此对于负数,我们不能先*10+t在考虑正负号,边界条件要注意。写完去看了题解,救命死去的回忆在攻击我,很惭愧的说,编译是一门大学中我考的最高的一门,但是也是所有大专业课中最不会的一门,不想看,先复制一下题解,回来再说...2. "00000-42a1234"应该是0,而且-+应在第一个字母出现之前。1. "+-12"没有考虑两次出现,应设置次数限制。

2023-05-11 17:45:29 39

原创 CP7 整数反转

我的一个想法是,将int转为string,然后对string反转,代码如下,但是存在一个问题是溢出...例如下面这个数,反转后已经超过处理位数了,出错...官方给的题解好简单,一眼懂。

2023-05-11 16:48:47 70

原创 CP6 N字型变换

N字形变换后每一行可以看作是一个字符串,最后将字符串加起来输出就行。定义一个有numRows个字符串的数组,那问题就在对于字符串s的每一个字符加到数组的哪一个后面,由于N字形,如果4行,那加的顺序就是1234 32 1234 ....在过程中如果超出s的长度就退出就行了。,以从上往下、从左到右进行 Z 字形排列。2.压缩矩阵(其实和用字符串是一样的,用可变数组向后添加).题目描述:将一个给定字符串。1.矩阵存储(计算需要几列)

2023-05-11 15:51:56 33

原创 CP5 最长回文子串

我们用 P(i,j)P(i,j) 表示字符串s的第i到j个字母组成的串(下文表示成 s[i:j]s[i:j])是否为回文串:如果是回文P[i,j]=1,否则P[i,j]=0。边界i和j不能越界,P[i,i]=1,P[i,i+1]=s[i]==s[i+1]。想要求解一个动态规划,我们必须定义变量,求递推关系,找边界条件。看完感觉自己都会了,按照这个思路还是有错,还是要实际动手。作为一个小白,还是只会暴力破解法,先写写试试,通过。

2023-05-11 15:17:32 57

原创 CP4 寻找两个正序数组的中位数

思想是,奇数k=(m+n)/2,偶数k=(m+n)/2或(m+n)/2+1,我们就是要找到可以转化成寻找两个有序数组中的第 k小的数,由于两个数组是均是有序的,我们只需要比较A[k/2-1]B[k/2-1],可以将k值缩减一半。最初的想法是,将两个数组合为一个数组,采用两个下标分别移动的方式,又想省空间,觉得不如只移动不开新的数组,然后用一个计数器,结果就是情况很多就一直报错。标签是困难,看完题感觉还行呀,写的时候才发现难点所在,情况非常的多,因为数组长度可能为0,那么就需要很多的判断,需要理清思路。

2023-05-11 15:16:45 28

原创 CP3 无重复字符的最长子串

例如abcdcefghi,当左指针在a有指针在第二个c处,判断有重,会将左指针所只的a移出,依然有重,则b移出,c移出,后没有重复则可将右指针的加入,以此实现滑动窗口。评论1:答案有个缺点,左指针并不需要依次递增,即多了很多无谓的循环。评论2:标准答案步骤稍多,而且不容易理解,应该左侧指针固定,移动右侧指针,当窗口内最右侧的字符在set中存在时,左侧指针移动并从set中移除原左侧指针对应的字符,这样再取窗口长度的最大值即可。答案给的题解也差不多,用滑动窗口来做的,结合两个指针,其实和我的也差不多(或许。

2023-05-11 15:16:31 30

原创 CP2 两数相加

给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0 开头。我的题解,但是看起来还是复杂的,复制一个官方题解供参考。

2023-05-11 15:16:14 53

空空如也

空空如也

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

TA关注的人

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