leetcode面试经典150题】64. 删除排序链表中的重复元素 II(C++)

【题目描述】 给定一个已排序的链表的头 head , 删除原始链表中所有重复数字的节点,只留下不同的数字 。返回 已排序的链表 。 【示例一】 输入:head = [1,2,3,3,4,4,5]输出:[1,2,5] 【示例二】 输入:head = [1,1,1,2,3]输出:[2,3] 【提示及数据范围】 链表中节点数目在范围 [0, 300] 内-100 <= Node.val <= 100题目数据保证链表已经按升序 排...

leetcode面试经典150题】73. 从中序与后序遍历序列构造二叉树(C++)

【题目描述】 给定两个整数数组 inorder 和 postorder ,其中 inorder 是二叉树的中序遍历, postorder 是同一棵树的后序遍历,请你构造并返回这颗 二叉树 。 【示例一】 输入:inorder = [9,3,15,20,7], postorder = [9,15,7,20,3]输出:[3,9,20,null,null,15,7] 【示例二】 输入:inorder = [-1], postord...

leetcode面试经典150题】61. 反转链表 II(C++)

【题目描述】 给你单链表的头指针 head 和两个整数 left 和 right ,其中 left <= right 。请你反转从位置 left 到位置 right 的链表节点,返回 反转后的链表 。 【示例一】 输入:head = [1,2,3,4,5], left = 2, right = 4输出:[1,4,3,2,5] 【示例二】 输入:head = [5], left = 1, right = 1输出:[5] 【提...

leetcode面试经典150题】54. 最小栈(C++)

【题目描述】 设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。 实现 MinStack 类: MinStack() 初始化堆栈对象。void push(int val) 将元素val推入堆栈。void pop() 删除堆栈顶部的元素。int top() 获取堆栈顶部的元素。int getMin() 获取堆栈中的最小元素。 【示例一】 输入:["MinStack","push","push...

leetcode面试经典150题】74. 填充每个节点的下一个右侧节点指针 II(C++)

【题目描述】 给定一个二叉树: struct Node { int val; Node *left; Node *right; Node *next;} 填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next 指针设置为 NULL 。 初始状态下,所有 next 指针都被设置为 NULL 。 【示例一】 输入:root = [1,2,3,4,5,null,7]输出:[1,#,...

leetcode面试经典150题】62. K 个一组翻转链表(C++)

【题目描述】 给你链表的头节点 head ,每 k 个节点一组进行翻转,请你返回修改后的链表。 k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。 你不能只是单纯的改变节点内部的值,而是需要实际进行节点交换。 【示例一】 输入:head = [1,2,3,4,5], k = 2输出:[2,1,4,3,5] 【示例二】 输入:head = [1,2,3,4,5],...

leetcode面试经典150题】47. 最长连续序列(C++)

【题目描述】 给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。 请你设计并实现时间复杂度为 O(n) 的算法解决此问题。 【示例一】 输入:nums = [100,4,200,1,3,2]输出:4解释:最长数字连续序列是 [1, 2, 3, 4]。它的长度为 4。 【示例二】 输入:nums = [0,3,7,2,5,8,4,6,0,1]输出:9 【提示及数据范围】 0...

leetcode面试经典150题】50. 插入区间(C++)

【题目描述】 给你一个 无重叠的 ,按照区间起始端点排序的区间列表 intervals,其中 intervals[i] = [starti, endi] 表示第 i 个区间的开始和结束,并且 intervals 按照 starti 升序排列。同样给定一个区间 newInterval = [start, end] 表示另一个区间的开始和结束。 在 intervals 中插入区间 newInterval,使得 intervals ...

leetcode面试经典150题】55. 逆波兰表达式求值(C++)

【题目描述】 给你一个字符串数组 tokens ,表示一个根据 逆波兰表示法 表示的算术表达式。 请你计算该表达式。返回一个表示表达式值的整数。 注意: 有效的算符为 '+'、'-'、'*' 和 '/' 。每个操作数(运算对象)都可以是一个整数或者另一个表达式。两个整数之间的除法总是 向零截断 。表达式中不含除零运算。输入是一个根据逆波兰表示法表示的算术表达式。答案及所有中间计算结果可以用 32 位 整数表示。 【示例一】 输...

leetcode面试经典150题】24.文本左右对齐(C++)

【题目描述】 给定一个单词数组 words 和一个长度 maxWidth ,重新排版单词,使其成为每行恰好有 maxWidth 个字符,且左右两端对齐的文本。 你应该使用 “贪心算法” 来放置给定的单词;也就是说,尽可能多地往每行中放置单词。必要时可用空格 ' ' 填充,使得每行恰好有 maxWidth 个字符。 要求尽可能均匀分配单词间的空格数量。如果某一行单词间的空格不能均匀分配,则左侧放置的空格数要多于右侧的空格数。 文...
© 2024 LMLPHP 关于我们 联系我们 友情链接 耗时0.003261(s)
2024-05-05 21:00:37 1714914037