我正在设计一个程序,它将一个给定数量的字符串并排存储在一个部分填充的数组中。 我在创建执行以下操作的算法时遇到了困难:
int
值,表示数组中需要有多少空相邻点。int
这是一个如何工作的例子。
给定String []arr = {"greg", null, null, "adam", null, "phil",null, null };
如果我打算找到两个空座位的块:
public static int getIndex(arr, 2) {...}
应该返回arr[1]
或arr[6]
请问我该如何解决这个问题?
答案 0 :(得分:3)
这可以很简单地解决:
List<Integer> pos = new ArrayList<>();
int len = 0;
for(int i = 0 ; i < arr.length ; i++)
if(s == null)
len++;
else
len = 0;
if(len >= min_len)
pos.add(i - min_len + 1);
return pos.get(new Random().nextInt(pos.size()));