小编sri*_*eak的帖子

使用电话键盘生成10位数字

给出如下所示的电话键盘:

1 2 3
4 5 6
7 8 9
  0
Run Code Online (Sandbox Code Playgroud)

从1开始可以形成多少个不同的10位数字?约束是从1位数到下一位数的运动类似于国际象棋游戏中骑士的运动.

例如.如果我们在1那么下一个数字可以是6或8如果我们在6那么下一个数字可以是1,7或0.

允许重复数字 - 1616161616是有效数字.

有多项式时间算法可以解决这个问题吗?问题要求我们只计算10位数字,而不一定列出数字.

编辑:我尝试将其建模为图形,每个数字都有2或3位数作为其邻居.然后我使用DFS导航到10个节点的深度,然后在每次达到10的深度时增加数字的数量.这显然不是多项式时间.假设每个数字只有2个邻居,则需要至少2 ^ 10次迭代.

这里的变量是位数.我采取了例如.10位数字.它也可以是n位数.

algorithm dynamic-programming keypad

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

Perl中的垃圾收集

与Java不同,Perl使用引用计数进行垃圾收集.我曾尝试搜索一些以前的问题,这些问题涉及C++ RAII和智能指针以及Java GC,但还没有理解Perl如何处理循环引用问题.

任何人都可以解释Perl的垃圾收集器如何处理循环引用?有没有办法回收程序不再使用的循环引用内存,或者Perl是否完全忽略了这个问题?

perl garbage-collection circular-reference

14
推荐指数
2
解决办法
9548
查看次数

什么是用于类成员的指针?

我已经阅读了关于类成员的指针,但我从未见过它们被用于任何实际应用程序.有人可以解释一下这些指针的用例吗?是否真的有必要有这样的指针?

例如.

class abc
{
public:
    int a;
    abc(int val) { a = val; }
};

 int main()
{
   int abc::*data;
   abc obj(5);

   data = &abc::a;

   cout << "Value of a is " << obj.*data << endl;

   return 0;
}
Run Code Online (Sandbox Code Playgroud)

在上面例如.为什么以这种方式访问​​"a"的值?使用指向类成员的指针有什么好处?

c++ oop pointers

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

Oracle时间戳差异大于X小时/天/月

我正在尝试编写一个在Oracle数据库上运行的查询.表ActionTable包含actionStartTime和actionEndTime列.我需要找出完成时间超过1小时的行动.

actionStartTime和actionEndTime是时间戳类型

我有一个查询,它给了我每个动作所花费的时间:

select (actionEndTime - actionStartTime) actionDuration from ActionTable
Run Code Online (Sandbox Code Playgroud)

我的where条款将只返回花费超过1小时的行动才能完成?

sql oracle timestamp

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

C++标准线程类?

我在C++中遇到过许多线程类的临时实现,但为什么没有像Java那样的标准库线程类呢?我通常在C++中使用的那个是http://www.linuxdocs.org/HOWTOs/C++Programming-HOWTO-24.html

c++ multithreading

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

如何使用mmap指向STL类型?

我有一个char指针的mmap类型转换

char*ptr;

ptr =(char*)mmap(0,FILESIZE,PROT_READ | PROT_WRITE,MAP_SHARED,fd,0);

这是我早期的代码.但是现在我想在需求发生变化时使用地图而不是char*.

现在,我的地图被声明为map <int,string> i_s_map;

如何更改我的mmap调用以指向地图?

c++ stl mmap

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