小编OmG*_*OmG的帖子

单链表迭代复杂度

首先,我对单链表的基本理解是每个节点只指向下一个后续节点,所以我的问题可能源于我对这种列表的定义不正确.

给定列表设置,到达节点n将需要迭代前面的n-1个节点,因此搜索和访问将是O(n).现在,显然节点插入和删除需要O(1),但除非他们正在谈论第一个项目插入,那么实际上你将在节点nn +之间插入项目为O(n)+ O(1)1.

现在,索引列表也会有O(n)的复杂性,但显然构建这样的索引是不受欢迎的,我无法理解为什么.我们不能建立一个单链表索引,它允许我们真正的O(1)插入和删除,而不必在列表上执行O(n)迭代来到我们的特定节点?它甚至不需要是所有节点的索引,我们可以指向子索引,即对于1000个项目的列表,第一个索引将指向10个不同的索引,用于1-100,101-200之间的项目等然后这些索引可以指向更小的索引.这样,到达节点543可能只需要3次(索引遍历)迭代,而不是像典型的单链表那样需要543次迭代.

我想,我要问的是为什么通常应该避免这种索引?

java algorithm list time-complexity

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

Java中的Arrays.fill复杂度

如何Arrays.fill(char[] a,char val)实现内部java

它的复杂性是什么?

java arrays time-complexity

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

四叉树的最坏情况复杂度如何达到 O(N)?

正如我从资料中读到的那样,我了解到 当二维矩阵只有一维时,四叉树的最坏情况复杂度是 O(N)。我无法理解其中的原因。例如。当矩阵只有 1xm 时,我们将继续将其分成两半,并在 log(m) 停止时到达单位单元。所以复杂度应该是 log(m) 谢谢

algorithm graph time-complexity data-structures segment-tree

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

递归的空间复杂性

对于一个简单的程序:

public class solution{
    public void start(int m, int n){
        for(int i = 0; i < m; i++)
            recur(n);
    }

    public void recur(int n){
        for(int j = 0; j < n; j++)
            recur(n-1);
    }
}
Run Code Online (Sandbox Code Playgroud)

谁能帮助我分析空间复杂性?我认为是O(m*n).

谢谢.

java algorithm space-complexity

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

FormFlow与Microsoft Bot Framework中的对话框

任何人都可以解释我什么时候使用Dialogs比FormFlow更好?在我的情况下,我没有提供很多选项供用户选择(比如Sandwich bot示例),但我会有很多逻辑.例如:如果用户说了什么,我正在通过LUIS模型分析他的答案,然后调用一个特定的方法.根据用户说的我需要调用不同的方法.

c# dialog botframework formflow

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

直线API - 机器人框架/英雄卡和附件

我刚刚开始使用Direct Line API(1.1),我看到它不会让你知道是否在Hero Card或Button中显示了对话.

 {
      "id": "fBPDq9JSeL|000000000000000004",
      "conversationId": "fBPDq9JSeL",
      "created": "2016-11-28T20:22:20.6035604Z",
      "from": "portosegurobot",
      "text": "Health For Pets\n\nNossa missão é proporcionar a cães e gatos uma vida mais saudável e feliz.\n\nAcesse e saiba mais\n\n(Acesse) https://health4pet.com.br/",
      "images": [],
      "attachments": [],
      "eTag": "W/\"datetime'2016-11-28T20%3A22%3A21.3990939Z'\""
    }

上面的代码显示(在模拟器中)带有按钮的英雄卡(卡片动作).Direct Line API不会标记出来吗?有办法吗?

c# chatbot botframework direct-line-botframework botconnector

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

CosmosDB图形:如何使用gremlin更新具有多个值的属性的顶点?

根据cosmosDB图形文档,一个顶点可以具有带有多个值的属性。 https://docs.microsoft.com/zh-cn/azure/cosmos-db/gremlin-support

因此,在添加顶点的过程中,如果我们为一个属性定义了多个值,则会添加它。

假设我的查询是:

g.addV('employee').property('id', 'john').property('country', 'USA').property('country', 'India')
Run Code Online (Sandbox Code Playgroud)

结果是:

[{"id":"john","label":"employee","type":"vertex","properties":{"country":
    [{"id":"5dc2aaf6-cb11-4d4a-a2ce-e5fe79d28c80","value":"USA"},
     {"id":"fcf4baf6-b4d5-45a3-a4ba-83a859806aef","value":"India"}]}}] 
Run Code Online (Sandbox Code Playgroud)

但是在更新顶点时,如果我们更新具有多个值的属性。

查询是:

g.V('john').property('country', 'USA').property('country', 'India').property('country', 'China')
Run Code Online (Sandbox Code Playgroud)

结果是:

[{"id":"john","label":"employee","type":"vertex","properties":{"country":
    [{"id":"7e5d9847-31e5-4a59-82f9-b78e744420a1","value":"China"}]}}]
Run Code Online (Sandbox Code Playgroud)

如何用多个值更新此属性?

gremlin azure-cosmosdb

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

在重载中解析函数

案例是我有以下课程,例如:

public class SendFile
{
     public SendFile(Uri uri) { /* some code here */ }
     public SendFile(string id) { /* some code here */ }
}
Run Code Online (Sandbox Code Playgroud)

然后,我们知道如果我想解析构造函数,我不能这样做,如下所示:

// some string defined which are called "address" and "id"
var sendFile = new SendFile(String.IsNullOrEmpty(address) ? id : new Uri(address));
Run Code Online (Sandbox Code Playgroud)

我的问题是如何以干净的方式解决这个问题,而不在代码中创建"if"分支?喜欢以下内容:

SendFile sendFile;
if(String.IsNullOrEmpty(address))
{
     sendFile = new SendFile(id);
}
else
{
     sendFile = new SendFile(new Uri(address));
}
Run Code Online (Sandbox Code Playgroud)

c# overloading

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

这个函数用什么意思?(例如function = f(〜,x,y))

我正在做另一个课程,这次是空中机器人.我必须使用matlab ode45(普通差异方程)编程pd控制器.并且必须包含此代码的文件调用如下:

pd_controller(~, s, s_des, params)
Run Code Online (Sandbox Code Playgroud)

我四处搜索,但找不到向我解释这个问题以及它是如何工作的.

在主程序中,使用时间变量调用函数,我需要为我的ODE:

controlhandle(t, s, s_des, params)
Run Code Online (Sandbox Code Playgroud)

此控制句柄是pd_controller的函数处理程序.

那么这是什么意思?我可以访问背后的内容~吗?

此外:我找到了一个例子,但另一个例子.一个函数,让我们调用它function = f(a,b),f(~, b)在函数中声明了where abhas.

matlab function tilde function-handle

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

无法理解算法P146中最差时间复杂度的证明

在页146中Algorithms Fourth Edition,给出了快速联合算法的最差时间复杂度的证明.它说

假设具有i个节点的树的高度具有log(i)的最大高度.

给定i + j = k,i <= j,当i和j节点的树被联合时,树的高度= 1 + log(i)= log(i + i)<= log(i + j) = log(k).

我不明白为什么1 + log(i) = log(i + i).

algorithm math

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