乱码的数组示例应返回1:
a = {10,15,20}, b = {10,15,20}
a = {99}, b = {99}
a = {1,2,3,4,5}, b = {5,3,4,2,1}
a = {}, b = {} (i.e. len = 0)
a = {2,1,3,4,5}, b = {1,2,4,3,5}
Run Code Online (Sandbox Code Playgroud)
乱码的数组示例应返回0:
a = {1,1}, b = {1,2}
a = {10,15,20}, b = {10,15,21}
a = {1,2,3,4,5}, b = {5,3,4,2,2}
Run Code Online (Sandbox Code Playgroud)
我在C中的代码是这样的,但它是一个O(N ^ 2)效率不高.
int scrambled( unsigned int a[], unsigned int b[], unsigned int len )
{
int count1 = 0;
int count2 = 0;
for (int i=0; i< len; i++)
{
for (int j=0;j<len; j++)
{
if (a[i]==b[j])
{
count1++;
break;
}
}
for (int j=0; j<len; j++)
{
if (b[i]==a[j])
{
count2++;
break;
}
}
}
return (count1 == len && count2 == len );
}
Run Code Online (Sandbox Code Playgroud)
以上代码存在缺陷.这有线性解决方案吗?
这是一个可以用O(n)复杂度实现的解决方案:
| 归档时间: |
|
| 查看次数: |
243 次 |
| 最近记录: |