【Leetcode刷题Python】234.回文链表
1 题目 请判断一个链表是否为回文链表。 比如【1】【1,2,2,1】【1,2,1】,【1,2,3,3,2,1】 2 解析 (1)方法一:使用栈 将前一半入栈,然后出栈,对比后一半的元素,注意如果链表长度是奇数,就需要跳过中间元素。 (2)方法二:拆分为两个链表,反转后半段链表,再依次对比 注意:找到中间元素,可以用计数法或者快慢指针法,以...
【Leetcode刷题Python】25.K 个一组翻转链表
1 题目 给你链表的头节点 head ,每 k 个节点一组进行翻转,请你返回修改后的链表。 k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。 你不能只是单纯的改变节点内部的值,而是需要实际进行节点交换。 ...
【Leetcode刷题Python】203.移除链表元素
1 题目 给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val val 的节点,并返回 新的头节点 。 2 解析 (1)方法一迭代法,依次直接对head链表的每个元素进行判断。遇到待删除元素直接删除。注意,需要考虑一种情况,如果链表是[7,7,7,7],删除的元素是7,是不能直接用head.next = head.next.next的,因为head...
【Leetcode刷题Python】641.循环双端队列
1 题目 设计实现双端队列。你的实现需要支持以下操作: MyCircularDeque(k):构造函数,双端队列的大小为k。insertFront():将一个元素添加到双端队列头部。 如果操作成功返回 true。insertLast():将一个元素添加到双端队列尾部。如果操作成功返回 true。deleteFront():从...
【Leetcode刷题Python】239. 滑动窗口最大值
1 题目 给定一个数组 nums 和滑动窗口的大小 k,请找出所有滑动窗口里的最大值。 示例: 输入: nums = [1,3,-1,-3,5,3,6,7], 和 k = 3 输出: [3,3,5,5,6,7] 2 解析 (1)方法一:大堆树 对于本题而言,初始时,我们将数组 nums 的前 k个元素放入优先队列中。每当我们向右移动窗口时,...
【Leetcode刷题Python】232. 用栈实现队列
1 题目 请你仅使用两个栈实现先入先出队列。 队列应当支持一般队列支持的所有操作(push、pop、peek、empty): 实现 MyQueue 类: void push(int x)将元素 x 推到队列的末尾int pop() 从队列的开头移除并返回元素int peek() 返回队列开头的元素boolean empty()如果队列为空&...
【Leetcode刷题Python】42. 接雨水
1 题目 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。 2 解析 (1)方法一:栈 将墙的高度入栈,当新元素小于栈顶元素,就入栈,反之就出栈,并计...
【Leetcode刷题Python】739. 每日温度
1 题目 根据每日 气温 列表,请重新生成一个列表,对应位置的输入是你需要再等待多久温度才会升高超过该日的天数。如果之后都不会升高,请在该位置用 0 来代替。 例如,给定一个列表 temperatures = [73, 74, 75, 71, 69, 72, 76, 73],你的输出应该是 [1, 1, 4, 2, 1, 1, 0, 0]。 提示:气温 列表长度的范围是 ...
【Leetcode刷题Python】946. 验证栈序列
1 题目 给定 pushed 和 popped 两个序列,每个序列中的 值都不重复,只有当它们可能是在最初空栈上进行的推入 push 和弹出 pop 操作序列的结果时,返回 true;否则,返回false 。 例子 输入:pushed = [1,2,3,4,5], popped = [4,5,3,2,1] 输出:true 解释:我们可以按以...
【Leetcode刷题Python】155. 最小栈
1 题目 设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。 实现 MinStack 类: MinStack() 初始化堆栈对象。void push(int val) 将元素val推入堆栈。void pop() 删除堆栈顶部的元素。int top() 获取堆栈顶部的元素。int getMin() 获取堆栈中的最小元素。...
本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。