给出一句话:
我早餐吃了花生酱和果冻三明治和一杯咖啡
我希望能够从中提取以下食物:
花生酱和果冻三明治
咖啡
到目前为止,使用POS标签,我已经能够提取单个食品,即
花生,黄油,果冻,三明治,咖啡
但就像我说的,我需要的是花生酱和果冻三明治,而不是个别物品.
有没有办法在没有后端食品的语料库或数据库的情况下这样做?
这是使用DP方法找到最大连续子序列和的算法.该算法似乎很好,但有人提到它具有空间复杂度O(n).为什么?
对我来说,这个算法似乎具有O(1)空间复杂度.我想问的另一件事是,如果算法不使用任何类型的递归,它还有可能除了恒定的空间复杂度之外还有其他东西吗?
Create arrays S and T each of size n.
S[0] = A[0];
T[0] = 0;
max = S[0];
max_start = 0, max_end = 0;
For i going from 1 to n-1:
// We know that S[i] = max { S[i-1] + A[i], A[i] .
If ( S[i-1] > 0)
S[i] = S[i-1] + A[i];
T[i] = T[i-1];
Else
S[i] = A[i];
T[i] = i;
If ( S[i] > max)
max_start = T[i];
max_end = i;
max = S[i]; …Run Code Online (Sandbox Code Playgroud) 这是我的 mongodb 集合的架构的一部分:
|-- variables: struct (nullable = true)
| |-- actives: struct (nullable = true)
| | |-- data: struct (nullable = true)
| | | |-- 0: struct (nullable = true)
| | | | |--active: integer (nullable = true)
| | | | |-- inactive: integer (nullable = true)
Run Code Online (Sandbox Code Playgroud)
我已获取该集合并将其存储在 Spark 数据框中,现在尝试提取变量列中最里面的值。
df_temp = df1.select(df1.variables.actives.data)
Run Code Online (Sandbox Code Playgroud)
这工作得很好,我能够获得数据结构的内部结构。
+----------------------+
|variables.actives.data|
+----------------------+
| [[1,32,0.516165...|
| [[1,30,1.173139...|
| [[4,18,0.160088...|
Run Code Online (Sandbox Code Playgroud)
然而,当我尝试进一步深入时:
df_temp = df1.select(df1.variables.actives.data.0.active)
Run Code Online (Sandbox Code Playgroud)
我收到无效语法错误。
df_temp …
所以我和我的朋友在这个问题上没有一致的看法.它要求在n个元素的最大堆中搜索第7个最大元素的时间复杂度?
我认为它应该是O(n)并且她认为它应该是O(1).我的逻辑是假设n是7然后第7个最大元素将是堆中的最后一个元素,所以如果我们考虑最坏的情况它应该是O(n).然而她说,因为它是最大堆,所以找到第7大元素应该花费不变的时间.但是使用她的逻辑甚至可以在O(1)时间内找到第50大元素或第100大元素.我们遇到这个问题的书也说解决方案是O(logn).
有人可以告诉我哪种解决方案是正确的?
简单的代码:
#include <stdio.h>
#include <string.h>
main()
{
printf("Process");
fork();
fork();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
根据我对fork()的理解,在执行此代码后,我们将有3个子进程和1个父进程.每当我们调用fork()时,执行应该从fork()语句之后的语句开始.因此根据我的说法,"过程"应该只打印一次.但在我的输出过程中正在打印4次.怎么可能?