自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 DAY11-栈与队列2,20,1047,150

转换为字符数组,用一个新的字符数组存储单索引的值,再循环判断原字符数组双索引值处是否与单索引处值一致。适合用栈操作运算:遇到数字则入栈;遇到运算符则取出栈顶两个数字进行计算,并将结果压入栈中。遍历数组当前元素时候,前一个元素是什么。步骤,遇到左括号把右括号放进栈里,遇到右括号开始匹配。栈为什么适合做类似于爱消除的操作,因为栈帮助我们记录了。类似于二叉树的后序遍历,对计算机友好。这种在上面这种场景下就是有问题的。括号匹配是使用栈解决的经典问题。栈为空但还没遍历完,类型匹配不上。这几道题都是栈的应用场景。

2024-06-03 16:15:18 128

原创 DAY10-栈与队列理论,232,225

栈:先入先出,队列:后入先出,所以用两个栈用来模拟一个队列,一个充当进口,一个充当出口。一个队列在模拟栈弹出元素的时候只要将队列头部的元素(除了最后一个元素外)这些类都实现了队列的功能,并提供了添加、移除、检查队列元素等方法。重新添加到队列尾部,此时再去弹出元素就是栈的顺序了。在JAVA里,栈就是一个容器。看栈顶元素数值,不弹出;弹出元素,返回弹出值。225:用队列模拟栈。

2024-06-01 20:21:00 196

原创 DAY8-双指针,字符串-344,541,54,151

151:有很多细节需要处理,还有一个小问题没解决,得进IDEA单步调试,明天再看。,也可以直接申请新数组,不用向里面先赋值,所有操作均在一次循环里完成。定义两个指针,分别指向新旧的末尾,遍历旧数组,按需向新数组赋值。很多时候不知道用哪个函数方法,我也太菜了。定义一个新的字符数组把旧的赋值过去。循环里,每次它都没有被更新。自己刷题好慢呀,还是要坚持。搞了半天都不对,最后放在。里单步调试发现了问题,把。先计算扩容后需要多少长度。

2024-05-30 22:42:07 230

原创 DAY7-哈希表2-454,383,15,18

这道题要注意去重,刚看了两数之和,感觉用双指针也行。哈希解法:题目中说只有小写字母,可以用长度为。18:跟三数之和一样的思路,注意剪枝的时候。的值各不相同,相加产生的数字个数为。的话其实是更耗时的。

2024-05-29 22:31:30 149

原创 DAY6-哈希表,242,349,350,202,1

确实Java集合这个容器的函数使用还不是很熟练,有些函数都不知道有没有,更不用说咋用了,只能说多刷题,把常见的都掌握了,一般手里都要拿一个jdk的API文档。拉链法,相同索引了在后面成链表,拉链法要选择适当的哈希表大小,这样既不会因为数组空值而浪费大量内存,也不会因为链表太长而在查找上浪费太长时间。目的用来存放我们访问过的元素,因为遍历数组的时候,需要记录我们之前遍历过哪些元素和对应的下标,这样才能找到与当前元素相匹配的。,依靠哈希表中的空位来解决碰撞问题,冲突了,就向下找一个空的位置放置数据。

2024-05-28 22:01:08 419

原创 DAY4-链表,双指针,24,19,160,142

这个方法并没有用临时节点,在交换链表节点时,一定要找到变动节点的上一个节点(谁指向了你想要做变动的节点),不需要判空,后面做了判定。快指针要是遇到空则表示没有环,有环时慢指针走不到进环第二圈会被快指针追上,通过公式推导,在相遇点和链表头各设一个指针,每次各移动一步,相遇点就是环的入口。昨天下了一天的雨,歇了一天,今天继续补回来,看到题都觉得面熟,但是具体的解题步骤有的能想起来一些,有些啥也想不出来,菜就多练。步,快慢双指针同时移动直至快指针指向空,这时满指针的位置就是要删除节点的前一个节点。

2024-05-26 21:20:09 160 1

原创 DAY3-链表相关-203,707,206

用到了三个指针,但是只是前后两个指针在移动,另外一个起到了保存当前指针下一个节点的功能,要不然一改变方向,下一个节点就失联了。放在后面,不停显示可能会出现空指针的情况,可是最开始不是已经判空了吗。自己最开始写的代码还是更接近第三种,但是一定注意链表里指针指向问题,一不小心就会操作空指针。这道题考察了链表的增删改查,在涉及节点变动的时候,要找到前一个节点的位置,比如添加节点.就给了链表为空的情况,就应该想到要在开头去对链表是否为空做一个判断。以下为不添加头节点的情况,多了一个判断头节点状态的步骤。

2024-05-24 21:23:08 309

原创 DAY2-数组,螺旋矩阵,977,209,59,剑指29

双指针法:不用自带的排序方法,用两个指针,平方之后把两个指针放在两头,开始比较,左边比右边小了就放入右边的下一个,有个问题,这样应该要开辟新数组空间,思路上还是不太对。看了解析,大致是正确的,只不过是左右相比大的放新开出来的结果集数组里,同时指针移动,时间复杂度为。另外,时间复杂度主要是看每一个元素被操作的次数,每个元素在滑动窗后进来操作一次,出去操作一次,每个元素都是被操作两次,所以时间复杂度是。思路:是跟螺旋矩阵一样的,唯一的是这个长宽不一定一致,输出到最后得判断,肯定最后一步不是向右就是向下。

2024-05-23 20:51:15 283

原创 DAY1--二分查找,双指针,704,34,35,27

双指针忘记怎么实现了,暴力法是想新建一个数组,循环遍历原先的数组,遇到指定值就计数+1,不是指定值挪到新数组,这样问题是新数组会有空值出现,测评时也不符合要求,得再遍历一遍新数组,增强for写错了。写在开头,三月份开始陆续刷了代码随想录到动态规划,三天打鱼两天晒网,有时状态好一天快10道,懒惰时一个礼拜刷不了一个,不得行,做笔试题做的想鼠,我只是可怜的鼠鼠,下定决心,要每天跟着进度走,我这勉强算二刷,也是看到题大概有个思路,冲!right值,因为要是没找到,插入的位置肯定是最右边的下一个。

2024-05-22 21:49:54 338

原创 剑指Offer1-从尾到头打印链表

思路2:JAVA ArrayList里有个函数,add(index,value),可以采用类似头插法将链表中读出来的值放进集合里。输入一个链表的头节点,按链表从尾到头的顺序返回每个节点的值(用数组返回)。当链表不为空时,将数值压入栈,新建集合,栈不为空时将栈中弹出元素加入集合中。注意栈的压入(push),弹出(pop),判空(isEmpty)函数。应该是还有先遍历链表存储数组再反序遍历数组存进集合的办法。先向链表尾部遍历,到了尾部之后再加入集合就是正确答案。思路1:先进后出,用栈。

2024-05-21 17:24:14 162

空空如也

空空如也

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

TA关注的人

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