有空再把这几道题给搞一下吧
第一题:
给出一个数值在1-n间的排列,每次可以对排练的两个数进行加一和减一操作,每次操作完必须保证数组中没有重复值。问最少几步可以保证得到非递减排列?
3 2 1 => 3 1 2 => 2 1 3 => 1 2 3
经过三次操作,可以把数组 3 2 1
转换成 1 2 3
。
第二题
给出一个字符串s,只包含r,e,d
三种字符,问该字符串包含的子串中,有哪些子串中r,e,d
三种字符的数目是相同的。
示例:
redrde
这个字符串包含的情况是
[red]rde
r[edr]de
red[rde]
[redrde]
所以有4中分割情况。
第三题
给出n个数,让从中选k个数,使得k个数按位与的结果最大。
示例:
5 2
1 2 3 4 5 6
将4与5 或者 4与6 或者5与6 按位与操作,得到的值最大是4。
第四题:
一个序列满足如下条件:
f
[
i
]
=
(
f
[
i
−
1
]
∗
f
[
i
−
2
]
)
2
f[i] = (f[i-1] * f[i-2])^2
f[i]=(f[i−1]∗f[i−2])2,求第n项的值。因为值较大,需要对1e9+7取模。
示例:
2 3 4
11664