示例一:输入0 0 0 0, 返回128
示例二:输入129 130 129 130, 返回-2, k = -1 时平均值为128.5, k = -2 时平均值为127.5, 都符合条件,取较小值-2
一开始我是直接遍历img,得出数组和与中位数128的总差值sum,得出avg,这样做在avg<0的时候是正确的,此时avg+k≈128,那么k一定是正数,如果存在多个结果,此时的k也是最小值,但是反过来avg>0的时候,存在多个结果的k不是最小值,在上述例子2中会返回-1而不是-2,我感觉单纯的-1不太对,不知道怎么判断了。这样没做出来,最后是使用了暴力枚举,从-128到127枚举k,太不美丽了。
用例1: 输入 5 1 0 2 1 3 2 4 6 5 8
red red blue blue blue, 第一个5表示有5组输入
用例2: 输入 1 64 73....(具体哪个数忘了)
数据范围: 1<=n<=64
先暴力再说,直接算出第n个字符串是什么,再遍历到第k个字符...恭喜你,打败了2.13%的测试用例。
我的想法是比较k和2^n/2的大小关系
如果k大,则说明k在dp[n]的右边,变成了k和2^(n-1)/2的子问题
如果k小,则说明k在dp[n]的左边,变成了k和reverse(2^(n-1)/2)的子问题
然后是边界条件,n==1的时候返回'R',这样定义是对的吗?
输入positions=[[1,2],[3,4],[10,20]]
8, location = 3, 区域1距离为1, 区域2距离为0, 区域3距离为7
个人感觉是双指针问题,求大佬们指教orz