我必须交错给定的表单数组
{a1,a2,....,an,b1,b2,...,bn}
Run Code Online (Sandbox Code Playgroud)
作为
{a1,b1,a2,b2,a3,b3}
Run Code Online (Sandbox Code Playgroud)
在 O(n) 时间和 O(1) 空间中。
例子:
Input - {1,2,3,4,5,6}
Output- {1,4,2,5,3,6}
Run Code Online (Sandbox Code Playgroud)
这是按索引排列的元素:
Initial Index Final Index
0 0
1 2
2 4
3 1
4 3
5 5
Run Code Online (Sandbox Code Playgroud)
通过一些例子的观察,我发现ai (i<n/2) goes from index (i) to index (2i)& bi (i>=n/2) goes from index (i) to index (((i-n/2)*2)+1). 您可以自行验证。如果我错了,请纠正我。
但是,我无法在代码中正确应用此逻辑。
我的伪代码:
for (i = 0 ; i < n ; i++)
if(i < n/2)
swap(arr[i],arr[2*i]);
else
swap(arr[i],arr[((i-n/2)*2)+1]);
Run Code Online (Sandbox Code Playgroud)
它不起作用。
如何编写算法来解决这个问题?
interface Main
{
public static void main(String[] args)
{
System.out.println("Inside main");
int a = 4 , b = 6 ;
System.out.println(a+b);
}
}
Run Code Online (Sandbox Code Playgroud)
在上面的代码中,没有定义类,但程序仍在执行.但据我所知,接口内部不能有任何静态方法.并且,每个程序应至少包含一个主要功能.