首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

从链表中删去总和值为零的连续节点(哈希表)

题目 给你一个链表的头节点 head,请你编写代码,反复删去链表中由 总和 值为 0 的连续节点组成的序列,直到不存在这样的序列为止。 删除完毕后,请你返回最终结果链表的头节点。...你可以返回任何满足题目要求的答案。 (注意,下面示例中的所有序列,都是对 ListNode 对象序列化的表示。)...示例 2: 输入:head = [1,2,3,-3,4] 输出:[1,2,4] 示例 3: 输入:head = [1,2,3,-3,-2] 输出:[1] 提示: 给你的链表中可能有 1 到 1000...对于链表中的每个节点,节点的值:-1000 表 建立包含当前节点的前缀和sum为Key,当前节点指针为Value的哈希表 当sum在哈希表中存在时,两个sum之间的链表可以删除 先将中间的要删除段的哈希表清除,再断开链表 循环执行以上步骤 ?

2.4K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问第n个月的兔子对数为多少?

    需求 古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子假如兔子都不死,问第n个月的兔子对数为多少?...输入1月份时,输出1对 请输入需要查询的月份:1 第1个月的兔子对数为:1对 输入2月份时,输出1对 请输入需要查询的月份:2 第2个月的兔子对数为:1对 输入10月份时,输出55对 请输入需要查询的月份...static void main(String[] args) { /*古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子...假如兔子都不死,问第n个月的兔子对数为多少?...; } else { //使用for循环 i是月份 从三月开始累加 循环到最后i等于输入的月份 月份++ 3 4 5 6...

    3.1K20

    【DB笔试面试440】下列哪种完整性中,将每一条记录定义为表中的惟一实体,即不能重复()

    题目 下列哪种完整性中,将每一条记录定义为表中的惟一实体,即不能重复() A、域完整性 B、引用完整性 C、实体完整性 D、其他 答案 答案:C。...实体完整性:关系模型对应的是现实世界的数据实体,而关键字是实体惟一性的表现,没有关键字就没有实体,所有关键字不能是空值。这是实体存在的最基本的前提,所以,称之为实体完整性。...这条规则是对关系外部关键字的规定,要求外部关键字的取值必须是客观存在的,即不允许在一个关系中引用另一个关系中不存在的元组。...用户定义完整性:由用户根据实际情况,对数据库中数据的内容所作的规定称为用户定义的完整性规则。...通过这些限制数据库中接受符合完整性约束条件的数据值,不接受违反约束条件的数据,从而保证数据库的数据合理可靠。 所以,本题的答案为C。

    91510

    抖音面试题:遇到连续问题怎么办?

    【面试题】 有一张“用户登陆记录表”,包含两个字段:用户id、日期。 【问题】查询2021年每个月,连续2天都有登陆的用户名单。 【解题步骤】 1....窗口函数lead可以获取每个字段的后面的第n个值,并生成新的一列。 而这道题描述的“用户连续登陆”中的“连续”可以理解为用户当前的登陆日期与本月下一次登陆日期相差一天。...') over(partition by month(日期), 用户id order by 日期) as 用户当月下一个登陆日期 from 用户登陆记录表; 当“日期”是该用户在当月最后一天登陆时,记录为...从结果看,我们可以获得以下信息: 1)当“日期”与“用户当月下一个登陆日期”只相差一天,即用户本次登陆为连续登陆; 2)当“日期”与“用户当月下一个登陆日期”相差大于一天,即用户本次登陆为连续登陆的最后一天...(也有可能仅登陆一天); 3)当“用户当月下一个登陆日期”等于“当月最后登陆日期”,即用户本次登陆为本月最后一天登陆。

    1K20

    数据库数据挖掘知识点总结(Microsoft 时序算法)

    我们给解决方案取了个名字,然后从数据源中找到了我们需要挖掘的表,将我们需要的表创建好,取了个名字为:SalesByArea,可以看到这张表就是记录往年各个月份的销售记录和销售业绩,下面我们对这个表里面的数据进行粗略分析...从报告日期来看基本上是每个月的25号形成报告,然后每个月生成一份,在利用Microsoft时序算法中对数据是有要求的: 1、要求分析数据序列必须含有时间序列,并且序列值为连续...这个可以理解...如果没有连续值就谈不上推测...我们来详细分析上面的时间看看能不能满足第一个条件,我们选择透视表,这个和Excel里面的透视表是一样的,用起来基本没啥问题,我们将明细数据拖入到区域中间,将列选择报告日期、行选择自行车品牌区域(ModelRegion...我们可以看到,这张往年销售记录表中包含了从2005年到2008年的销售记录,其中06年和07年都是全年每一个月份都会含有一个记录,而2005年、08年只有半年的数据,其实这里08年只有半年数据是正常的,...看来这些数据开始日期真是从05年7月份开始,然后到08年6月结束,而且这之间每个月份的数据都是连续的,也就是说从开始到结束连续的每个月都有值,我们向下面拖。 ?

    1.6K100

    教育行业案例:学员续费如何分析?

    1)所有续费学员在续费前3个月内的总课量 购买表中“订单类型”=2的为续费学员,上课信息在学员上课表中。要用到2个表,所以需要多表联结。 学员上课表和购买表,通过学生id作为联结条件。...这涉及到计算两个日期之间的差值,《猴子 从零学会sql》里讲到对应的函数是timestampdiff。下图是这个函数的用法。...image.png 用case语句来判断,新增一列为“续费前3个月数”。如果(上课时间-续费时间)3,那么“续费前3个月数”列中对应的值标记为1。否则标记为null。...1)跟前面题目一样,找出购买表中“订单类型”=2的为续费学员。两表联结获得续费学员的上课信息。...筛选早于续费日期的学习记录 1 select * 2 from 学员上课表 as a 3 inner join 购买表 as b 4 on a.学员id=b.学员id 5 where b.订单类型=

    1.8K00

    图解面试题:如何分析红包领取情况?

    【题目】 “用户活跃表”记录了用户的登录信息,包括用户标识、用户登录日期,以及是否是新用户(如果是新注册的用户值为1;如果是老用户,值为0)。...3.分析每个月按领红包取天数为1、2、3……30、31天区分,计算取每个月领取红包的用户数,人均领取金额,人均领取次数。...下图是两表联结的条件(通过用户ID和日期联结)。 (3)使用哪种联结呢? 因为要查询的是领取红包的用户,所以要保留“领取红包”表(上图右表)中的全部数据,因此使用右联结。...从a表中,用分组汇总,求出每类用户的个数,人均领取金额,人均领取次数。...ID = b.用户ID; 如果“领取红包”表中的用户为非空,那么该用户是“领过红包用户”(也就是在“领取红包”表中匹配到了数据);如果“领取红包”表中的用户为空的,那么该用户是“未领取红包用户”(也就是在

    1.4K20

    第四届魔镜杯大赛数据应用大赛方案分享(亚军)

    3. 借款用户基础信息表(user_info.csv) 借款用户基础信息表包含了本赛题涉及的所有用户,用户信息可能发生变更,表中同一用户可能存在多条数据。 4....核心问题 预测一个用户未来一个月内的还款时间及还款金额,那该如何构建合适的label? 2. 训练集的时间区间如何选取? 3. Repay_logs有大量的还款记录,如何更好的利用这些记录? 4....历史滑窗特征 近3/6/9月订单数、订单金额、提前还款日期统计 近3/6/9月首逾记录、截止日还款记录统计 用户近3/6/9/12个月标的期数统计值 用户近3/6/9/12个月标的费率统计值 用户近3/...用户未来一个月需还的标的数、金额(由历史记录推测) 用户未来一个月其他标的还款截止日距当前标的截止日的日期差(先借先还原则) 借款日到最近农历春节的日期差 其它部分 还款截止日到历史最近的1/5/6/10...达到最优模型效果 思考与总结 从历史记录表提取出了270万优质数据生成新的训练集,训练集的扩充提升了模型效果。

    81810

    互联网金融领域 数据挖掘赛事 Top2 方案分享

    3. 借款用户基础信息表(user_info.csv) 借款用户基础信息表包含了本赛题涉及的所有用户,用户信息可能发生变更,表中同一用户可能存在多条数据。 4....核心问题 预测一个用户未来一个月内的还款时间及还款金额,那该如何构建合适的label? 2. 训练集的时间区间如何选取? 3. Repay_logs有大量的还款记录,如何更好的利用这些记录? 4....每个月还款情况统计,这里我们选取了最后六个月的数据,可以看出大部分人都是最后一天还款。不过,2019年二月份和三月份的数据分布存在明显异常,为了保证最后结果的稳定性,我们选择将其去除。 业务分析 ?...历史滑窗特征 近3/6/9月订单数、订单金额、提前还款日期统计 近3/6/9月首逾记录、截止日还款记录统计 用户近3/6/9/12个月标的期数统计值 用户近3/6/9/12个月标的费率统计值 用户近3/...用户未来一个月需还的标的数、金额(由历史记录推测) 用户未来一个月其他标的还款截止日距当前标的截止日的日期差(先借先还原则) 借款日到最近农历春节的日期差 其它部分 还款截止日到历史最近的1/5/6/10

    94220

    抖音面试题:遇到连续问题怎么办?

    image.png 【抖音面试题】 有一张“用户登陆记录表”,包含两个字段:用户id、日期。 image.png 【问题】查询2021年每个月,连续2天都有登陆的用户名单。...子查询 1)获取登陆日期的天,需要用到day()函数; 2)获取登录日期的月,需要用到month()函数; 3)获取每个月登陆顺序,这类问题属于“每个+排序”,要想到用《猴子 从零学会SQL》里讲过的知识... over (partition by month(日期), 用户id 5          order by 日期) as 每个月登陆顺序 6 from 用户登陆记录表...order by 日期) as 每个月登陆顺序 14 from 用户登陆记录表 15 where 日期 between '2021-01-01' and '2021-12-31' 16 ) as t1...order by 日期) as 每个月登陆顺序 15 from 用户登陆记录表 16 where 日期 between '2021-01-01' and '2021-12-31' 17 ) as t1

    1.2K00

    Kettle构建Hadoop ETL实践(九):事实表技术

    前面曾经提到过,周期快照表的外键密度是均匀的,因此这里使用外连接关联订单日期维度和事务事实表。即使上个月没有任何销售记录,周期快照中仍然会有一行记录。...第一个数据集合是销售订单事实表中的增量数据,通过“读取时间窗口”、“查询事实表增量数据”、“字段选择”、“排序记录”、“行转列”五个步骤获得。...“分组”步骤中的分组字段为前8个字段,聚合字段为后10个字段,聚合类型选择“最大”。聚合字段的值只有NULL和整数两种可能,按照比较规则整数大,因此选最大值。...内容标签页中,分隔符为逗号,格式选择LF terminated (Unix),编码选择UTF-8,其它属性为空。...为了更新周期快照表数据,需要创建一个临时表。子查询用于从销售订单事实表中获取所有上个月录入的,并且是迟到的数据行的汇总。用b.dt c.dt作为判断迟到的条件。

    6K12

    最强最全面的数仓建设规范指南(纯干货建议收藏)

    冗余字段和已有字段的重复率不应过大,原则上不应超过60%,如需要可以选择join或原表拓展。 4. NULL字段处理规范 对于维度字段,需设置为-1 对于指标字段,需设置为 0 5....2) 全量表 每天的所有的最新状态的数据。 全量表,有无变化,都要报; 每次上报的数据都是所有的数据(变化的 + 没有变化的); 只有一个分区。 3) 快照表 按日分区,记录截止数据日期的全量数据。...记录一个事物从开始,一直到当前状态的所有变化的信息; 拉链表每次上报的都是历史记录的最终状态,是记录在当前时刻的历史总 量; 当前记录存的是当前时间之前的所有历史记录的最后变化量(总量); 只有一个分区...3个月内最大访问跨度<=4天时,建议保留最近7天分区; 3个月内最大访问跨度<=12天时,建议保留最近15天分区; 3个月内最大访问跨度<=30天时,建议保留最近33天分区; 3个月内最大访问跨度表 中间表一般出现在 Job 中,是 Job 中临时存储的中间数据的表,中间表的作 用域只限于当前 Job 执行过程中,Job 一旦执行完成,该中间表的使命就完 成了,是可以删除的(按照自己公司的场景自由选择

    4.8K36

    吴恩达团队最新成果:用深度学习来改善临终关怀服务

    预测日期必须至少比病人死亡日期早 3 个月(否则死亡日期会太靠近预测日期)。 预测日期最多只能比病人死亡日期早 12 个月(否则死亡日期会离预测日期太远)。...negative 案例:对于negative案例(未记录死亡日期的病人),必须确保案例中的病人在自预测日期起的 12 个月内没有死亡。...我们选择的预测日期必须满足以下所有条件: 预测日期必须为记录在案的问诊日期。 预测日期必须至少比最后一次接触病人的日期早 12 个月(以避免发生拍摄 EHR 快照后死亡日期不明确的情况)。...结论 在本节中,我们将根据在验证集上获得最好AP分数选择的模型,来给出在测试集上获得的技术评估结果。我们观察到模型根据0.042的Brier score进行了合理的校正(如图3所示)。...在达到精度为0.9的患者中,姑息治疗小组对其中50个随机选择的患者进行进行了图表检查,发现所有这些人在其预测日期内都适合转诊,即使他们存活了一年多。

    1K70

    MySQL员工打卡日志表——数据库练习

    为了简单明了,我们将使用一个包含以下字段的表: 列名 数据类型 描述 id INT 记录的唯一标识符 name VARCHAR(50) 员工姓名 department VARCHAR(50) 员工所在的部门...题目2:如何查询在 ‘技术部’ 的员工的出勤日志中未填写离开时间的记录?...'技术部' AND time_out IS NULL; 解析:根据查询条件,需要同时满足部门字段为 ‘技术部’ 和离开时间字段为 NULL,即可查询到在 ‘技术部’ 的员工的出勤日志中未填写离开时间的记录...题目3:如何统计每个月份内各部门的员工出勤总次数?...FROM Employee_Attendance_Log GROUP BY department, Month; 解析:首先根据表名和字段名选择出需要统计的字段,然后使用 GROUP BY 子句按照部门和月份进行分组

    21310

    教育行业案例:如何分析​复购用户?

    【面试题】 "课程订单表”里记录了某在线教育App的用户购买课程的信息(部分数据截图)。 请使用sql将购买记录表中的信息,提取为下表(复购分析表)的格式。并用一条sql语句写出。...该业务分析要求查询结果中包括:日期(说明是按购买日期来汇总数据)、当日首次购买用户数、此月复购用户数,第N月复购用户数。 1.当日首次购买用户数 先来看当日首次购买用户数这一列如何分析出?...每日首次购买用户数,表示每一行记录的是当天的购买用户数。 当有“每个”出现的时候,要想到《猴子从零学会SQL》中讲过的用“分组汇总来”来实现。....* from 课程订单表 as a left join 课程订单表 as b on a.用户id = b.用户id; 把上面的联结结果记为临时表c,如何从临时表c中查找出时间间隔(用户第二次购买时间-...(1)这涉及到计算两个日期之间的差值,《猴子从零学会sql》里讲到对应单函数是timestampdiff。下图是这个函数的用法。 select a.

    1.1K10

    Power Query 真经 - 第 8 章 - 纵向追加数据

    在 Excel 中完成这项工作的一个方法是,右击【查询 & 连接】窗格中的任意一个查询,并选择【追加】。此时将弹出如图 8-3 所示的对话框。...图 8-6 【查询 & 连接】窗格显示,“Transaction” 查询有 3,887 行记录 【注意】 要在 Power BI 中查看数据量,进入【数据】视图(在左侧),在【字段】列表中选择要查看的表...每个月,记账员都会勤奋地创建和命名一个新的工作表,并设置和命名该表作为他们月末工作的一部分。他们似乎忽略了一件事,就是把礼品券的发放日期或到期日期放在表中,如图 8-14 所示。...图 8-23 从 3 个合并的表中加载 62 行数据 这个解决方案现在应该工作得很好,因为它加入了表名遵循 “月_年” 格式的任何新表,但筛选掉了任何其他表。唯一的挑战是什么?...用户已经通过加载 “CSV” 文件构建了解决方案,这些文件包含了相关的数据,并针对它们建立了商业智能报告。然后,下个月来了,IT 部门给分析师发送了替换文件,为每个产品提供新的交易数据。

    6.8K30

    抖音面试题:送你一个万能模板,要吗?

    image.png 【面试题】 有一张“用户登陆记录表”,包含两个字段:用户id、日期。 image.png 【问题】查询2021年每个月,每个用户连续登陆的最多天数。 【解题步骤】 1....窗口函数lead可以获取每个字段的后面的第n个值,并生成新的一列。 而这道题描述的“用户连续登陆”中的“连续”可以理解为用户当前的登陆日期与本月下一次登陆日期相差一天。...从结果看,我们可以获得以下信息: 1)当“日期”与“用户当月下一个登陆日期”只相差一天,即用户本次登陆为连续登陆; 2)当“日期”与“用户当月下一个登陆日期”相差大于一天,即用户本次登陆为连续登陆的最后一天...(也有可能仅登陆一天); 3)当“用户当月下一个登陆日期”等于“当月最后登陆日期”,即用户本次登陆为本月最后一天登陆。...image.png image.png 【本题考点】 1.考查对窗口函数的了解,要把《猴子 从零学会SQL》里讲过的窗口函数能解决的4类面试题要记住; 2.考查对子查询的了解; 3.考查对连续问题的了解

    1K00

    《Learning ELK Stack》2 构建第一条ELK数据管道

    构建折线图 首先构建一个折线图,用来显示六个月来GOOG每周收盘价的指数趋势 从上图可视化菜单中选择折线图,然后选择Y轴(Y-Axis)的聚合函数为Max,字段为close。...构建柱状图 构建一个垂直柱状图呈现六个月内的成交量变化趋势 在可视化菜单中选择垂直柱状图,选择Y轴的聚合函数为Sum,字段为volume。...在桶的区域,选择X轴的聚合函数为基于@timestamp字段的日期直方图,间隔选择每周 ?...构建度量 用度量显示过去六个月每天的单日最高交易量 点击可视化菜单中的度量,选择度量的聚合函数为Max,字段为volume,然后点击应用 ?...构建数据表 数据表以表格的形式显示某些组合聚合结果的详细数据 创建一个六个月内的月度平均成交量的数据表 在可视化菜单中的数据表,点击拆分行(split rows),选择度量值 的聚合函数为求平均值 (Average

    2K20

    SAP最佳业务实践:FI–应收帐款(157)-7 F110自动付款

    ,当天日期 公司代码 1000 付款方式 I 下一记帐日期 指定下次付款运行执行日期 下次付款运行的日期例如,当天日期 + 1 个月 客户 指定客户(自) 将通过付款运行管理该客户的未清项目。...在 计划表收付 对话框中,输入以下数据: 字段名称 用户操作和值 注释 开始日期 指定开始日期 例如当天日期 立即开始 X ? 12. 选择 安排 (回车)。 ? 13....例如,100000 过账日期 有相关交易的日期 截止凭证输入日期 例如:当天日期 下一记账日期 指定下次付款运行执行日期 下次付款运行的日期例如,当天日期 + 1 个月 付款方式 I ?...在屏幕 电子付款中心(中国),选择按钮 刷新选择, 可以看到新增的项目,状态为准备中 如果项目状态时“例外”,你可以检查消息文本 如果你获得消息文本是“此次执行中的收付方式没有在主记录或项目中指定”,你可以使用事务代码...在窗口明细,从 收付凭证号 可以看到收款凭证的凭证编号,若有多个项目要显示,选择按钮下一个条目(Shift + F5)或上一个条目(Shift+F6)。

    3.3K60
    领券