编程面试题

  • 等于1和0的最大子矩阵

    该算法假定我们搜索具有连续行和列且高度和宽度的最大可能乘积的子矩阵。 从以下预处理开始: A = substitute_zero_with_minus_oneInputMatrix B = prefix_sum_for_each_columnA C = prefix_sum_for_each_rowB 现在,对每对行(i,j)进行以下操作:p

  • 如何使用docx中的python-docx识别分页符

    硬分页符将作为w:br元素出现在run元素(w:r)中,如下所示: w:p w:r w:tsome textw:t w:br w:type="page" w:r w:p

  • 查找所有最小的生成树

    为学术答案道歉…但是SKnuth的TAOCP,第4卷,第4卷中的算法恰好是关于生成所有生成树的(pp。26ff)。当他谈论生成(生成)树时,有些沉思,但在TAO

  • 工作窃取算法

    这些有帮助吗? .NET 4.0中的工作偷取 通过工作窃取调度多线程计算

  • 在python 3.4中连接字符串和int

    请记住(或者如果您还不了解,请继续阅读该主题),它print是Python 3中的一个函数。在Python 2中,第一行将连接“类型字符串:”和“ 123”,然后打印它们。在Python 3中,您print使用一

  • 找出两个Glob模式(或正则表达式)的匹配项是否相交的算法

    现在见证这个全副武装和作战战斗站的火力! (我在这个答案上做得太多了,我的脑袋坏了;应该有一个徽章。) 为了确定两个模式是否相交,我创建了一个递归的回溯解析器-当遇到 Kleene星时 ,会创建一个新的堆栈,以便如果将来失败,则所有内容都会回滚,并且该 星

  • 来自StringIO源的Python xml etree DTD?

    这是一个简短但完整的示例,其中使用了@Steven提到的自定义解析器技术。 from StringIO import StringIO from lxml import etree data = dict xml_file = '''?xml version="1.0"? !DOCTYPE x SYSTEM "a.dtd" xy

  • 填充路径如何呈现?

    查找轮廓(周长为多边形) 这个我想你已经有 三角剖分(或切成凸多边形) 有很多方法,例如: * 夹耳式 * 德劳内 参见a href="http:en.wikipedia.or

  • 如何覆盖硒中的chrome命令行开关的默认设置

    您应该 自己启动浏览器 ,然后告诉selenium,您已经通过 传递特殊通道id 启动了它。像这样: from random import randrange channel_id = "%032x" % randrange16**32 from subprocess import Popen # HERE YOU PASS ONLY TH

  • 如何找到一条线上的所有网格正方形?

    到目前为止,这两个答案都指向Wikipedia上有关Bresenhams算法的文章。这是本文提供的全尺寸插图。注意,该线穿过未突出显示的网格正方形,因此Bresenham的算法仅给出所需内容的一个子集。 img alt="替代文字" src=".page_61_37_files80

  • 如何从csv读取字节对象?

    如果您的输入文件中确实包含带有Python语法b前缀的字符串,则解决该问题的一种方法(即使它并不是包含csv数据的真正有效格式)也可以使用ast.literal_eval提到的Python函数@Ryan,尽管我会在方式略有不同,如下所示。

  • 请解释Kernighan位计数算法背后的逻辑

    在调试器中逐步执行代码对我有帮助。 如果从 n = 1010101 n-1=1010100 = 1010100 n = 1010100 n-1=1010011 = 1010000 n = 1010000 n-1=1001111 = 1000000 n = 1000000 n-1=0111111 = 0000000

  • 运行dev_appserver.py时如何访问远程数据存储?

    很多人问这个问题,仅仅是因为您不能在SDK之外使用应用程序引擎库。但是,在App Engine SDK中也有一种更简便的方法来执行此操作。 我会用gcloud这个。设置方法如下: 如果您想在App Engine环境内部或外部与Google云存储服务进行交互,则可以使用Gcloud(a href="https:googlecloudplatform.github.iogc

  • 生成不需要猜测的扫雷板

    Simon Tatham的Portable Puzzle Collection中的Minesweeper的实现无需猜测。(它也是麻省理工学院的许可,因此,如果您愿意,可以自由复制他的实现。)

  • 在python中绘制轨道轨迹

    如您所显示的,您可以将其编写为一个包含六个一阶ode的系统: x' = x2 y' = y2 z' = z2 x2' = -mu np.sqrtx ** 2 + y ** 2 + z ** 2 * x y2' = -mu np.sqrtx ** 2 + y ** 2 + z ** 2 * y z2' = -mu np.sqrtx ** 2 + y ** 2 + z ** 2 * z c

  • 在C中创建n项的k和m组合的所有可能子集

    比我最初想象的要棘手。 好的,假设您有“ n”个uniq元素。uniq可能性的总和为“ n!”。(因此对于5个元素,您有120个可能性)。 假设您要对“ k”个数字进行“分组”。 因此,如果n = 5且k = 2,您将得到示例: {0,1},{2,3},{4}。 现在,这就是乐趣的开始:为了知道当前命题是否不是重复命题,您可以舍弃每个未对每个 strong

  • 将JSON对象排序到层次结构中

    myJson = [ { "name":"Folder 2", "id":"zRDg", "parent":"OY00", "type":"folder" }, { "name":"Folder 1", "id":"OY00", "type":"folder" }, { "name":"Folde

  • 如何获得两个范围的重叠范围

    看一下mergesort算法的合并步骤。如果对每个人的范围进行了排序,则该方法可以非常容易地用于计算重叠。 Loop Get the range that starts next R1 if the next range of the other person R2 starts before R1 ends Add the range from begin of R2 and m

  • 迭代算法的时间复杂度

    while循环有点巧妙和微妙,并且可以说它正在做两种不同的事情(如果算上的初始化,甚至是三件事a)。这就是使您的复杂性计算具有挑战性的原因,并且效率也比以前低。 在摘要中,要从当前索引中递增地计算下一组索引,其想法是找到最后一个索引,该索引i小于n-dist+i,将其递增,然后将以下索引设置为a[i]+1,a[i]

  • 我可以从php调用python脚本或函数吗

    是的,您可以调用,exec"python pythonscript.py someparams";或者如果您需要将输出保存到变量,请使用此代码 exec"python mypythonscript.py someparams",$output; var_dump$output; 更多信息:a href="https:stackove

  • 搜索位置敏感的哈希

    这个问题在某种程度上是广泛的,所以在这里我将给出一个最小的(抽象的)示例: 我们n的数据集中有6个(= )向量,d每个向量都有位。假设我们进行2(= N)个随机排列。 让第一个随机置换开始!请记住,我们置换 位 , 而不是向量的次序 。在对位进行排列后,它们保持顺序,例如:

  • 布尔可满足性的类计划[多项式时间减少]最后一部分

    由于学生一次只能位于一个地方: 属于同一学生组的课程的授课时间不应重叠。 编辑: 不同的学生群体重叠不应受到任何限制。如果您有这样的限制,则应将其删除! 约束条件是课程。如果安排课程A的讲义,则该课程可能不会与参加课程A的学生团体的任何其他课程的讲义重叠。也可能不会与同一位老师主持的任何其他课程重叠。 因此,您在学生与课程之

  • 在python中以超级用户身份打开文件

    由于特权在类似Unix的系统和Windows上的工作方式完全不同,因此您将需要具有特定于平台的代码。无论如何,您都需要将程序分成两个单独的程序,其中一个以提升的权限运行,而另一个以标准减少的权限运行。 在类Unix系统(包括Linux和Mac OS X)中,以提升的权限运行的可执行文件应执行以下操作: 假设您以root身份运行,然后打开文件进行读取。由于您提到文件非常大,因此您实际上并没有读

  • 排列Javascript

    这是我从以下答案中得出的解决方案: var permute = function { return permute; function permutelist { return list.length ? list.reducepermutate, [] : [[]]; } function per

  • 确定电子邮件地址的健康/有效性

    同意Jay的意见:为完成此特定工作而构建的所有精美功能通常都已关闭… 唯一的方法是向该地址发送电子邮件;即使如此,您也不是100%确定。 该地址可能是垃圾;没有人在检查它。 邮箱已满(临时?),您会得到一个DSN SMTP服务器故障中断 恕我直言,请继续检查域(如果您不想被列入黑名单,请轻松进行连接),并使用

  • 基于`setuptools`给出的外部值的Cython条件编译

    谢谢你的链接。 中的有趣标志setup.py是cython_compile_time_env。并Extension从Cython导入。 from setuptools import setup from Cython.Distutils.extension import Extension ext = Extensi

  • 为什么在Java中的PriorityQueue中会发生这种奇怪的顺序?[重复]

    PriorityQueue 仅保证第一个元素最小。 甲 二进制堆仅在每个子HEAB(子树)保证根是最小的元素。 堆实际上是一个完整树(或它的数组表示形式)。每当您插入违反条件的元素(小于根)时,都会过滤掉旧根。这是在堆上递归完成的。 这种部分排序允许快速且相对高

  • Sudoku有效性检查算法-此代码如何工作?

    真是个好主意。 基本上,它使用int标志(最初设置为零)作为“位数组”;对于每个值,它都会检查标志中的相应位是否已设置,如果未设置,则对其进行设置。 相反,如果该位位置已设置,则它知道已经看到了相应的值,因此Sudoku无效。 更详细: public static bool IsValidint[] values {

  • 如何从python中的命令行接收正则表达式

    在Python 2中,您可以使用str.decode'string_escape': '\\t'.decode'string_escape' '\t' 在Python 3中,您必须先将字符串编码为字节,然后使用unicode_escape:

  • Cormen中关于插入排序的矛盾

    我认为您在这里有些困惑。让我为您澄清几点。 运行时间可能意味着两件事:程序的实际运行时间,或者诸如theta或big-oh之类的有界函数(因此有助于避免这种 时间复杂性 ,以避免混淆)。程序的实际运行时间以及表示Big-Oh theta表示法的时间复杂度。 一旦您知道Big-Oh,其他函数就很容易就位了。当我们说T(n)是Omega(g(n))时,我们的意思

  • 如何通过request.user过滤django-tastypie的ToManyField?

    最终,我通过逐步完成了密码的代码找到了答案。事实证明,ToMany关系定义(topping_set此处)中的模型字段可以设置为可调用的。 在可调用对象内部,您仅获得bundle用于脱水生成数据的数据的参数。在其中bundle始终是请求,因此user我想使用该实例进行过滤。 所以我所做

  • 您将如何在O(n * log K)时间中对平均长度为K的n个排序列表进行排序?

    正如您对问题的评论中提到的那样,不可能使用O(nlog(k)),但此页面上有两种算法可以有效地完成您的任务;这是一个: 取每个列表的第一个元素并创建一个堆(大小为k)。弹出最小的元素。从元素中找到数组(假设它来自列表编号i)。从列表i中

  • 如何调试我的Bubble Sort代码?

    您的swap功能有误。应该是这样的: public void swapint indexOne, int indexTwo { int temp = myArray[indexOne]; myArray[indexOne] = myArray[indexTwo]; myArray[indexTwo] = temp; } 另

  • 如何检查URL是Python中的网页链接还是文件链接

    import urllib import mimetypes def guess_type_oflink, strict=True: link_type, _ = mimetypes.guess_typelink if link_type is None and strict: u = urllib.urlopenlink link_type = u.headers.

  • 查找数组中与给定线段交叉的单元格

    让您的点为A和B,并分别具有坐标xA,yA和xB,yB。 两点之间线段的参数方程式由 A + t * B-A = xA + t * xB - xA, yA + t * yB - yA 下式给出:其中t,所有取值器在0和1之间。

  • youtube-dl完成下载后,运行异步功能(python)

    从阻塞代码安排协程异步执行的最简单方法是loop.create_task。由于callback继承了封闭play方法的范围,因此我们可以self.bot.loop

  • 如何迭代具有不同长度的列表以找到所有排列?

    我不能说以下是否是最简单的方法,但是IMO是最有效的方法。这基本上是我对锯齿状阵列中的每种组合的回答的概括版本: public static class Algorithms { public static IEnumerableT[] GenerateCombinationsTthis IReadOnlyListIReadOnlyListT>

  • Python 2.5将字符串转换为二进制

    此单行代码适用于: ''.join['%08d'%intbinordi[2:] for i in 'This is my string'] '01010100011010000110100101110011001000000110100101110011001000000110110101111001001000000111001101110100011100100110

  • 如果两个线段重叠或相交,则将它们合并在同一圆上

    您可以在第二个链接中使用我的回答中所述的方法。 ma = a2 + a1 2 mb = b2 + b1 2 cda = Cosda cdb = Cosdb 要检查交叉点是否存在以及发生哪种类型的交叉点,请找到4个布尔值 BStartInsideA = Cosma - b1 = cda BEndI

  • 确定从一个纬度/经度到另一纬度的罗盘方向

    该站点具有基本算法: in javascript, not hard to translate... var y = Math.sindLon * Math.coslat2; var x = Math.coslat1*Math.sinlat2 -