牛客网-数据结构笔试题目(五)-动态规划问题求解

题意

给定n个整数,对于这n个整数我们可以采取两种操作。第一种操作是在数组左侧选择连续的k个整数减1,第二种操作是选择右侧的连续k个整数减1。

比如假设数组是[3, 2, 2, 1, 4],比如我们选择k=2,取最左侧进行操作,那么我们会得到[2, 1, 2, 1, 4]。如果我们选择k=3,再取右侧进行操作,可以得到[2, 1, 1, 0, 3]。

现在我们想要知道,给定这样的数组,我们能否通过这两个操作将数组清空。如果可以输出YES,否则的话输出NO。

样例

首先输入一个整数t(),表示测试数据组数。

对于每组测试数据,首先输入一个整数n(),表示数组当中元素的个数。之后输入一行整数()。可以保证,每一组测试数据的n之和不会超过30000.

图片

题解

由于我们对于k没有限制,最多我们可以一次对数组内的n个元素全部减一。所以k不是限制我们的因素,最大的限制其实是在元素本身。

我们分析一下会发现,由于数组当中的元素大小不一,这其实是隐形的限制。举个例子,比如[2, 8, 3]。由于我们只能从两侧开始选择元素进行操作&

猜你喜欢

转载自blog.csdn.net/m0_50230964/article/details/114664634