编程面试题

  • 算法挑战:从图像生成配色方案

    要查找主要的X颜色,请对该应用进行屏幕截图。在图像上运行颜色直方图。直方图中的前X个颜色是主题。编辑:如果使用渐变,您将要选择不同的颜色“峰值”;也就是说,如果橙色是渐变中使用的主要颜色之一,则可能在“橙色”附近有一大堆颜色。实际上,只需在从直方图选择的颜色之间强制一定距离即可。 最好在HSV空间中调整颜色方案。将您的颜色转换为HSV空间,如果用户希望它更“亮”,请增加“值”,如

  • PySide:将文件拖放到QListWidget中

    最终了解PySide信号的工作方式。这是上面的PyQt4代码,已移植到PySide。我很想听听是否有更好的解决方案。 import sys import os from PySide import QtGui, QtCore class TestListViewQtGui.QListWidget: fileDropped = QtCore.Signallist def __init_

  • Python:Google API-从消息中获取mimeTypes

    要遍历Python中多部分消息的各个部分,应使用get_payload:https : a href="https:docs.python.org2libraryemail.message.

  • 面试问题:三个数组和O(N * N)

    这可以在O(1)空间和O(N 2)时间中完成。 首先让我们解决一个简单的问题: 给定两个数组,A并B从每个数组中选取一个元素,以使它们的总和等于给定的number K。 对两个采用O(NlogN)的数组进行排序。 取指针i,j使其i指

  • 面试问题-在排序数组X中搜索索引i,使得X [i] = i

    通过使用稍微修改的二进制搜索,可以在OlogN时间和O1空间上完成此操作。 考虑一个新的数组cod

  • 在Selenium Webdriver中切换到Web对话框:Python

    尝试这个: parent_h = browser.current_window_handle # click on the link that opens a new window handles = browser.window_handles # before the pop-up window closes handles.removeparent_h browser.switch_to_window

  • 多项式时间和指数时间

    检查这个出来。 指数比多项式差。 O(n ^ 2)属于二次类别,它是多项式的一种(指数等于2的特殊情况)并且优于指数。 指数是 多少 比多项式更糟糕。看看功能如何成长 n

  • Python正则表达式用自己替换每一个匹配项并加上新行

    要用自身替换整个匹配项,可以使用替换后向引用\g0。但是,您要替换匹配并将其存储在变量中。您需要传递一个回调方法作为的替换参数re.sub,并返回整个匹配值(match.group),并在该值后附加换行符: import re matches = [] # Varia

  • 采访问题:合并两个排序的单链接列表,而不创建新节点

    Node MergeListsNode list1, Node list2 { if list1 == null return list2; if list2 == null return list1; if list1.data list2.data { list1.next = MergeListslist1.next, list2; return list1;

  • 在Python中使用自定义Qt子类

    PyQt通过SIP将C 代码公开给Python ;PySide通过Shiboken这样做

  • 就地基数排序

    好吧,这是DNA的MSD基数排序的简单实现。它是用D语言编写的,因为这是我使用最多的语言,因此最不可能犯傻错误,但是可以轻松地将其翻译为其他语言。它就位,但是需要2 * seq.length通过数组。 void radixSortstring[] seqs, size_t base = 0 { ifseqs.length == 0 return;

  • 使用单个main执行多个python文件

    将它们用作模块并将其导入包含main的脚本中。 import one import two import three if __name__ == '__main__': one.foo two.bar three.baz

  • Eratosthenes筛-X和N之间的质数

    您借用的实现可以从3开始,因为它通过跳过所有偶数来代替筛选2的倍数;这就是2*…代码中多次出现的内容。3是下一个质数的事实在所有地方也都进行了硬编码,但暂时我们可以忽略它,因为如果您无法通过2的特殊包装,则3的特殊包装无所谓。 跳过偶数是“转轮”的特例。您可以通过始终增加2来跳过筛选2的倍数;您可以通过交替增加2和4来跳过筛分2和3的倍数;您可以通过依次递增2、4、2、4、6、2、6…(顺序中有48个数

  • 通过代理安装python模块

    设置以下环境变量: HTTP_PROXY=http:user:password@your-company-proxy.com:8080 以及 HTTPS_PROXY=http:user:password@your-company-proxy.com:8080 如果代理端口不是8080,则也应使用适

  • 正则表达式对等

    要测试等效性,您可以计算表达式的最小DFA并进行比较。

  • 使用imshow校正轴

    尝试将参数添加aspect='auto'到中imshow。像这样: pylab.imshowSLP,aspect='auto',origin='lower',extent=ff.min,ff.max,AA.min,AA.max

  • 链表分区功能和反向结果

    这是基于延续的版本。它是尾递归的,并以原始顺序返回列表。 let partitionWhileCps c l = let rec aux f = function | h::t when c h - aux fun acc, l - f h::acc, l t | l - f [], l aux id l 以

  • 套接字关闭并重新绑定-如何避免长时间等待?

    我不确定如何在Python中执行此操作,但是您想设置SO_REUSEADDR套接字选项。

  • 用C ++实现的Radix Sort

    我认为您的解决方案过于复杂。您可以使用输入中接收到的单个数组来实现基数,并且每个步骤中的存储桶都由一个索引数组来表示,这些索引标记了输入数组中每个存储桶的起始索引。 实际上,您甚至可以递归地执行此操作: Sort 'size' number of integers starting at 'input' according to the 'digit'th digit For the

  • 用Python加密字符串

    我通过使用在ASPN上找到的轻量级XTEA库解决了此问题。它不需要任何其他Python库,并且在实现合理的加密级别的同时非常易于实现。

  • 删除'#include '不破坏代码

    它起作用的原因是因为还包含了一个标头。 例如,向量可能在其源代码中包含算法。这很常见,因为它们通常仅是标头。 也就是说,您不能依赖标准库的特定实现在每个标头中具有相同的包含。(例如与可能与MSVC一起使用,而与gcc stdlibc +++可能会中断)。 由于这个原因,我强烈建议包括您使用的内容,而不管它在哪里编译。-–请注意,这与“您引用的内容”略有不同,因为在标头中对点和引用的正向声明可以

  • 使用Scala查找质数。帮我改善

    样式在我看来不错。尽管Eratosthenes筛网是查找质数的一种非常有效的方法,但是您的方法也很有效,因为您仅测试与已知质数的除法。但是,您需要当心- 您的递归函数不是尾递归。尾部递归函数不会修改递归调用的结果- 在您的示例中,您将优先执行递归调用的结果。这意味着您将拥有一个长调用堆栈,因此findPrime将不适用于大型i。这是尾递归的解决方案。 def primesUnder

  • 扭曲:如何在初始连接时识别协议,然后委派给适当的协议实现?

    与其在整个协议实现过程中混合决策逻辑,不如将它放在一个地方。 class DecisionProtocolProtocol: def connectionMadeself: self.state = "undecided" def makeProgressTowardsDecisionself, bytes: # Do some stuff, even

  • BigInteger的StackOverflowError计算阶乘?

    这里的问题似乎是由于过多的递归导致堆栈溢出(5000个递归调用看起来像是要炸掉Java a href="http:en.wikipedia.orgwikiCall_

  • 如何在SQLAlchemy中按多对多关系进行排序?

    如您所述,上述解决方案不起作用的真正原因是joinedload标题中的。您可以采取以下措施: 选项1:joinedload对此查询禁用 q = db.session.queryPost, func.countlikes.c.user_id.label"total" .optionslazyloadPost.

  • 熄灭游戏算法

    有一个基于GF(2)的高斯消除的标准算法可以解决此问题。这个想法是建立一个代表按钮的矩阵,该矩阵按下代表灯的列向量,然后使用标准矩阵简化技术确定要按下的按钮。它以多项式时间运行,不需要任何回溯。 我有一个执行这个算法,包括它是如何工作可在我的个人网站的数学描述。希望对你有帮助!

  • 依次找到k个最大元素

    一种选择是: 使用中位数中位数或内向排序之类的线性时间选择算法,找到第k个最大元素,然后重新排列这些元素,以便从第k个元素开始的所有元素都大于第k个元素。

  • 将两个Spark mllib管道连接在一起

    Pipeline或PipelineModel有效PipelineStages,并且这样可以合并为一个Pipeline。例如: from pyspark.ml import Pipeline from pyspark.ml.feature import VectorAssembler df = spark.cr

  • 如何在Matlab中找到连接的组件?

    建立图表并使用 graphconncomp G = sparse A:,1, A:,2, 1, maxA:, maxA: ; G = G + G.'; %' make graph undirected [S C] = graphconncomp G ; % find connected components

  • Python程序将列表分为两个具有交替元素的列表

    seq如您所说,如果是列表,则: def zigzagseq: return seq[::2], seq[1::2] 如果seq是完全通用的可迭代对象,例如生成器: def zigzagseq: results = [], [] for i, e in enumerate

  • 使用openpyxl查找隐藏的单元格

    工作表具有row_dimensions和column_dimensions对象,其中包含有关特定行或列的信息,例如是否隐藏它们。列的尺寸也可以分组,因此在查看时需要考虑到这一点。

  • 平面图布局

    对于一般图,确定具有最小边交叉(图Crossing Number)的图的平面布局的问题是NP- 难的。因此,使用了一些启发式方法(例如基于Force的布

  • Python程序检查简单括号的匹配

    下面是执行此操作的一种非常优雅的方法。它清除for循环,并用简单的计数器变量替换列表。如果计数器降到零以下,它也会返回false,以便matched""返回False。 def matchedstr: count = 0 for i in str: if i == "": count += 1

  • 如何找到整数的第n个根?

    一个解决方案首先通过重复将hi乘以2直到n在lo和hi之间,将lo和hi之间的答案括起来,然后使用二进制搜索来计算确切的答案: def irootk, n: hi = 1 while powhi, k n: hi *= 2 lo = hi 2 while hi - lo 1: mid = lo + hi 2

  • 用逗号分隔字符串列表

    您需要使用list.extend而不是list.append。 newlist = [] for word in lines: word = word.split"," n

  • 将数组中的元素随机化?

    我之前写过这篇文章,恰好适合您的需求。我相信ojblass指的是Fisher-Yates洗牌: Array.prototype.shuffle = function { var i = this.length; while --i { var j = Math.floorMath.random * i + 1 var temp = this[i];

  • Windows命令提示符下的Python 3.6中未找到模块错误

    默认情况下,python仅搜索当前目录。因此,您需要添加一点路径。 在模块2中: import sys sys.path.append'C:\PathTo\project\package1' import module1 那应该可以解决您遇到的问题。

  • 根据使用频率随机生成字母?

    我假设您将频率存储为0到1之间的浮点数,总计为1。 首先,您应该准备一个累积频率表,即该字母及其之前所有字母的频率之和。 为简化起见,如果从此频率分布开始: A 0.1 B 0.3 C 0.4 D 0.2 您的累积频率表将为: A 0.1 B 0.4 = 0.1 + 0.3 C 0.8

  • 如何在J2ME中分割字符串?

    J2ME有一些StringTokenizer类的实现。这一个Ostermiller将最有可能包括你所需要的功能 有关某些修改和以下示例,另请参a href="http:mobilepit.com06solution- stringtokenizer-in-j2me-javame-midlets