自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 问答 (1)
  • 收藏
  • 关注

原创 代码随想录算法训练营第十三天|二叉树part01

需要了解 二叉树的种类,存储方式,遍历方式 以及二叉树的定义。给定一个二叉树的根节点。

2024-08-01 18:18:38 286

原创 代码随想录算法训练营第十一天|栈与队列part02

波兰表达式相当于是二叉树中的后序遍历,逆波兰表达式:是一种后缀表达式,所谓后缀就是指运算符写在后面。平常使用的算式则是一种中缀表达式,如 ( 1 + 2 ) * ( 3 + 4 )。该算式的逆波兰表达式写法为 ( ( 1 2 + ) ( 3 4 + ) * )。去掉括号后表达式无歧义,上式即便写成 1 2 + 3 4 + * 也可以依据次序计算出正确结果。遇到运算符则取出栈顶两个数字进行计算,并将结果压入栈中。本题是 大数据中取前k值 的经典思路,了解想法之后,不算难。239. 滑动窗口最大值。

2024-07-30 20:50:32 900

原创 代码随想录算法训练营第十天|栈与队列1

例如,在 "abbaca" 中,我们可以删除 "bb" 由于两字母相邻且相同,这是此时唯一可以执行删除操作的重复项。之后我们得到字符串 "aaca",其中又只有 "aa" 可以执行重复项删除操作,所以最后的字符串为 "ca"。栈的目的,就是存放遍历过的元素,当遍历当前的这个元素的时候,去栈里看一下我们是不是遍历过相同数值的相邻元素。// 返回 False。232.用栈实现队列。232.用栈实现队列。拿字符串直接作为栈,

2024-07-26 22:51:36 670

原创 代码随想录算法训练营第九天|151.翻转字符串里的单词、卡码网:55.右旋转字符串

字符串的右旋转操作是把字符串尾部的若干个字符转移到字符串的前面。给定一个字符串 s 和一个正整数 k,请编写一个函数,将字符串中的后面 k 个字符移到字符串的前面,实现字符串的右旋转操作。中可能会存在前导空格、尾随空格或者单词间的多个空格。返回的结果字符串中,单词间应当仅用单个空格分隔,且不包含任何额外的空格。输入共包含两行,第一行为一个正整数 k,代表右旋转的位数。第二行为字符串 s,代表需要旋转的字符串。例如,对于输入字符串 "abcdefg" 和整数 2,函数应该将其转换为 "fgabcde"。

2024-07-25 22:42:34 305

原创 代码随想录算法训练营第八天|344.反转字符串、541. 反转字符串II、卡码网:54.替换数字

344.反转字符串s示例 1:输入:s = ["h","e","l","l","o"]输出:["o","l","l","e","h"]可以使用库函数、双指针等方法时间复杂度:O(n)空间复杂度:O(1)541. 反转字符串IIsk2k2kkk2kkk思路:遍历字符串的过程中,只要让 i += (2 * k),i 每次移动 2 * k ,然后以2k个为区间进行判断即可。时间复杂度:O(n)空间复杂度:O(1)卡码网:54.替换数字。

2024-07-25 14:14:45 808

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

给你四个整数数组nums1nums2nums3和nums4,数组长度都是n,请你计算有多少个元组2两个元组如下:1思路:创建一个类型的变量umap,用于存储两数之和作为键,出现次数作为值。使用两个嵌套的循环遍历nums1和nums2中的所有整数对a和b,计算它们的和,并将这个和作为键存入umap,同时初始化对应的值为1。定义一个计数器count并初始化为0,用于记录和为0的组合数量。使用两个嵌套的循环遍历nums3和nums4中的所有整数对c和d。对于nums3和nums4中的每个整数对c和d。

2024-07-24 22:36:46 861

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

给定两个字符串s和t,编写一个函数来判断t是否是s的字母异位词。若s和t中每个字符出现的次数都相同,则称s和t互为字母异位词。sttrues= "rat",t= "car"falset:运用哈希表,定义一个数组叫做record用来上记录字符串s里字符出现的次数。遍历字符串s的时候,将字符串s中字符出现的次数统计出来遍历字符串t的时候,对t中出现的字符映射哈希表索引上的数值再做-1的操作最后检查时间复杂度为O(n)空间复杂度为O(1),空间上因为定义是的一个常量大小的辅助数组。

2024-07-23 00:21:26 875

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

给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。[2,1,4,3]head = [][]head = [1][1][0, 100]思路:设置一个虚拟头结点,然后按照以下步骤进行交换初始时,cur指向虚拟头结点,然后进行如下三步:给你一个链表,删除链表的倒数第n个结点,并且返回链表的头结点。

2024-07-22 16:31:53 757

原创 代码随想录算法训练营第三天|LeetCode 203.移除链表元素 、 707.设计链表 、206.反转链表

总结:今天没看视频完成这三条题,也是之前做过的,第二题卡了蛮久,因为不够熟悉虚拟头结点的用法,第三题思路不够清晰。思路:分两种情况讨论,当要删除元素就是头结点的时候就直接删除,如果不是头结点,就利用while循环找到所有满足。// 链表变为 1->2->3。// 现在,链表变为 1->3。思路:按照每一个模块进行,纯小白做法,运用了虚拟头结点。的节点,并返回 新的头节点。你可以选择使用单链表或者双链表,设计并实现自己的链表。,请你反转链表,并返回反转后的链表。是指向下一个节点的指针/引用。

2024-07-20 00:51:00 959

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

思路:运用滑动窗口,滑动窗口其实也是双指针,i作为滑动窗口的起始位置,j作为滑动窗口的终止位置,同向双指针,先让j往后移动,sum+=nums[j],当sum大于target的时候,将i往后移动,看看能删掉几个元素,sum-=nums[i],这样就可以得出最小长度的子数组。思路:运用双指针的思想,因为是非递减数组,最大的元素肯定在两边,要得到从小到大的数据,可以设置一个新数组result,定义新数组的索引下边k=numsize-1,两个指针在两边。2021.7.18日打卡 学习时长2hours。

2024-07-18 16:42:30 395

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

while(left<right)left不能等于right,同时要注意right不应该再减1了。思路:有序数组,且无重复,二分查找的话要有两个界限left和right和一个中间值middle。看到题目第一眼就知道之前刷过,但是还是忘了区间该怎么定义,可见我基础不扎实。今日总结:两题都是之前练过的,但是都有不同程度的遗忘,之前掌握的不够。②[left,right),即左闭右开。LeetCode27. 移除元素。时间复杂度:O(logn)时间复杂度:O(logn)空间复杂度:O(n)空间复杂度:O(n)

2024-07-17 23:03:08 226

空空如也

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

TA关注的人

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