小编sun*_*oon的帖子

在给定字符串的排列的排序列表中查找给定排列的索引

我们给了一个字符串和字符串的排列.

例如,输入字符串sandeep和排列psdenae.

在原始字符串的排列的排序列表中查找给定排列的位置.

algorithm permutation

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

将最大堆转换为二叉搜索树

我们给出了一个2 m - 1个不同的,可比较的元素的数组,从1开始索引.

我们可以将数组视为完整的二叉树:

Node is placed at index i.
Left child is placed at 2i.
Right child is placed at 2i+1.
Run Code Online (Sandbox Code Playgroud)

例如,数组

[7 6 4 5 2 3 1]

是树

       7
    /    \
   6       4
  /  \    / \
 5    2   3  1 
Run Code Online (Sandbox Code Playgroud)

现在,当被视为二叉树时,这些元素满足堆属性,节点大于其子节点:

A[i] > A[2i] and A[i] > A[2i+1]

是否存在相当快速的就地算法来重新排列数组的元素,以便生成的二叉树(如上所述)是二叉搜索树?

回想一下,在二叉搜索树中,节点大于其所有左后代,并且少于其所有右后代.

例如,上述阵列的重新洗牌将是

[4 2 6 1 3 5 7]

它对应于二叉搜索树

       4
    /    \
   2       6
  /  \    / \
 1    3   5  7 
Run Code Online (Sandbox Code Playgroud)

c algorithm heap binary-tree

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

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

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

找到阵列中最常见的三元组

我们有一组N个数字.所有数字都在1-k之间.

问题是如何找到找到最频繁三联体的最佳方法.

我解决这个问题的方法是:

假设输入是{1,2,3,4,1,2,3,4}

首先从数组中的第二个元素开始搜索三元组(1,2,3)的计数,直到数组结束.现在我们将计数为1.现在从{2,3,4)开始并搜索数组.

对于每个三元组,我们扫描数组并找到计数.像这样我们运行数组n-1次.

这样我的算法以n*n时间复杂度的顺序运行.有没有更好的方法

这个问题.?

arrays algorithm data-structures

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

在shell脚本中更改父shell的path变量

我想在shell脚本中更改路径环境变量.执行shell脚本后应修改path变量.

shell

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

mm_madd_epi16 和 mm_maddubs_epi16 的 Neon 等效项

我正在尝试将 SSE 中的代码移植到 Neon 中。

我找不到 mm_maddubs_epi16 和 mm_madd_epi16 的等效内在函数。

关于 Neon 这些内在因素的任何见解。

c arm sse neon

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

sprintf崩溃

 int main()
 {
     char buf1[100], buf[100]="ddl";

     sprintf(buf1, "log_name = '%.*s'", buf);
  }
Run Code Online (Sandbox Code Playgroud)

上面的程序崩溃了.我无法理解为什么会崩溃.据我所知,在角色printf跳过格式代码并将buf分配给下一格式代码之前.但这里有什么意义?

c printf format-specifiers

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