数据结构
文章平均质量分 95
筱姌
不被定义,庆幸自己,我可以是任何样子。我野蛮生长,自己便是月亮。
展开
-
数据结构之栈和队列——LeetCode:150. 逆波兰表达式求值,224. 基本计算器,232. 用栈实现队列
逆波兰表达式的求值原理是:从左到右遍历表达式,如果遇到数字就将其推入栈中;如果遇到运算符,就从栈中弹出两个操作数,进行相应的运算,并将结果推入栈中。最后,栈中剩下的唯一元素就是表达式的结果。在这个代码中,使用栈来实现这个求值过程。当遇到数字时,将其转换为整数并推入栈中。当遇到运算符时,从栈中弹出两个操作数,进行相应的运算,并将结果推入栈中。:构造函数,用于初始化队列对象,不执行任何操作。,请你实现一个基本计算器来计算并返回它的值。的顺序就与队列的顺序一致了,然后从栈。的顺序与队列的顺序一致。原创 2024-09-26 19:30:00 · 633 阅读 · 0 评论 -
数据结构之栈和队列——LeetCode:155. 最小栈,20. 有效的括号,1249. 移除无效的括号
(可以删除任意位置的括号),使得剩下的「括号字符串」有效。操作,并能在常数时间内检索到最小元素的栈。你需要从字符串中删除最少数目的。有效「括号字符串」应当符合以下。和小写字母组成的字符串。请返回任意一个合法字符串。,判断字符串是否有效。原创 2024-09-26 15:03:15 · 597 阅读 · 0 评论 -
数据结构习题
有一个有序单链表(从小到大排序),表头指针为head,编写一个函数向该单链表中插入一个元素为x的结点,使插入后该链表仍然有序。已知两个顺序表A和B分别表示两个集合,其元素递增排列,编写一个函数求出A和B的交集C,要求C同样以元素递增的顺序表形式存储。,使得A链表中含有原链表A中序号为奇数的元素,而B链表中含有原链表A中序号为偶数的元素,且保持原来的相对顺序。有一个单链表(不同结点的数据域值可能相同),其头指针为head,编写一个函数计算数据域为x的结点个数。:用于释放链表的内存,避免内存泄漏。原创 2024-09-25 15:45:00 · 658 阅读 · 0 评论 -
数据结构之线性表——LeetCode:82. 删除排序链表中的重复元素 II,21. 合并两个有序链表,23. 合并 K 个升序链表
这段代码的目的是合并两个升序链表为一个新的升序链表。它通过比较两个链表当前节点的值,将较小值的节点依次连接到新链表中,直到其中一个链表遍历完,然后将剩余的链表连接到新链表的末尾。原创 2024-09-22 16:30:00 · 983 阅读 · 0 评论 -
数据结构之线性表——LeetCode:234. 回文链表,143. 重排链表,25. K 个一组翻转链表
这段代码的目的是对给定的单链表进行重排,使其满足特定的顺序要求。主要通过找到链表的中间节点,将后半部分链表反转,然后交替合并前半部分和反转后的后半部分来实现重排。原创 2024-09-22 09:30:00 · 708 阅读 · 0 评论 -
数据结构之线性表——LeetCode:328. 奇偶链表,86. 分隔链表,24. 两两交换链表中的节点
它通过遍历链表,将奇数索引的节点组成一个链表,偶数索引的节点组成另一个链表,最后将偶数链表连接到奇数链表的末尾。它采用递归的方式,从链表的头部开始,每次交换两个相邻节点,并继续递归处理剩余的链表部分。给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。,将所有索引为奇数的节点和索引为偶数的节点分别组合在一起,然后返回重新排序的列表。的节点之前,同时保持两个分区中每个节点的初始相对位置。给你一个链表的头节点。原创 2024-09-21 17:00:00 · 954 阅读 · 0 评论 -
数据结构之线性表——LeetCode:707. 设计链表,206. 反转链表,92. 反转链表 II
模拟了一个链表数据结构,提供了初始化链表、获取特定位置节点值、在头部插入节点、在尾部插入节点、在特定位置插入节点以及删除特定位置节点等功能。设置为 0,表示链表中没有实际节点,同时创建一个虚拟头节点。次(因为虚拟头节点不算实际节点),找到目标节点并返回其值。以指示链表中的上一个节点。,即反转当前节点的指针方向,使其指向前一个节点。,即将当前节点变为反转后的链表中的新的末尾节点。的下一个节点,保存链表的后续部分。,实现在链表尾部插入节点的功能,因为当在长度为。的位置插入节点时,相当于在链表末尾追加节点。原创 2024-09-21 08:30:00 · 739 阅读 · 0 评论 -
数据结构之线性表——LeetCode:80. 删除有序数组中的重复项 II,88. 合并两个有序数组,4. 寻找两个正序数组的中位数
该算法的目的是找到两个正序数组的中位数。整体采用了二分查找的思想,通过不断调整两个数组的划分位置,使得划分后的左右两部分满足特定条件,从而确定中位数的位置。方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。删除重复出现的元素,使得出现次数超过两次的元素。// 根据你的函数返回的长度, 它会打印出数组中。最终,合并后数组不应由函数返回,而是存储在数组。// 在函数里修改输入数组对于调用者是可见的。为什么返回数值是整数,但输出的答案是数组呢?,返回删除后数组的新长度。中,使合并后的数组同样按。原创 2024-09-20 15:30:00 · 967 阅读 · 0 评论 -
数据结构之线性表——LeetCode:67. 二进制求和,27. 移除元素,26. 删除有序数组中的重复项
/ 它以不等于 val 的值排序。// 长度正确的预期答案。如果是,则直接返回 0,表示没有任何元素,也没有不重复的元素。// 长度正确的期望答案。// 排序 nums 的前 k 个元素。,分别用于快速遍历整个数组和标记不重复元素的位置。作为结果,它代表了删除重复元素后数组的新长度。的大小,即经过删除操作后剩余元素的数量。原创 2024-09-20 09:30:00 · 1035 阅读 · 0 评论 -
数据结构——LeetCode刷题:7. 整数反转,66. 加一,1. 两数之和
你可以假设每种输入只会对应一个答案,并且你不能使用两次相同的元素。你可以假设除了整数 0 之外,这个整数不会以零开头。最高位数字存放在数组的首位, 数组中每个元素只存储。如果反转后整数超过 32 位的有符号整数的范围。数组所表示的非负整数,在该数的基础上加一。给你一个 32 位的有符号整数。整数,并返回它们的数组下标。中的数字部分反转后的结果。你可以按任意顺序返回答案。,请你在该数组中找出。原创 2024-09-19 14:20:37 · 1036 阅读 · 0 评论