好难的一题 传送门 :
前言对于差分操作,如果一个区间加上一个常数c: 如下 d [ l ] + = c , d [ r ] − = c ( d 为 差 分 数 组 ) d[l]+=c\ \ \ , \ \ \ d[r]-=c \ \ \ (d为差分数组) d[l]+=c , d[r]−=c (d为差分数组)
如果一个数组所有数都一样也就是说明差分数组为0
又因为 : b [ 1 ] = a [ 1 ] , b [ 2 ] = a [ 2 ] − a [ 1 ] , b [ 3 ] = a [ 3 ] − a [ 2 ] . . . . . b[1] = a[1],b[2]=a[2]-a[1],b[3]=a[3]-a[2]..... b[1]=a[1],b[2]=a[2]−a[1],b[3]=a[3]−a[2].....
因此这个题目可以转换为, 从 [ 2 − n ] [2-n] [2−n]选出两个数,一个 + 1 +1 +1,一个 − 1 -1 −1,使得 b [ 2.. n ] = 0 b[2..n] = 0 b[2..n]=0
这样子数组就变为了 n n n个 a [ 1 ] a[1] a[1] , 这样子显然的我们尽可能需选出 b [ l ] ∗ b [ r ] < 0 b[l]*b[r]
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?