编程面试题

  • 我想向熊猫数据框添加新索引

    用途ngroup: 对于新列 index df[‘index’] = df.groupby‘date’, sort=Fa

  • 三值策略中位数

    中位数为3,您可以查看数组的第一个,中间和最后一个元素,然后选择这三个元素的中位数作为枢轴。 要获得三位数的“完全效果”,对这三个项目进行 排序 也很重要,不仅要将中位数用作支点- 这不会影响当前迭代中选择的支点,但可以将影响下一个递归调用中用作枢轴的内容,这有助于限制一些初始排序的不良行为(在许多情况下,经过排序的数组在很多情况下特别糟糕,除了在数组中具有最小的元素之外)数组的高端(或最大的元素位于

  • 映射应用的聚类算法

    对于虚拟地球应用程序,我使用了此处描述的群集 。闪电般快速且易于扩展。

  • 安装Anaconda后无法安装Python模块

    您可以尝试找到在binstar上构建此程序包的人,binstar是Anaconda的程序包托管站点。 我发现a href="https:binstar.or

  • 将一个单词转换为另一个单词的最短路径

    新答案 鉴于最近的更新,您可以将汉明距离作为启发式尝试使用A *。这是一种可以允许的启发式方法,因为它不会高估距离 老答案 您可以修改用于计算Levenshtein距离的动态程序,以获得操作顺序。

  • GAE Webapp2-销毁会话无效

    unset_session将 用户 从会话中删除,而不是其他会话变量中删除。unset_session方法位于auth模块上。 如果您对代码进行更深入的了解,可以看看代码在做什么。 a href="http:code.go

  • 合并两个排序的链表

    您的代码过载,if插入- s来处理“特殊”情况,这使它非常膨胀并且难以阅读。当您决定“按代码”处理特殊情况而不是找到“按数据”处理特殊情况时,通常会发生这种情况。大卫·惠勒(David Wheeler)的声明说:“计算机科学中的所有问题都可以通过另一种间接解决方案来解决”。该“额外级别的间接”通常与列表配合使用,有助于显着减少由这些列表造成的混乱if。

  • 替换python中的特殊字符

    如果,s=url['title']品牌s等于以下内容: In [48]: s=u'Oscar Winners Best Pictures Box Set \xc2\xa36.49' 那么问题是 在定义的代码中url, 否则来自网络的内容格式

  • 有没有一种简单的算法可以确定X是否为素数?

    第一个算法非常好,并且在Euler项目上使用了很多。如果您知道所需的最大数量,也可以研究Eratosthenes的筛子。 如果维护素数列表,则还可以优化第一个算法以仅用素数除,直到数字的平方根。 有了这两个算法(划分和筛分),您应该能够解决问题。 编辑 :固定名称,如注释中所述

  • 为什么深度优先搜索声称可以节省空间?

    您之所以困惑,是因为您显然假设可以通过使用LIFO堆栈替换FIFO队列来从BFS算法获得DFS算法。 这是一个普遍的误解-事实并非如此。无法通过将BFS队列替换为堆栈来获得经典的DFS算法。这些算法之间的差异要大得多。 如果您采用BFS算法,而只是用LIFO堆栈替换FIFO队列,则将获得可以称为 伪DFS 算法的内容。该伪DFS算法确实可以正确地重现DFS顶点的正向遍历序列,但是它不具

  • 如何将Orb检测器用于图像单应性?

    这是我的结果。 代码(描述写为注释): #!usrbinpython3 # 2017.11.26 23:27:12 CST ##

  • 计算64位整数模的128位整数的最快方法

    您可以使用俄语农民倍增的除法版本。 要查找其余部分,执行(以伪代码): X = B; while X = A2 { X = 1; } while A = B { if A = X

  • Scrapy Spider没有关注链接

    我已经找到解决问题的方法。我做错了2件事: 我需要继承子类,CrawlSpider而不是Spider想要它自动爬网子链接。 使用时CrawlSpider,我需要使用回调函数而不是重写parse。根据文档,覆盖parse会破坏CrawlSpider

  • 大量圆的碰撞检测

    我假设您正在执行简单的硬球分子动力学模拟,对吗?我在蒙特卡洛(Monte Carlo)和分子动力学模拟中多次遇到相同的问题。关于模拟的文献中经常提到这两种解决方案。我个人更喜欢 解决方案1 ,但稍加修改。 解决方案1 将您的空间划分为不重叠的矩形单元。因此,当您检查一个圆是否发生碰撞时,您会在第一个圆所在的单元格中查找所有圆,并在每个方向

  • Python-'str'和'int'的实例之间不支持'TypeError:'<='

    正如roganjosh所指出的,您要分3步进行替换-这会引起问题,因为在第1步之后,您将得到一列混合dtypes,因此后续的相等性检查开始失败。 您可以分配给新列,也可以使用numpy.select。

  • O(n!)的示例?

    你去。这可能是On!及时运行的函数的最简单的例子(函数n的参数在哪里): void nFacRuntimeFuncint n { forint i=0; in; i++ { nFacRuntimeFuncn-1; } }

  • 如何从sklearn GridSearchCV同时获得MSE和R2?

    不幸的是GridSearchCV,使用或任何内置的sklearn方法对象现在还不是很简单。 尽管有人说有多个计分器输出,但是此功能可能不会很快出现。 因此,您必须自己做,有几种方法: 1)您可以看一下的代码cross_val_score并自己执行交叉验证循环,每完成一次就调用感兴趣的得分手。 2)[不推荐]您也可以在自己感

  • 从两个相交的链表中找到相交的节点

    这需要O(M + N)时间和O(1)空间,其中M和N是链接列表的总长度。如果公用部分很长(即M,N m,n),则效率可能较低 遍历两个链接列表以查找M和N。 回到头顶,然后遍历| M − N | 较长列表上的节点。 现在,进入锁定步骤并比较节点,直到找到公用节点为止。 编辑:a href="ht

  • Python/Tkinter: Using custom mouse cursors under Windows?

    lbl=Labelroot, text="toto", cursor="@toto.cur" works for me on Python 2.6 and Vista. Make sure that the cur file is in the working directory of your script I have a similar traceback if I try to load a

  • 如何以编程方式实现2D装箱?

    我用Google搜索了“装箱码”,这是我的第一个热门商品:http : a href="http:codeincomplete.composts201157

  • Python / Tkinter:在Windows下使用自定义鼠标光标吗?

    lbl=Labelroot, text="toto", cursor="@toto.cur"在Python 2.6和Vista上对我有效。确保cur文件位于脚本的工作目录中(如果尝试加载不存在的游标,则具有类似的回溯),并且文件未损坏。 作为替代方案,下面是内部游标的列表:a href="http:www.tcl.tkmantcl8.4TkCmdcursors.htm"

  • 将任意GUID编码为可读ASCII(33-127)的最有效方法是什么?

    使用Base85。请参阅第4.1节。 为什么是85? 的 IPv6地址的紧凑表示 IPv6地址(如GUID)由八个16位组成。

  • 如何根据第二个索引列表重新排列一个列表

    如果您只是想让元素根据其他列表的位置四处移动,则可以遍历其中的所有元素,m并l使用列表理解来获取该元素 l2 = [l[i - 1] for i in m] 但是,如果您确实希望基于其他列表进行排序,则需要将它们压缩在一起,对索引进行排序,然后提取元素 [y for x,y in sorte

  • 匹配颜色的最佳算法。

    将所有颜色转换为CIE Lab颜色空间并计算该空间中的距离 deltaE = sqrtdeltaL^2 + deltaA^2 + deltaB^2 code

  • JavaScript中的Number.sign()

    快速解决方案的更优雅版本: var sign = number?number0?-1:1:0

  • 将4D数据绘制为Python中的分层热图

    假设您有两个txt文件,即 data-z600.txt 和 data-z1200.txt ,与python脚本位于同一文件夹中,其内容完全相同 data-z600.txt (您的) XA YA ZA GA 200 0 600 1.27 600 0 600 1.54 1200 0 600 1.49 1800 0 600 1.34 2400 0

  • 高速缓存高效矩阵转置程序?

    您可能需要四个循环- 两个循环遍历这些块,然后另外两个循环执行单个块的转置复制。为了简单起见,假设块大小可以划分矩阵的大小,我想是这样的,尽管我想在信封的背面绘制一些图片以确保: for int i = 0; i n; i += blocksize { for int j = 0; j n; j += blocksize { transpo

  • 在数组中找到加到给定总和的数字对

    如果您有一个已排序的数组,则可以通过将两个指针移到中间来在O(n)中找到这样的一对 i = 0 j = n-1 whilei j{ if a[i] + a[j] == target return i, j; else if a[i] + a[j] target i += 1; else if a[i] + a[j] target j

  • 用self调用类变量

    发生的事情是self.a指在不同时间发生的 两 件事。 当名称不存在实例变量时,Python将在类上查找值。因此,检索到的值self.a将是class变量。 但是,当通过 设置 属性时self,Python 始终会 设置一个实例变量。因此,现在self.ac

  • 如何计算3D莫顿数(交错3个整数的位)

    您可以使用相同的技术。我假设变量包含32位整数,并将最高22位设置为0(这比必要性要严格一些)。对于x包含三个10位整数之一的每个变量,我们执行以下操作: x = x | x 16 0x030000FF; x = x | x 8 0x0300F00F; x = x | x

  • 逆斐波那契算法?

    由于OP询问的矩阵解决方案不涉及任何浮点计算,因此就在这里。Ologn假设数值运算具有O1复杂性,我们可以通过这种方式实现复杂性。 让我们以A具有以下结构的2x2矩阵为例 1 1 1 0 现在考虑vector 8, 5,存储两个连续的斐波那契数

  • Python-字典-修改__getitem__?

    事实是,当Python遇到诸如的表达式时data["key"]["subkey"],内部将完成data["key"]["subkey"]。即,表达式的第一部分被解析:从对象“数据”中检索“键”项。然后,Python尝试调用__getitem__该表达式的结果对象。如果这样的结果对象本身没有__getitem__方法,则可能是您的错误。p

  • 计算*滚动*熊猫系列的最大跌幅

    这是滚动最大跌幅函数的小巧版本。 windowed_view是单行函数的包装,用于numpy.lib.stride_tricks.as_strided使1d数组的内存有效2d窗口视图(下面的完整代码)。有了该窗口化视图后,计算基本上与相同max_dd,但是是为numpy数组编写的,并沿第二个轴(即axis=1)应用。

  • 检查单词列表中一个单词的子字符串匹配

    您可以这样做: found = anyword in item for item in wordlist 它检查每个单词是否匹配,如果匹配则返回true

  • C-如何实现Set数据结构?

    有 多种实现 集合(和映射)功能的方法,例如: 基于树的方法(有序遍历) 基于散列的方法(无序遍历) 既然 您提到了值索引数组 ,让我们尝试基于散列的方法,该方法 自然地建立在值索引数组技术之上 。 注意 基于散列的方法与基于

  • 如何找到python字典或JSON对象的最大“深度”?

    这是一个实现: def depthx: if typex is dict and x: return 1 + maxdepthx[a] for a in x if typex is list and x: return 1 + maxdeptha for a in x return 0

  • 如何理解线性分区中的动态编程解决方案?

    请注意,本书中对算法的解释有一个小错误,请在勘误表中查找文本“(*)Page 297”。 关于您的问题: 不,项目不需要排序,仅是连续的(也就是说,您不能重新排列它们) 我认为,可视化算法的最简单方法是通过手动跟踪co

  • 从一亿个数字中检索前100个数字

    运行它们全部通过一个最小堆大小100的:对于每个输入数k,替换当前分钟m用maxk, m。之后,堆将容纳100个最大的输入。 诸如Lucene之类的搜索引擎可以通过改进使用此方法来选择最相关的搜索答案。 p

  • 如何处理Robot Framework RIDE中的Windows身份验证弹出窗口?

    您可以使用 处理窗口输入和类似内容的AutoItLibrary实现您的方案。基本上控制整个GUI,而不仅仅是浏览器。 首先安装用于机器人框架的AutoItLibrary 确保您已安装32位python(例如python 2.7.6)

  • 如果广度优先搜索(BFS)可以更快地执行相同的操作,为什么还要使用Dijkstra的算法?

    Dijkstra允许为每个步骤分配除1以外的距离。例如,在路由中,距离(或权重)可以通过速度,成本,首选项等进行分配。然后,该算法为您提供了从源到遍历图中每个节点的最短路径。 同时,BFS基本上只在每次迭代时将搜索扩展一个“步”(链接,边沿,无论您想在应用程序中调用什么),这恰好是找到到达任何 步骤 所需的最小 步数 的效果。来自您的源(“根”)的给定节点。 br