
高级语言设计
Slueia
这个作者很懒,什么都没留下…
展开
-
leetcode 71 简化路径
以 Unix 风格给出一个文件的绝对路径,你需要简化它。或者换句话说,将其转换为规范路径。在 Unix 风格的文件系统中,一个点(.)表示当前目录本身;此外,两个点 (…) 表示将目录切换到上一级(指向父目录);两者都可以是复杂相对路径的组成部分。更多信息请参阅:Linux / Unix中的绝对路径 vs 相对路径请注意,返回的规范路径必须始终以斜杠 / 开头,并且两个目录名之间必须只有一个斜杠 /。最后一个目录名(如果存在)不能以 / 结尾。此外,规范路径必须是表示绝对路径的最短字符串。示例 1:原创 2020-07-12 23:59:45 · 94 阅读 · 0 评论 -
leetcode 1019 链表中的下一个更大节点
链表中的下一个更大节点给出一个以头节点 head 作为第一个节点的链表。链表中的节点分别编号为:node_1, node_2, node_3, … 。每个节点都可能有下一个更大值(next larger value):对于 node_i,如果其 next_larger(node_i) 是 node_j.val,那么就有 j > i 且 node_j.val > node_i.val,而 j 是可能的选项中最小的那个。如果不存在这样的 j,那么下一个更大值为 0 。返回整数答案数组 ans原创 2020-07-07 23:00:04 · 204 阅读 · 0 评论 -
leetcode 725 分割链表
给定一个头结点为 root 的链表, 编写一个函数以将链表分隔为 k 个连续的部分。每部分的长度应该尽可能的相等: 任意两部分的长度差距不能超过 1,也就是说可能有些部分为 null。这k个部分应该按照在链表中出现的顺序进行输出,并且排在前面的部分的长度应该大于或等于后面的长度。返回一个符合上述规则的链表的列表。举例: 1->2->3->4, k = 5 // 5 结果 [ [1], [2], [3], [4], null ]示例 1:输入:root = [1, 2, 3],原创 2020-07-05 23:55:04 · 157 阅读 · 0 评论 -
leetcode 817 链表组件
链表组件示例 1:输入:head: 0->1->2->3G = [0, 1, 3]输出: 2解释:链表中,0 和 1 是相连接的,且 G 中不包含 2,所以 [0, 1] 是 G 的一个组件,同理 [3] 也是一个组件,故返回 2。示例 2:输入:head: 0->1->2->3->4G = [0, 3, 1, 4]输出: 2解释:链表中,0 和 1 是相连接的,3 和 4 是相连接的,所以 [0, 1] 和 [3, 4] 是两个组件,故原创 2020-07-05 22:26:24 · 192 阅读 · 0 评论 -
leetcode 148 排序链表
排序链表在 O(n log n) 时间复杂度和常数级空间复杂度下,对链表进行排序。示例 1:输入: 4->2->1->3输出: 1->2->3->4示例 2:输入: -1->5->3->4->0输出: -1->0->3->4->5没有常数级空间复杂度,归并的想法。class Solution {public:ListNode* mergesort(ListNode* head1 , ListNode*原创 2020-07-05 22:00:05 · 113 阅读 · 0 评论 -
leetcode 61
旋转链表给定一个链表,旋转链表,将链表每个节点向右移动 k 个位置,其中 k 是非负数。示例 1:输入: 1->2->3->4->5->NULL, k = 2输出: 4->5->1->2->3->NULL解释:向右旋转 1 步: 5->1->2->3->4->NULL向右旋转 2 步: 4->5->1->2->3->NULL示例 2:输入: 0->1->2-&原创 2020-07-05 18:37:40 · 254 阅读 · 0 评论 -
leetcode 143
143. 重排链表给定一个单链表 L:L0→L1→…→Ln-1→Ln ,将其重新排列后变为: L0→Ln→L1→Ln-1→L2→Ln-2→…你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。示例 1:给定链表 1->2->3->4, 重新排列为 1->4->2->3.示例 2:给定链表 1->2->3->4->5, 重新排列为 1->5->2->4->3.做法是单双指针,来找到中间位置,值得注意原创 2020-07-04 15:00:17 · 108 阅读 · 0 评论 -
DHU-链表-一元多项式的加/减法运算
一元多项式的加/减法运算问题描述 :假设2个稀疏一元多项式分别由带头结点的有序单链表A和B存储(指数项递增有序)。现要求设计一个算法,实现稀疏一元多项式的加减法计算。要求使用A和B的原存储空间(运算后B不再存在,A链表中保存结果多项式)。输入中的单链表的长度不得在计算算法中利用,仅作为建表使用。注意:加/减法计算后,如某一项的结果系数为0,则该项要从多项式链表中删除。输入说明 :第一行:加/减法选择(0:加法 1:减法)第二行:一元多项式A的项数第三行:一元多项式A的各项的系数(系数之间以空原创 2020-07-02 20:23:43 · 405 阅读 · 0 评论 -
DHU-链表-长整数加法运算
9 长整数加法运算问题描述 :假设2个任意长度的整数x、y分别由双向链表A和B存储,现要求设计一个算法,实现x+y。计算结果存储在链表C中。说明:由于A和B输出时需要从头至尾遍历,而做加法时需要从尾至头遍历,因此使用双向链表存储。可以从长整数的低位开始拆分(4位为一组,即不超过9999的非负整数),依次存放在链表的每个结点的数据域中;头结点的数据域存放正负数标志(正数或0:1,负数:-1)。输入说明 :第一行:长整数x第二行:长整数y输出说明 :第一行:格式化后的长整数x(从低位到高位每原创 2020-07-02 13:29:19 · 728 阅读 · 0 评论 -
DHU-链表-圆桌问题
8 圆桌问题问题描述:圆桌上围坐着2n个人。其中n个人是好人,另外n个人是坏人。如果从第一个人开始数数,数到第m个人,则立即处死该人;然后从被处死的人之后开始数数,再将数到的第m个人处死……依此方法不断处死围坐在圆桌上的人。试问预先应如何安排这些好人与坏人的座位,能使得在处死n个人之后,圆桌上围坐的剩余的n个人全是好人。输入范例 :52 6输出范例 :BGGBGBGGBBBBGGGGBBBGBGGBGBBGGBBGBGBBGGGBBBGBGGBBGGBBGBBGGGGBBBBGGBGGBBGB原创 2020-06-30 21:33:42 · 383 阅读 · 0 评论