CF 127个测试点,好评
简要题意:
多组数据,问数组中是否有长度 ≥ 3 \geq 3 ≥3 的回文子序列。
我们需要找到本质。
题目不让我们求这个长度,只让我们判断,这是为什么呢?
如果答案是 YES
,那么必然存在一个长度为 3 3 3 的回文子序列。否则为 NO
.
你想,如果原数组的最长回文序列是奇数的话,只要每次在两边同时删去一个,就可以得到长度为 3 3 3 的回文子序列。
如果是偶数,只要每次在两边同时删去一个,再在最中间两个任意删去一个,也可以得到长度为 3 3 3 的回文子序列。
反之如果没有,则就没有了。
比方说:
10
1 2 3 4 2 1 4 2 4 3
你发现这个数组的最长回文子序列为:
3 4 2 2 4 3
是偶数,那么其中必然存在一个长度为 3 3 3 的是:
4 2 4
(当然不止一种)
所以,题意改为:
判断一个数组中是否有长度为 3