当前位置: 首页 > news >正文

网站建设质量体系审核指导自己编写代码建设微网站

网站建设质量体系审核指导,自己编写代码建设微网站,专业网页制作软件能帮助用户组织和管理,个人网页设计作品赏析LeetCode-2487. 从链表中移除节点【栈 递归 链表 单调栈】 题目描述#xff1a;解题思路一#xff1a;可以将链表转为数组#xff0c;然后从后往前遍历#xff0c;遇到大于等于当前元素的就入栈#xff0c;最终栈里面的元素即是最终的答案。解题思路二#xff1a;递归解题思路一可以将链表转为数组然后从后往前遍历遇到大于等于当前元素的就入栈最终栈里面的元素即是最终的答案。解题思路二递归思路是递归到最后head后面是node如果node的值大于head的值那么删除head。否则不删除。解题思路三迭代两次反转链表解题思路四单调栈不解释 题目描述 给你一个链表的头节点 head 。 移除每个右侧有一个更大数值的节点。 返回修改后链表的头节点 head 。 示例 1 输入head [5,2,13,3,8] 输出[13,8] 解释需要移除的节点是 5 2 和 3 。 节点 13 在节点 5 右侧。节点 13 在节点 2 右侧。节点 8 在节点 3 右侧。 示例 2 输入head [1,1,1,1] 输出[1,1,1,1] 解释每个节点的值都是 1 所以没有需要移除的节点。 提示 给定列表中的节点数目在范围 [1, 105] 内 1 Node.val 105 解题思路一可以将链表转为数组然后从后往前遍历遇到大于等于当前元素的就入栈最终栈里面的元素即是最终的答案。 不过这种思路也许有些投机取巧没有用到纯粹的链表。 # Definition for singly-linked list. # class ListNode: # def __init__(self, val0, nextNone): # self.val val # self.next next class Solution:def removeNodes(self, head: Optional[ListNode]) - Optional[ListNode]:nums []while head:nums.append(head.val)head head.nextn len(nums)stack []for i in range(n-1, -1, -1):if not stack: stack.append(nums[i])continueif nums[i] stack[-1]: stack.append(nums[i])for i, num in enumerate(reversed(stack)):if i 0:head ListNode(num)p headelse:q ListNode(num)p.next qp qreturn head 时间复杂度O(n) 只是遍历了两遍链表 空间复杂度O(n) 存储的数组 解题思路二递归思路是递归到最后head后面是node如果node的值大于head的值那么删除head。否则不删除。 # Definition for singly-linked list. # class ListNode: # def __init__(self, val0, nextNone): # self.val val # self.next next class Solution:def removeNodes(self, head: Optional[ListNode]) - Optional[ListNode]:if head.next is None: return head # 输入保证链表不为空node self.removeNodes(head.next) # 返回的链表头一定是最大的if node.val head.val: return node # 删除 headhead.next node # 不删除 headreturn head简单的写法 class Solution:def removeNodes(self, head: Optional[ListNode]) - Optional[ListNode]:if not head: return headhead.next self.removeNodes(head.next)return head.next if head.next and head.val head.next.val else head 时间复杂度O(n)其中 n 为链表的长度。 空间复杂度O(n) 栈空间 解题思路三迭代两次反转链表 翻转链表看LeetCode-206. 反转链表【双指针递归】这里用的是简单的双指针来翻转链表然后遇到比当前元素小的就可以直接删除然后再次翻转链表。 # Definition for singly-linked list. # class ListNode: # def __init__(self, val0, nextNone): # self.val val # self.next next class Solution:def reverseList(self, head: Optional[ListNode]) - Optional[ListNode]:pre, cur None, headwhile cur:nxt cur.nextcur.next prepre curcur nxtreturn predef removeNodes(self, head: Optional[ListNode]) - Optional[ListNode]:cur head self.reverseList(head)while cur.next:if cur.val cur.next.val: cur.next cur.next.nextelse: cur cur.nextreturn self.reverseList(head)时间复杂度O(n) 只是遍历了两遍链表 空间复杂度O(1) 原地翻转 解题思路四单调栈不解释 # Definition for singly-linked list. # class ListNode: # def __init__(self, val0, nextNone): # self.val val # self.next next class Solution:def removeNodes(self, head: Optional[ListNode]) - Optional[ListNode]:A []while head:while A and A[-1].val head.val: A.pop()if A: A[-1].next headA.append(head)head head.nextreturn A[0]时间复杂度O(n) 空间复杂度O(1)
http://www.dnsts.com.cn/news/69336.html

相关文章:

  • 建设银行网站色调wordpress商城购物表单
  • 苏州营销型网站制作多少钱那家公司网站做的好
  • 合肥网站建设套餐顺德大良哪家做网站好
  • 网站建设好的乡镇做网站的北京
  • 设计兼职网站推荐免备案网站建设
  • 网站建设要什么软件网站建设企业网站制作平台
  • 外贸手机网站建设秦皇岛北京网站建设
  • 佛山建站 网站 商城企业建设网站个人总结报告
  • 南浦电商网站建设公司网站建设劳伦
  • asp网站建设公司网站如何做301跳转
  • 免费的行情网站推荐下载安装旅游时政热点新闻
  • 南京 网站开发合肥商城网站建设地址
  • 网站建设流程六个步骤企业管理咨询公司宗旨
  • 宁波网站推广软件哪家强网络推广营销方案100例
  • 网站内链有什么用wordpress 已安装主题
  • 网站收录和反链都正常关键词却没有排名的原因巴里坤网站建设
  • 大连网站设计案例100个最好的微信小程序
  • 做电商网站搭建晋升微信平台服务电话
  • 专业网站网站设计有什么软件可以找客户
  • 湖南网站建设 莫道婚纱摄影介绍
  • 上海专业做网站公司有哪些哪里有做网站的教程
  • 做相册哪个网站好网贷代理推广
  • 做盗版电影网站犯法不长沙市停课最新消息
  • 上海建设银行网站莘庄网站的pv统计功能怎样做
  • logo网站有哪些网站建设业务活动
  • 建设信用卡中心网站怎么搭建网站
  • 福州网站怎么做seo衡阳市建设学校官方网站
  • 网站信息登记表扫描件德勤管理咨询
  • 连衣裙一起做网站wordpress的数据库配置文件
  • 网站建设前台与后台最新技术网站建设流程行情