首先,我对单链表的基本理解是每个节点只指向下一个后续节点,所以我的问题可能源于我对这种列表的定义不正确.
给定列表设置,到达节点n将需要迭代前面的n-1个节点,因此搜索和访问将是O(n).现在,显然节点插入和删除需要O(1),但除非他们正在谈论第一个项目插入,那么实际上你将在节点n和n +之间插入项目为O(n)+ O(1)1.
现在,索引列表也会有O(n)的复杂性,但显然构建这样的索引是不受欢迎的,我无法理解为什么.我们不能建立一个单链表索引,它允许我们真正的O(1)插入和删除,而不必在列表上执行O(n)迭代来到我们的特定节点?它甚至不需要是所有节点的索引,我们可以指向子索引,即对于1000个项目的列表,第一个索引将指向10个不同的索引,用于1-100,101-200之间的项目等然后这些索引可以指向更小的索引.这样,到达节点543可能只需要3次(索引遍历)迭代,而不是像典型的单链表那样需要543次迭代.
我想,我要问的是为什么通常应该避免这种索引?
如何Arrays.fill(char[] a,char val)
实现内部的java
?
它的复杂性是什么?
正如我从资料中读到的那样,我了解到 当二维矩阵只有一维时,四叉树的最坏情况复杂度是 O(N)。我无法理解其中的原因。例如。当矩阵只有 1xm 时,我们将继续将其分成两半,并在 log(m) 停止时到达单位单元。所以复杂度应该是 log(m) 谢谢
algorithm graph time-complexity data-structures segment-tree
对于一个简单的程序:
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).
谢谢.
任何人都可以解释我什么时候使用Dialogs比FormFlow更好?在我的情况下,我没有提供很多选项供用户选择(比如Sandwich bot示例),但我会有很多逻辑.例如:如果用户说了什么,我正在通过LUIS模型分析他的答案,然后调用一个特定的方法.根据用户说的我需要调用不同的方法.
我刚刚开始使用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
根据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)
如何用多个值更新此属性?
案例是我有以下课程,例如:
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) 我正在做另一个课程,这次是空中机器人.我必须使用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 a
和b
has.
在页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 ×4
c# ×3
java ×3
botframework ×2
arrays ×1
botconnector ×1
chatbot ×1
dialog ×1
formflow ×1
function ×1
graph ×1
gremlin ×1
list ×1
math ×1
matlab ×1
overloading ×1
segment-tree ×1
tilde ×1