我得leetcode之路
文章平均质量分 58
分享自己的leetcode刷题之路
IT民工小新
一个科班热爱编程的程序员,学习java全栈,机器学习等等
展开
-
leetcode中二叉树迭代遍历中的三种遍历方式实现
在最坏的情况下,二叉树是一个单链表,节点数量为N,那么遍历的时间复杂度为O(N)。在最坏的情况下,二叉树是一个单链表,节点数量为N,那么遍历的时间复杂度为O(N)。在最坏的情况下,二叉树是一个完全二叉树,栈中的节点数量会达到最大值,即树的高度。遍历过程中,每个节点都会被访问一次,因此时间复杂度取决于节点的数量。遍历过程中,每个节点都会被访问一次,因此时间复杂度取决于节点的数量。因此,空间复杂度的最坏情况为O(N),平均情况下为O(logN)。在最坏的情况下,栈中的节点数量会达到最大值,即树的高度。原创 2024-02-03 15:37:05 · 659 阅读 · 0 评论 -
leetcode中二叉树递归遍历中的三种遍历方式实现
(完结2.2)原创 2024-02-03 13:51:30 · 1175 阅读 · 0 评论 -
leetcode 347 前 K 个高频元素
因为如果使用大根堆的话,对于priority来说其中pop()方法,弹出的就是二叉树的顶部,使用大根堆每次就是弹出的最大值,所以留下来的k个元素其实最小的k个,题目中要求的是最大的k个时间复杂度:空间复杂度:通过原创 2024-02-02 16:21:00 · 537 阅读 · 0 评论 -
leetcode 239. 滑动窗口最大值
封装一个单调队列,让这个队列的对首就是队列中的最大值,每次入队的时候,如果入队元素大于对尾,就弹出元素,让队首就是元素的最大值定义一个Myque的单调队列,手动实现push,pop,getMaxValue三个函数push(int val):val是待入队的值,如果大于队尾就循环弹出队尾,最后才是把val从尾部加入双端队列pop(int val):因为队push函数的改造,导致push的时候,弹出了很多的元素,val是本来滑动窗口的第一个元素,只有这个元素在push函数中没有被踢出去这个时候才需要调用pop原创 2024-02-02 12:40:47 · 588 阅读 · 0 评论 -
150. 逆波兰表达式求值
本体就是后缀表达式,遍历字符串,如果为数字就直接添加到栈中,如果为操作符,就从栈中弹出两个数字之后,执行运算。1.函数最后放回的是一个int形的结果,我们定义的是long long ,可以直接使用内置函数stoll(),来解决这个问题2.假如后缀表达式为 [“4”,“13”,“5”,“/”,“+”]栈顶 -------------------->栈底13 4则num1=13num2=4对于原式来说,应该执行的是num2+num1,而不是num1-num2时间复杂度:遍历字符串向量 tokens原创 2024-02-01 23:05:29 · 516 阅读 · 0 评论 -
1047. 删除字符串中的所有相邻重复项
为什么联想到使用栈这种数据结构来解决?因为每次操作之后剔除掉相同的元素之后,后面挨着的元素可能依旧是一样的,所以不如把最后的结果存储到一个栈中,这个为了方便,最字符串尾部执行剔除和添加,来模拟栈的结构。原创 2024-02-01 20:24:52 · 375 阅读 · 0 评论 -
leetcode 18 四数之和
给你一个由 n 个整数组成的数组 nums ,和一个目标值 target。请你找出并返回满足下述全部条件且不重复的四元组 [nums[a], nums[b], nums[c], nums[d]] (若两个四元组元素一一对应,则认为两个四元组重复):a、b、c 和 d 互不相同你可以按 任意顺序 返回答案。原创 2024-01-17 18:52:36 · 606 阅读 · 0 评论 -
leetcode 454 四数之和
给你四个整数数组 nums1、nums2、nums3 和 nums4 ,数组长度都是 n ,请你计算有多少个元组 (i, j, k, l) 能满足:0 <= i, j, k, l < nnums1[i] + nums2[j] + nums3[k] + nums4[l] == 0示例 1:输入:nums1 = [1,2], nums2 = [-2,-1], nums3 = [-1,2], nums4 = [0,2]输出:2解释:两个元组如下:输入:nums1 = [0], nums2 = [0], n原创 2024-01-17 18:18:15 · 530 阅读 · 0 评论 -
leetocode 15 三数之和
给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i!= j、i!= k 且 j!= k ,同时还满足 nums[i] + nums[j] + nums[k] == 0。请你返回所有和为 0 且不重复的三元组。注意:答案中不可以包含重复的三元组。输入:nums = [-1,0,1,2,-1,-4]输出:[[-1,-1,2],[-1,0,1]]解释:不同的三元组是 [-1,0,1] 和 [-1,-1,2]。原创 2024-01-17 18:37:10 · 487 阅读 · 0 评论 -
leetcode 1两数之和
给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。示例 1:输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1]。原创 2024-01-14 22:47:53 · 591 阅读 · 0 评论 -
leetcode 349 两个数组的集合
给定两个数组 nums1 和 nums2 ,返回 它们的交集。输出结果中的每个元素一定是 唯一 的。我们可以 不考虑输出结果的顺序。示例 1:输入:nums1 = [1,2,2,1], nums2 = [2,2]输出:[2]示例 2:输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出:[9,4]解释:[4,9] 也是可通过的。原创 2024-01-14 16:42:57 · 460 阅读 · 0 评论 -
leetcode 142 环形链表II
给定一个链表的头节点 head ,返回链表开始入环的第一个节点。如果链表无环,则返回 null。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。如果 pos 是 -1,则在该链表中没有环。注意:pos 不作为参数进行传递,仅仅是为了标识链表的实际情况。不允许修改 链表。链表中节点的数目范围在范围 [0, 104] 内。原创 2024-01-14 15:51:31 · 464 阅读 · 0 评论 -
leetcode 19 删除链表的倒数第 N 个结点
在执行删除操作的时候,如果该点不是头结点的话,让该节点的前一个节点,指向该节点的后一个节点即可,如果时头结点的话,需要的操作就是head=head->next;原创 2024-01-14 10:38:03 · 422 阅读 · 0 评论 -
leetcode 17 电话号码字母组合
这是一道dfs的题目首先为什么他是一道dfs的题目?dfs是一个遍历的方式,该题就是按键映射的字母的排列组合,所以这道题就是一道dfs的题目怎么处理dfs的题目?对于dfs的题目处理方式:1.写出终止条件2.候选节点的筛选3.回溯。原创 2024-01-13 16:02:52 · 524 阅读 · 0 评论 -
leetcode 206翻转链表
给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。提示:链表中节点的数目范围是 [0, 5000]原创 2024-01-12 11:11:20 · 364 阅读 · 0 评论 -
leetcode 24两两交换链表中的节点
给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。原创 2024-01-12 11:53:11 · 425 阅读 · 0 评论 -
leetcode 59-----螺旋矩阵
给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix。原创 2023-11-19 21:25:29 · 71 阅读 · 0 评论 -
leetcode 977-----有序数组的平方
给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。原创 2023-11-18 16:43:36 · 66 阅读 · 1 评论 -
leetcode 27----移除元素
给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。说明:为什么返回数值是整数,但输出的答案是数组呢?请注意,输入数组是以「引用」方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。你可以想象内部操作如下:// nums 是以“引用”方式传递的。原创 2023-11-18 16:04:50 · 79 阅读 · 1 评论 -
leetcode704---二分查找
给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。原创 2023-11-18 11:07:57 · 56 阅读 · 1 评论