ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Command Sequence-题解

2021-09-05 19:02:42  阅读:203  来源: 互联网

标签:Sequence 题解 个数 看成 Command 1e4 1e6 区间 抵消


  这个题有很多做法,我只解释我的做法,首先我们知道U-D,L-R是相互抵消的,然后找这一个序列里面多少个区间是抵消回到原点的

那我们这么想,把U-D看成(1,-1),L-R看成(1e6,-1e6),这样就可以转换成一个一维数组区间和为0的个数,为什么是看成(1e6,-1e6)

是因为题数据n的范围最大是1e5,假如把L-R看成(1e4,-1e4),那么1e4个U会和R抵消那么就出问题了。

然后找区间和为0的个数我们会想到有前缀和优化,但是这个题数据量是1e5很大,你用前缀和优化写两重循环或者优化成n根号n都是不行的,

我的思路是当一个数出现时记录他出现的次数,如果为0就记为1,否则ans(区间和为0的个数)就+1,原因很简单,比如(1,3)的区间和

为2的时候,然后(1,5)的区间和也为2,那么说明(4,5)区间和为0,所以可以实现O(n)复杂度。

标签:Sequence,题解,个数,看成,Command,1e4,1e6,区间,抵消
来源: https://www.cnblogs.com/mibbp/p/15230373.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有