自定义博客皮肤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)
  • 收藏
  • 关注

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

栈是以底层容器完成其所有的工作,对外提供统一的接口,底层容器是可插拔的(也就是说我们可以控制使用哪种容器来实现栈的功能)。栈往往不被归类为容器,而被归类为container adapter(容器适配器)。默认为deque在Java中,栈(Stack)和队列(Queue)这两种数据结构的底层实现方式多样,主要依赖于Java集合框架(Java Collections Framework)提供的类和接口。Java中的栈和队列可以通过不同的类实现,选择合适的实现取决于具体的应用需求。

2024-02-07 22:34:58 824 1

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

今天的题目全部是栈的应用 只要是涉及到匹配问题都可以想到栈。

2024-02-04 21:01:09 313 1

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

我本意想的是把stackIn的元素给stackOut 利用stackIn的size 但是每次stackIn pop之后size是会发生变化的 因此要不就用while要不就提前用一个size把stackIn.size()进行存储。针对pop操作:如果stack-out为空 那么我们要先把stack-in中的元素pop出来然后赋值给stack-out 当stack-out不为空的时候 直接pop stack-out即可。针对isEmpty操作:当stack-in和stack-out都为空时 返回true。

2024-02-02 17:39:51 389

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

当执行第三句s[i] ^= s[j];时,相当于把新的sj和新的si再次异或后赋给新的 s[i].由于同样满足交换律和结合律,所以这相当于把原来两者三次异或后赋给了新 的 s [i].根据性质1 和2 ,我们知道这就相当于把原来 的 s [j ] 赋 给 了 新 的 s [i ].此时实现了完全交换。当执行第二句s[j] ^= s[i]时,相当于把新的s[i]和原来的s[j]再次异或后赋给s[j]。所以,当执行第一句s[i] ^= s[j]时,相当于把s[i]和s[j]的值异或后赋给s[i]。

2024-01-31 22:43:36 1886

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

四数之和的双指针解法是两层for循环nums[k] + nums[i]为确定值,依然是循环内有left和right下标作为双指针,找出nums[k] + nums[i] + nums[left] + nums[right] == target的情况,三数之和的时间复杂度是O(n。一个left指向数组的左侧 right的指向数组的右侧 然后left和right移动的逻辑是和三数之和内部的逻辑是一样的。但实际上这不能完成我们的想法 因为Set里面实际存的是引用的地址 不会去比较其中具体的值。

2024-01-30 23:12:51 692 1

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

这道题不难想到用数组来存放次数 关于集合用到数组一般较为容易 常用于数组的下表非常好确定的情况两个数组的交集题目链接本题使用set 可以想象数学中的集合 不允许重复。

2024-01-29 20:23:49 2021

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

什么意思呢?就是如果两个链表如果相交 从交点到最后的节点一定都是一样的 又因为两个链表有长度之差 只需要把二者链表的尾端对齐 然后遍历看两个节点相等(肯定不会在前面有相交的 长度也不够啊)把题理解透还是关键啊。

2024-01-28 21:46:06 1752 1

原创 代码随想录31期第三天 | 203.移除链表元素 |707.设计链表 |206.反转链表

第一次写时 用的是for循环 不管下一个是否是要删除的节点 我都让pre递归下去了 实际上这是很错误的 因为当下一个是要删除的节点是 我们的next变成了新的 这个新的还没进行判断 因此用while循环 只有当下一个节点不是要删除的节点的时候 pre才进行移动。删除链表中的元素主要就是需要找到被删除的节点的前一个节点以及后一个节点 所以通常用一个pre保存前节点 判断pre.next.val是否是要删除的节点。接下来,就是循环走如下代码逻辑了,继续移动pre和cur指针 令pre=cur,cur=tmp。

2024-01-26 20:51:15 837

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

图片取自代码随想录。

2024-01-25 20:45:45 910

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

leetcode 二分查找与移除元素

2024-01-24 12:21:56 1066 1

空空如也

空空如也

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

TA关注的人

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