小编dis*_*kit的帖子

Max-Heapify二叉树

这是我最近遇到的面试问题之一.

给定完整或几乎完整的二叉树的根地址,我们必须编写一个函数将树转换为最大堆.

这里没有涉及数组.树已经建成了.

例如,

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

可以有任何可能的最大堆作为输出 -

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

要么

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

等等...

我写了一个解决方案,但使用了前后顺序遍历的组合,但我想在O(n ^ 2)中运行.我的代码提供了以下输出.

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

我一直在寻找更好的解决方案.有人可以帮忙吗?

编辑:

我的守则

void preorder(struct node* root)
{    
    if(root==NULL)return;
    max_heapify(root,NULL);
    preorder(root->left); 
    preorder(root->right);
}
void max_heapify(struct node* root,struct …
Run Code Online (Sandbox Code Playgroud)

algorithm heap binary-tree binary-heap data-structures

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

要在字符串末尾插入的最小字符数,以使其成为回文

问题是这样的 -

我们必须找到要字符串末尾插入的最小字符数,以使其成为回文.

因此,在我努力解决这个问题时,我认为这相当于找到最大的回文子串,这也是字符串的后缀.

我可以很容易地在O(n ^ 2)中做到这一点,但我正在寻找可能使用改进的KMP的O(n)解决方案.有人请帮我搞清楚.

algorithm data-structures

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

字符串中回文子序列的总数

问题是这样的 -

对于作为输入给出的每个字符串,您需要告诉它作为回文的子序列的数量(不一定是不同的).请注意,空字符串不是回文.例如,"aab"的回文子序列是:

"a","a","b","aa",方法返回4.

我有动态编程解决方案来寻找最长的回文子序列,因此试图从中获取想法.无法真正得到解决方案.可能甚至不需要动态编程.建议请.

还有一个问题.当"不一定要区分"的条件被删除时,我们仍然可以在不实际产生所有回文子序列的情况下进行计数吗?

algorithm dynamic-programming data-structures

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

检测后台脚本卸载

对于我的 chrome 和 firefox 扩展,我需要一种方法来确定后台脚本是否已卸载或正在卸载。发生这种情况时是否会触发事件?我浏览了 stackoverflow 上的多个链接,甚至一些官方的 Chromium 错误链接,但找不到具体的答案。后台脚本不支持 beforeunload 并且关闭窗口并不能保证浏览器关闭,因为如果扩展程序具有“后台”权限,后台脚本仍将在后台运行。我现在能做什么?

google-chrome-extension firefox-addon-webextensions

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

以最高分打印两个序列的所有比对

序列比对是一个非常标准的问题,可用于生物信息学领域的DNA或蛋白质比对.我最近遇到了这个问题的不同版本.

给定两个输入字符串(假设字符串仅由A,C,G,T组成),问题基本上是根据以下矩阵找到最大对齐分数 -

   A  C  G  T  -
A  5 -1 -2 -1 -3  
C -1  5 -3 -2 -4
G -2 -3  5 -2 -2
T -1 -2 -2  5 -1
- -3 -4 -2 -1 Not Allowed
Run Code Online (Sandbox Code Playgroud)

因此,如果A与 - 对齐,我们在对齐分数上加-3,或者如果G与T对齐,我们在分数上加-2,或者如果C与C对齐,我们加5.因此,对于输入字符串AGTGATG和GTTAG,最大比对得分为14,其中一个具有最大得分的比对可以表示为

AGTGATG
-GTTA-G
Run Code Online (Sandbox Code Playgroud)

对齐得分计算如下:A- = -3,GG = 5,TT = 5,GT = -2,AA = 5,T- = -1和GG = 5.加起来,-3 + 5 + 5-2 + 5-1 + 5 = 14这是这对弦的最大可能对齐分数.

我能够使用动态编程对其进行编码并获得Alignment得分矩阵,但我在打印两个字符串的所有可能对齐方面遇到问题,并且最大对齐得分.我试图像在LCS中一样回溯,但无法使其正常工作.我附上了我的代码.

static Dictionary<string, int> dict;

    static void Main(string[] args)
    { …
Run Code Online (Sandbox Code Playgroud)

c# algorithm dynamic-programming data-structures

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

GCM等效于Firefox

Google云消息传递(GCM)是一项服务,可让开发人员将数据从服务器发送到Android应用程序或Chrome应用程序和扩展程序.

我正在开发一个chrome和一个firefox扩展/附加组件.我正在使用Web扩展API进行Firefox扩展.

现在,Web Extension API尚不支持chrome.gcm.*API.从本质上讲,firefox扩展无法与GCM通信.

还有其他类似GCM的内容,firefox扩展可以与之交谈吗?Firefox提供的东西就像Google为其浏览器Chrome提供的GCM一样?如果没有,有人可以解释如何在Firefox扩展中实现这一目标吗?

更新:即使对于Web应用程序,firefox也不会使用与GCM类似的东西.他们使用服务人员.Firefox浏览器扩展可以与服务工作者互动吗?

firefox firefox-addon google-cloud-messaging service-worker web-push

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

Chrome 是否违反了内容安全政策?

我为 chrome 和 firefox 制作了一个浏览器扩展。firefox 是使用Web 扩展 API开发的因此这两个扩展中的代码差异很小。作为扩展中的一个重要功能,一些 HTML 元素通过内容脚本成为网页的一部分。这还涉及加载托管在某些服务器上并通过 https 提供的图像。现在,当扩展在 twitter 和 github 上运行时,这些图像在 chrome 中加载良好。但是,有趣的是,当相应的扩展在 twitter 和 github 上运行时,图像根本没有加载到 firefox 中。更有趣的是,twitter 在其响应标头中设置的内容脚本策略禁止该图像加载,因此 firefox 的行为是正确的。所以,我的问题基本上是 Chrome 是否在这里违反了 CSP?

在此处附加 twitter 设置的 csp--

script-src 'nonce-j0G​​K1zjoBy82/ZWhR7gw+g==' https://connect.facebook.net https://cm.g.doubleclick.net https://ssl.google-analytics.com https://graph .facebook.com https://twitter.com 'unsafe-eval' https:// .twimg.com https://api.twitter.com https://analytics.twitter.com https://publish.twitter。 com https://ton.twitter.com https://syndication.twitter.com https://www.google.com https://t.tellapart.com https://platform.twitter.com https:// www.google-analytics.com '自我';框架祖先“自我”;字体-SRC https://twitter.com的https:// .twimg.com数据:https://ton.twitter.com https://fonts.gstatic.com https://maxcdn.bootstrapcdn.com https://netdna.bootstrapcdn.com 'self'; media-src https://twitter.com https:// .twimg.com https://ton.twitter.com blob: 'self'; connect-src https://graph.facebook.com https:// .giphy.com https:// …

firefox google-chrome-extension content-script content-security-policy

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

将短信分成 30 个字符的短信

问题陈述如下——

There is a text messaging service.It provides with an API to send SMSes to a user, 
but they can be at most 30 characters long. 
Also it doesn't guarantee the order in which the messages will be received.


You have to build a function which splits the text in chunks so that it can 
be sent in multiple messages. Each chunk has to be :
- upto 30 characters long
- no word should be split in the middle …
Run Code Online (Sandbox Code Playgroud)

string algorithm data-structures

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

后缀在后缀数组中排序的重要性是什么?

我知道后缀数组本身的定义是它是一个字符串所有后缀的排序数组.但我试图了解这种排序操作的重要性在这里?假设我们创建了一个包含字符串所有后缀的数组,并选择不对其进行排序并继续构建LCP数组,当我们尝试解决诸如Longest Palindromic子字符串之类的常见问题时,我们在这种情况下会松动什么呢?最长的重复子串?

sorting string algorithm suffix-array data-structures

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

找到代码的时间复杂度

给定是一个无限排序的数组,只包含数字0和1.有效地找到转换点.

例如:00000000000111111111111111

输出:11是转换发生的索引

我为此编写了一个解决方案,忽略了一些边缘情况.

int findTransition(int start)
{
  int i;
  if(a[start]==1)return start;
  for(i=1;;i*=2)
  {  
    //assume that this condition will be true for some index
    if(a[start+i]==1)break;
  }
  if(i==1)return start+1;
  return findTransition(start+(i/2));
}
Run Code Online (Sandbox Code Playgroud)

我不太确定这个解决方案的时间复杂性.有人可以帮我解决这个问题吗?

是O(log(N))吗?

arrays algorithm performance time-complexity data-structures

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

Kafka Consumer使用哪种语言

我正在尝试建立一个Kafka系统.由于我项目中的大多数现有代码都已经在PHP中,因此我很可能会在PHP本身编写生成器.但在选择一种语言来写消费者时,我的约束相对较少.现在,有很多客户可以使用我正在修复.

另外,为了在这里选择合适的技术,应该记住哪些因素?

特别想应用这些知识在java客户端与节点客户端之间进行选择(多线程模型与异步模型)

任何帮助将受到高度赞赏.

java node.js apache-kafka

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