小编Ksh*_*jee的帖子

从给定数字中查找下一个最高的唯一编号

给定一组n个符号,大小为k以及来自符号集的非重复字符长度k的组合,仅写入ITERATIVE算法以打印可以进行的下一个最高唯一编号.

例如:

Symbols =[1,2,3,4,5]
size = 3;
given combination = 123, result = 124
given combination = 254, result = 312
Run Code Online (Sandbox Code Playgroud)

c++ java algorithm

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

从两个非常大的数组中查找公共元素

有两个整数数组,每个都在非常大的文件中(每个文件的大小都大于RAM).如何在线性时间内找到数组中的公共元素.

我找不到解决这个问题的合适方案.有任何想法吗?

c++ algorithm

9
推荐指数
2
解决办法
2697
查看次数

N个重叠会议日程表的最佳房间数和大小

我碰到了这个问题,我不确定我的解决方案是否是最佳的.

问题

给定N加权(Wi)和可能重叠的间隔(表示会议时间表),找到进行所有会议所需的会议室的最小数量"&".

|---10------|. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .|---------8---------|

        |------8-----|          |----------10-----------|

                  |--------6-------|
Run Code Online (Sandbox Code Playgroud)

对于上述时间表,我们需要两个10和10个容量的会议室.( 我对么 ? )

我的解决方案

如果我们有一个容量大于需要的会议室使用它,如果没有符合标准的会议室,建立新房间或增加现有房间,请从一个房间,并从左侧穿过间隔.新的能力.

例:

10点开始 - {10}

8点开始 - {10,8}

10月底结束 - {10-free,8}

6点开始 - {10,8}

结束8 - {10,8-free}

10的开头= {10,8 + = 2}或{10,10}

等等.....

这基本上是贪心的..

  • 有人可以证明这不是最优的吗?
  • 如果这是非最佳的解决方案是什么?DP?

algorithm scheduling dynamic-programming greedy intervals

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

检查是否可以链接字符串列表

实现一个函数bool chainable(vector<string> v),它接受一组字符串作为参数,并返回true它们是否可以链接.如果第一个字符串以第二个字符串开头的相同字符结尾,则可以链接两个字符串,例如:

ship->petal->lion->nick  = true;
ship->petal   axe->elf   = false;
Run Code Online (Sandbox Code Playgroud)

我的解决方案

我的逻辑是,如果它的可链接只有一个不匹配的开始和结束.所以我创建了一个开始列表和一个结束列表.像这样.

starts:s,p,l,n
ends:  p,l,n,k
Run Code Online (Sandbox Code Playgroud)

如果删除公共元素,列表最多应包含一个项目.即s和k.如果是这样,列表是可链接的.如果列表是循环的,则最终列表为空.

但我想我在这里遗漏了一些案例,

编辑: 好的,我的解决方案有问题.我们能否为此得出最佳算法?

c++ string algorithm list

7
推荐指数
2
解决办法
1490
查看次数

uintptr_t和size_t是否相同?

可能重复:
size_t与intptr_t

我的一些代码处理指针并uintptr_t作为输入,因为它必须使用指针.

我现在必须用整数做同样的事情,所以我想重用那些代码.

size_t一样的uintptr_t吗?我可以更改实现并使用相同的代码指针和整数只需替换uintptr_tsize_t

c++ types casting std

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

删除句子中的碎片[拼图]

题:

编写程序以删除在"所有"字符串中出现的片段,其中片段是3个或更多个连续字.

例:

输入::

s1 ="正在下雨,我想开车回家.";

s2 ="下雨了,我想去滑雪.";

s3 ="天气炎热,我想去游泳.";

输出::

s1 ="正在下雨开车回家.";

s2 ="正在下雨去滑雪.";

s3 ="游泳很热.";

删除片段 ="我想要"

该程序将再次测试大文件.效率将被考虑在内.

假设:忽略大写,标点符号.但保留在输出中.

注意:照顾像这样的情况

aaaaabcbcbccc删除会产生更多碎片.

我的解决方案:( 我认为不是最有效的)

  1. 将三个单词短语散列成一个int并将它们存储在一个数组中,用于所有字符串.减少到像数组一样

    1 2 3 4 5
    3 5 7 9 8
    9 3 1 7 9

问题减少到数组的交集.

排序数组.(k*nlogn)

保持k指针.如果发现所有相等的匹配.否则将指针指向最小值.解决上面的注意事项.我正在考虑做一个懒惰的删除,即在最后标记删除和删除短语.

是否存在我的解决方案可能不起作用的情况?我们能否优化我的解决方案/找到最佳解决方案?

string algorithm hash

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

在字符串集上找到输入的字谜..?

给定一组字符串(大集合)和输入字符串,您需要有效地找到输入字符串的所有字符.您将使用什么数据结构.使用它,你会如何找到字谜?

我想到的是这些:

  1. 使用地图

    a)消除所有字母多于/少于输入的字母.

    b)将输入字符放在地图中

    c)遍历每个字符串的地图,看看是否所有字母都带有计数.

  2. 使用尝试

    a)将所有具有正确字符数的字符串放入trie中.

    b)遍历每个分支,如果输入中包含字母,则更深入.

    c)如果叶子到达这个词是一个字谜

有人能找到更好的解决方案吗?

您在上述方法中发现了哪些问题?

algorithm map trie

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

为什么使用this指针作为默认参数不允许使用?

我只是在我的Binary树上写了一个inorder函数,我遇到了这个难题.

class BinaryTree
{
private:
     struct Node* o_root;
public:
BinaryTree()
    {
              o_root = new Node();    
        o_root->data = 0;
        o_root->left = NULL;
        o_root->right = NULL;

    }
    void inorder(Node*root = o_root);//Invalid

};


void BinaryTree::inorder(Node* root = o_root)//Invalid
    {
         if(root==NULL)
         {
             return;
         }
         inorder(root->left);

         cout<< root -> data;

         inorder(root->right);

    }
Run Code Online (Sandbox Code Playgroud)

我收到一个错误:非静态成员引用必须与特定对象相关

如果我将根节点静态这是有效的.

为什么会这样?如果我有两个二叉树,我会想要对象的特定根,而不是静态成员.我尝试使用这个运算符,但这给了我另一个错误,基本上说在默认参数中不允许使用此运算符.

任何人都可以解释为什么这不起作用以及为什么C++拒绝使用此运算符作为默认参数?

c++ default-value

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

查找具有相同ID的行并具有一组特定名称

编辑:

我有一个3行的表.

ID    NAME REV
1     A    0
1     B    0
1     C    0
2     A    1
2     B    0
2     C    0
3     A    1
3     B    1
Run Code Online (Sandbox Code Playgroud)

我想找到具有特定名称集的ID,REV是相同的示例:Edit2:GBN的解决方案可以完美地工作,但由于我没有创建新表的权限.添加的约束是不能创建新表.

if input = A,B then output is 3
if input = A ,B,C then output is 1 and not 1,2 since the rev level differs in 2.
Run Code Online (Sandbox Code Playgroud)

sql database group-by

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

找到没有循环的32位数字的最高位集的索引

这是一个艰难的(至少我很难:P):

在不使用任何循环的情况下查找32位数的最高位集的索引.

algorithm bit-manipulation

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

包含Dictionary Containing List的列表

我在C#中需要一个像上面这样的数据结构但是我在访问内容时遇到了问题,我看到我可以用C++做到这一点在c#中是如何完成的?

List<Dictionary<string, List<int>>> data = 
new List<Dictionary<string, List<int>>>(5);
Run Code Online (Sandbox Code Playgroud)

当我做数据[0]我得到一个错误说明索引越界..

任何人都可以指出我如何做到这一点.或者我做错了什么?

附录:

- > 我想做什么

我基本上创建了一个数据结构,保留了一个月的计划.因此,每个5周的列表包含 - >活动词典,其中每个活动的值是 - > 7个整数的列表,表示每周每天花在该活动上的小时数.

我有我需要添加空白条目.附加问题是这样的.

- > 查询

现在我将不得不在列表中添加5个空白词典.以及表示每天消耗时间的字典的每个键中的7个整数(初始化为零)的列表.

有没有办法初始化列表中的5个空白词典,并且内部相同,而无需手动创建新词典并添加它们.使用c ++我相信你可以做到这一点甚至输入你想要初始化每个条目的值,所以..

像这样的陈述

Vector<int> *vec = new Vector<int>(5,0);
Run Code Online (Sandbox Code Playgroud)

初始化vec有5个条目,每个条目为0.我可以在c#中执行相同的操作吗?

谢谢您的帮助.

c# dictionary list data-structures

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

博弈论:MEX 规则和 Nimbers

我一直在阅读这篇关于尼伯斯和博弈论的小教程

有人可以解释为什么墨西哥规则管辖游戏位置的数量吗?

请参阅: http: //en.wikipedia.org/wiki/Mex_(数学)

从最小排除序数来看,在我看来,一个状态的 Nimber 实际上是该人“无法”达到的最小状态。这对管理当前游戏的状态有何帮助?

我在维基百科上看到了一个证明,但我不明白其中的任何内容。 http://en.wikipedia.org/wiki/Sprague%E2%80%93Grundy_theorem#Proof

language-agnostic algorithm numbers game-theory

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