小编Fra*_*Fra的帖子

距离可被整数整除的一对点

我遇到了一个面试问题,尽管我一直在尝试自己解决它,但我认为我需要一些帮助。

我有一个整数数组(正数和负数)表示空间中的点,两点之间的距离定义为abs(A[i]-A[j]),我需要检查该距离是否可以整除给定整数M。

所以情况是这样的:

数组:[-3 -2 1 0 8 7 1]

中号=3

abs(A[1]-A[2]) = 3 (例如,它可以被整数整除)

复杂度应为 O(N+M),空间为 O(M)

现在这些是问题

1)我知道有一种方法可以考虑所有夫妇,而不使用带有两个“for循环”的明显解决方案,因为复杂性将是N^2,这是不可取的,但我不知道如何做到这一点

2)复杂度 O(N+M) 意味着我需要使用两个 for 循环,但不是一个在另一个循环内?(我的意思是两个单独的 for 循环),我在这里试图理解的是,给定的复杂度是否可以引导我走向我应该使用的最佳算法。

3)当规范中说整数名称为M,复杂度为O(N+M)时,这是否意味着整数M和复杂度存在关系,还是只是名称相同的情况?

4)怎么做?

我希望我已经说得足够清楚了,如果还不够清楚,请告诉我,我会尽力更好地解释自己。

好吧,让我们看看我是否理解正确,这就是我到目前为止正在尝试的:

int testCollection[7];

testCollection[0] = -3;
testCollection[1] = -2;
testCollection[2] = 1;
testCollection[3] = 0;
testCollection[4] = 8;
testCollection[5] = 7;
testCollection[6] = 1;

int arrayCollection[7];

for (unsigned int i = 0; i < 7; i++)
{
    arrayCollection[i] = 1000;
}

for (unsigned int i = 0; i < 7; …
Run Code Online (Sandbox Code Playgroud)

arrays algorithm dynamic-programming integer-division

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

C++继承:缺少虚拟析构函数会导致内存泄漏吗?

我对自己经常问自己的一个问题表示怀疑,这就是情况:

两个类,没有虚拟析构函数

class Base
{
    int myInt;
};

class Derived : public Base
{
    int myIntDerived;
};

int main()
{
    Base    *base    = new Derived;
    Derived *derived = new Derived;

    delete base;
    delete derived;
}
Run Code Online (Sandbox Code Playgroud)

说第一次删除会导致内存泄漏而第二次删除会不会是正确的?

c++ memory virtual destructor

3
推荐指数
2
解决办法
942
查看次数

任务调度程序应用程序和焦点

我需要使用调度程序运行任务,问题是,如果我双击可执行文件,程序获得焦点并全屏运行,如果我使用任务调度程序运行相同的可执行文件,命令窗口仍然在顶部并且应用程序在后台运行,请有人帮帮我吗?

干杯

windows-7

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