自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 代码随想录算法训练营Day3|● 链表理论基础 ● 203.移除链表元素 ● 707.设计链表 ● 206.反转链表

犹豫链表只能从头结点开始,沿着next指针一步一步往下访问,无法访问上一个元素。因为要改变next指针的指向,又要不断往下遍历,这两者对自己定义的指针的方向要求是相反的。3)在访问、删除节点的时候,p指针的初始值并不一样,因为前者要求访问到该元素,后者要求访问到val的前一个结点从而删除val;2)private变量的声明要在struct结构之后,因为dummyNode要用到struct结构里的成员;4)每次删除一个结点,记得用delete语句释放结点的内存。代码最短,但是最抽象、难度最高的一个。

2024-07-06 18:54:18 539

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

要把数组中的元素的平方从小到大排序,而数组本身又是从小到大(更准确的说是非递减顺序),那么平方值最大的元素肯定位于两端。具体的说,C++中,一维数组、二维数组都是内存地址连续的,java中一维数组是连续的,二维不是,二维的每一行的首地址是连续的,每一行首地址用指针指向行内的元素,每一行内也是连续的。这道题暴露了我写代码的误区:总是用直接数控制循环的边界,比如nums.size()-1,nums.size()-2,这导致一旦循环的边界需要变动的时候,需要不断调整直接数,最后就是越写越乱。

2024-07-04 22:12:37 1978

原创 代码随想录算法训练营Day1 | LeetCode 704. 二分查找、27. 移除元素。

看到题目第一想法是用空间换时间:新建一个数组tempArray,指针遍历到非val元素时,就把这个元素加入新数组,并记录下来加入tempArray的元素的数量;最后把tempArray的元素逐个赋值给原数组。1)区间是选择左闭右开、还是左闭右闭,前者的right边界在更新世更新为middle,循环的条件是left < right,因为left = right时区间内没有元素;因为slowIndex的指针是新数组的右边界,而这个数组是左闭右开的。我们需要的是一个新的数组,他的元素都不包含要剔除的val元素。

2024-07-03 17:47:30 763 1

空空如也

空空如也

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

TA关注的人

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