(这是一个概括:在O(n)时间和O(1)空间中查找重复项)
问题:分别编写具有O(n)和O(1)的时间和空间复杂度的C++或C函数,它们在给定数组中找到重复整数而不改变它.
示例:给定{1,0,-2,4,4,1,3,1,-2}函数必须打印1,-2和4一次(按任意顺序).
(INT_MAX – INT_MIN)/4 + 1.
#include <stdio.h>
void set_min_max(int a[], long long unsigned size,\
int* min_addr, int* max_addr)
{
long long unsigned i;
if(!size) return;
*min_addr = *max_addr = a[0];
for(i = 1; i < size; ++i)
{
if(a[i] < *min_addr) *min_addr = a[i];
if(a[i] > *max_addr) *max_addr = a[i];
}
}
void print_repeats(int a[], long long unsigned size)
{
long long unsigned i;
int min, max = min;
long long diff, q, …Run Code Online (Sandbox Code Playgroud) 我保存了
my $thread = Thread.start({ for 1 .. 10 -> $v { say $v }});
Run Code Online (Sandbox Code Playgroud)
从https://docs.perl6.org/language/concurrency#Threads到一个文件并运行perl6 file.pl但得到错误
Undeclared name: Thread used ...
Run Code Online (Sandbox Code Playgroud)
任何想法如何解决问题?(该文档未提及使用任何包.)
[编辑:即使今天(2016年5月4日)"apt-get install rakudo"制作:
阅读包列表...完成
构建依赖关系树
读取状态信息...完成
rakudo已经是最新版本.
所以也许apt-get不是获取Perl最新版本的方法(至少在Mint上).最全面的答案是raiph的评论.]