c++如何删除和为0的元素
发表于:2025-02-02 作者:千家信息网编辑
千家信息网最后更新 2025年02月02日,这篇"c++如何删除和为0的元素"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇"c++
千家信息网最后更新 2025年02月02日c++如何删除和为0的元素
这篇"c++如何删除和为0的元素"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇"c++如何删除和为0的元素"文章吧。
算法简介:
利用前缀和的方法,例如前缀和[3,5,6,3,7],那么第一个3和最后一个3之间的节点之和就是0,不然的这两个数字不可能相等
// 1.基于上面的原理,我们采用 两次hash的办法,第一次hash找到相同前缀和的最后一个位置的节点// 2. 第二次hash找到第一次出现和相同的节点位置,那么将这两个节点之间的所有检点都删除,即可
题目: 链表中删除综合值为0的连续节点
代码实现:
/** * Definition for singly-linked list. * type ListNode struct { * Val int * Next *ListNode * } */func removeZeroSumSublists(head *ListNode) *ListNode { m1 := make(map[int]*ListNode) pre := new(ListNode) pre.Next = head sum := 0 for n:=pre; n!=nil; n=n.Next { sum += n.Val m1[sum] = n // 保存最后一个位置的相同节点的内容 } s := 0 for m:=pre; m != nil; m=m.Next { s += m.Val m.Next = m1[s].Next // 删除相同sum第一次出现和最后一次出现之间的节点内容 } return pre.Next}
以上就是关于"c++如何删除和为0的元素"这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注行业资讯频道。
内容
节点
相同
元素
c++
之间
位置
前缀
第一次
两个
就是
文章
知识
篇文章
之和
代码
价值
办法
原理
大部分
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络安全辩论正方
直播 网络安全
redis从服务器
学位论文会上传数据库
衡水网络安全专业
邢台市软件开发公司有哪些
医院网络安全宣传周活动方案
决斗之城ol服务器
网络安全 高中英语作文
大学哪个软件开发最好
怎样实施工程化软件开发
数据库和地理信息系统
网络安全毕业生薪资
银行开展网络安全宣传周总结
如皋网络安全
网络安全的大学班会
张店oa软件开发公司
广州市软件开发就业
新大陆采集器不能打开数据库
国际域名服务器
nas服务器联想
长宁区常规网络技术服务哪家好
抚顺游戏软件开发
网络安全会议 腾讯 国内
传奇世界经典区互通服务器
ncre 数据库技术
服务器管理为什么要云帮手
微言科技世界互联网
外网如何连接数据库
小程序如何读取数据库的数据