小编aki*_*oru的帖子

在 O(n) 时间和 O(1) 空间中交错数组 {a1,a2,....,an,b1,b2,...,bn} 到 {a1,b1,a2,b2,a3,b3}

我必须交错给定的表单数组

{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)

它不起作用。

如何编写算法来解决这个问题?

arrays algorithm

7
推荐指数
1
解决办法
355
查看次数

为什么以下代码使用接口但没有定义任何类?

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)

在上面的代码中,没有定义类,但程序仍在执行.但据我所知,接口内部不能有任何静态方法.并且,每个程序应至少包含一个主要功能.

java program-entry-point interface class

5
推荐指数
1
解决办法
49
查看次数

标签 统计

algorithm ×1

arrays ×1

class ×1

interface ×1

java ×1

program-entry-point ×1