几个子数组问题的相互转换

1 一般问题:求一个数组A中和为target的子数组个数。元素可正可负,元素无序

两个条件:

1)元素是任意数还是都是正数

2)数组A是否有序


求前缀和数组B,问题转化为,数组B求差等于target的两个数的方案个数,即2Minus问题。

2Minus问题可以排序后直接同向移动双指针法求解,也可以进一步转换求差分数组C,因为是排好序求的差分数组,C数组的元素都是正数,但是相邻元素的差不同,C不是有序的。B中两个元素的差,相当于是累加两个元素之间所有元素的增量,即C数组对应子数组的和,这样,问题转化为一个正数数组的子数组和问题。



一般数组子数组和问题,求前缀数组+排序, 转化为 排序数组两元素差问题,正数数组子数组和问题。中间差个排序的nlgn复杂度

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值