选择
a
[
i
]
a[i]
a[i] 的话,
a
[
i
−
1
]
+
b
[
i
]
,
a
[
i
+
1
]
+
b
[
i
]
a[i-1]+b[i],a[i+1]+b[i]
a[i−1]+b[i],a[i+1]+b[i] ,这是对于一次操作带来的后果,如果是首位的话,只有一个相邻的会增加数值。
所以我们有一种想法是,将
s
o
r
t
(
b
.
b
e
g
i
n
(
)
,
b
.
e
n
d
(
)
)
sort(b.begin(),b.end())
sort(b.begin(),b.end()) 显然这样想法是错误的。例如当
a
[
]
=
[
2
,
6
,
7
,
3
]
,
b
[
]
=
[
3
,
6
,
2
,
5
]
a[]=[2,6,7,3],b[]=[3,6,2,5]
a[]=[2,6,7,3],b[]=[3,6,2,5] 。我的正确选法应该是
1
,
4
,
3
,
2
1,4,3,2
1,4,3,2。
由此可以看出我们只需要比较首尾
b
[
i
]
b[i]
b[i] 的大小即可,这样看来每个数值最多被增加一次,而且最大的
b
[
i
]
b[i]
b[i] 不会被使用,所以代码就非常简单。