Questions tagged «algorithms»

在数学和计算机科学中,算法是一种有效方法,表示为用于计算函数的定义明确的指令的有限列表。算法用于计算,数据处理和自动推理。

5
线段旅行的面试难题
在length为的数字行上M,其中0 < M <= 1,000,000,000您给N(1 < N <= 100,000)整数对点。在每对中,第一个点表示对象当前所在的位置,第二个点表示对象应移动到的位置。(记住的second一点可能是更小的比first)。 现在,假设您从这一点开始,0并有一个可以容纳1物体的推车。您希望将所有对象从其初始位置移动到各自的最终位置,同时沿数字线移动最短距离(而不是位移)。你必须结束点M。 现在,我一直试图将这个问题简化为一个更简单的问题。老实说,我什至都没有想到过蛮力(可能贪婪)的解决方案。但是,我的第一个想法是将后退运动退化为两个前进运动,但这似乎并非在所有情况下都有效。 我3在这里绘制了这些样本测试用例: 第一个测试用例的答案是12。首先,您red在位置拿起物品0。然后移动到点6(距离= 6),red暂时放下该项目,然后拿起该green项目。然后,您移至点5(距离= 1)并放下该green项目。然后,您移至点6(distance = 1)并拾取放置的red项目,移至点9(distance = 3),然后移至点10(distance = 1)以完成序列。 行驶的总距离为6 + 1 + 1 + 3 + 1 = 12,这是最小的可能距离。 12我相信其他两种情况的答案是。但是,我找不到解决该问题的一般规则。 任何人有任何想法吗?
10 algorithms  math 

4
使用数据结构的算法与使用数据库的算法之间有什么区别?
一般问题 使用数据结构的算法与使用数据库的算法之间有什么区别? 一些背景 这个问题困扰了我一段时间,而我却无法给出令人信服的答案。 目前,我正在努力加深对当然会大量涉及数据结构的算法的理解。这些是基本结构,例如袋,队列,堆栈,优先级队列和堆。 我还每天使用数据库来存储最终用户已处理和提交或程序处理过的数据。我通过DAL检索和提交数据,该DAL具有自己的数据结构,该结构是根据数据库中的表生成的。 当我可以选择使用数据库对数据进行排序以按升序/降序将其发送回给我或检索并将数据加载到我的逻辑中,在优先级队列中处理此数据并进行堆排序时,我的问题就来了所有的。或者另一种方法是使用数据库搜索记录,而不是加载记录的子集并使用诸如二进制搜索之类的方法来查找我感兴趣的一个或多个记录。 在我看来,由于通信成本很高,因此在发送数据库端之前,我将尝试在数据库端进行尽可能多的操作。这也使我想知道您何时使用严格在自己的逻辑内定义的算法和数据结构,而不是处理数据库而不是数据库的数据? 所以这是问题... 问题 数据结构和数据库之间有什么区别? 我们什么时候使用的算法仅使用您自己的逻辑而不是数据库逻辑定义的数据结构? @Harvey发表:什么时候数据库中的方法变得比您自己的逻辑中的方法效率低? @mirculixx帖子:什么使方法有效? @Harvey帖子:处理具有数据结构的数据比在数据库中处理数据更快? 澄清说明 @Grant帖子:我通常使用的数据库是关系数据库,这些问题来自于它们的使用。但是,我确实认为这些问题适用于任何持久性框架(当我说框架时,我的意思是最一般的意义)。 我知道没有特定上下文的答案很难。我正在寻找有想法的食物,建议或讨论要点,将不胜感激!

5
什么是好的快速算法刷新?[关闭]
按照目前的情况,这个问题并不适合我们的问答形式。我们希望答案得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 我有几个星期要进行编程采访。我前一段时间参加了算法课程,但可能忘记了一些关键概念。 我正在寻找一本关于算法的非常短的书(<100页),以使自己重新入门。排序算法,数据结构和任何其他要领都应包括在内。不必一定是书...只是想找到一种很好的方式来赶上一周的学习时间。 快速入门或复习算法的最佳工具是什么?

4
在半径范围内寻找房屋
在一次采访中,我被问到以下信息:一个房地产应用程序,列出了给定距离内(例如,用户希望在20英里内找到所有房屋)当前在市场上(即待售)的所有房屋,您将如何设计应用程序(数据结构和对数)以构建此类服务? 有任何想法吗?您将如何实施?我告诉他,我不知道,因为我之前从未做过任何与地理相关的事情。

3
高效的公交车装载
这是我很久以前为一家公交旅行公司所做的事情,但我对结果并不满意。我最近在考虑那个旧项目,以为我会重新考虑这个问题。 问题: 巴士旅行公司有几辆载客量不同的巴士(例如15辆50座客车,25辆30座客车...等)。他们专门为大型团体(每团体300多名乘客)提供交通服务。由于每个团队都需要一起旅行,因此他们需要有效地管理其车队以减少浪费。 例如,三辆30座客车(2个空座位)要比2座50座客车(12个空座位)更好地服务88位乘客。再举一个例子,一架50人座的公共汽车和30人座的公共汽车(混合类型)将为75名乘客提供更好的服务。 有什么好的算法可以做到这一点?
10 algorithms 

5
提高对大文件的grepping的性能
我有FILE_A有30万行,而FILE_B有3000万行。我创建了一个Bash脚本,将FILE_A中的每一行都移到FILE_B中,并将grep的结果写入新文件。 整个过程耗时超过5个小时。 如何提高脚本的性能? 我正在使用grep -F -m 1grep命令。FILE_A看起来像这样: 123456789 123455321 FILE_B是这样的: 123456789,123456789,730025400149993, 123455321,123455321,730025400126097, 因此,对于Bash,我有一个while循环,可以在FILE_A中选择下一行,然后在FILE_B中进行抓取。在FILE_B中找到该模式后,我将其写入文件result.txt。 while read -r line; do grep -F -m1 $line 30MFile done < 300KFile

3
可以使用哪种算法来实现合理的下一个单词预测?
实现“下一个单词预测”的好方法是什么?例如,用户键入“我是”,并且系统建议“ a”和“ not”(或其他可能)作为下一个单词。我知道一种使用马尔可夫链和一些训练文本(显然)来或多或少地实现这一目标的方法。但是我在某处读到,该方法非常严格,适用于非常简单的情况。 我了解神经网络和遗传算法的基础知识(尽管从未在严肃的项目中使用过它们),也许它们可能会有所帮助。我想知道是否有任何算法可以在给定适当的培训文本(例如报纸文章和用户自己的打字)的情况下为下一个单词提出合理适当的建议。如果没有(链接到)算法,则欢迎使用一般的高级方法来解决此问题。

4
当前是否有针对软件工程的任何现代,标准化的能力测试?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,以使它成为软件工程堆栈交换的主题。 6年前关闭。 背景 我是一名在职软件工程师,正在寻找下一年左右的新合同。在搜索中,我遇到了一些荒谬的技术采访,正如我今天早些时候提出的这个受欢迎的问题所表明的那样。 即使我被问到的问题并不总是荒谬的,但我还是会因针对各种合同机会多次回答而感到疲倦。 因此,这让我想到,进行工作的软件专业人士可以参加的标准化考试将提供一个通用的计分卡,面试官可以代替普通的技术面试问题(即书呆子混浊)来参考。 题 是否有可供工作的专业人员使用的标准化软件工程能力测验(SEAT ??)? 如果没有这样的考试,应该涵盖哪些问题或主题? 一个额外的想法 如果要提一个问题或话题,请记住要关注与当代发展实践和员工现实需求相关的问题或话题,因为这将是标准能力倾向测试的重点。换句话说,没有小丑遍历的问题。

1
图形程序员如何处理不更改图像的渲染顶点?
因此,标题有点尴尬。我将提供一些背景信息,然后提出我的问题。 背景:我是一名Web GIS应用程序开发人员,但在业余时间我一直在玩地图渲染和改进数据交换格式。我仅在2D空间中工作。 我遇到的一个有趣的问题是,当您以小比例绘制多边形(放大的出路)时,许多顶点是多余的。一个极端的情况是,您有一个具有500,000个顶点的多边形,仅占用一个像素。如果要将这些数据发送到浏览器,则可以忽略其中大约499,999个顶点。我们实现这一目标的一种方法是在服务器上渲染图像并将其作为PNG发送:瞧,这很重要。不过,有时我们还是希望将数据发送到浏览器,然后在其中可以使用SVG(或canvas或webgl)对其进行呈现,以便可以进行交互。 问题:事实证明,使用现代地理数据集,很容易使SVG的渲染功能超负荷。为了解决这些限制,我试图找出如何在视觉上无损地减少给定比例尺和地图范围(以及必要时已知地图像素的宽度和高度)的数据集。 仅使用Douglas-Peucker算法,我的数据量就大大减少了,我相信我能够将其保持在一个像素以内,使多边形真实。不幸的是,道格拉斯·皮克(Douglas-Peucker)没有保留拓扑,因此改变了多边形之间边界的渲染方式。我无法轻易找到其他算法来尝试并适应该目的,但是我没有太多的CS /算法背景,如果我看过它们,可能会认不出来。

6
受益于在GPU上运行的通用算法示例?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 5年前关闭。 我正在寻找通用算法(与图形无关)的示例,这些算法已被证明在GPU上比在CPU上运行快一个数量级。我将使用这些示例来创造性地考虑可以在GPU上实现的其他算法。

3
有用于安排比赛对战的已知算法吗?
只是想知道是否已经有一个比赛调度算法可供我使用,甚至可以稍作调整。 这是我的要求: 属于不定数量的球队/俱乐部的不定数量的对手必须与一个对手配对 两个对手不能来自同一个俱乐部 如果有奇数个玩家,则随机选择其中之一进行再见 与这种需求集相关的任何算法都将受到赞赏。 编辑:我只需要最多运行一次,为比赛的第一轮创建对战。
10 algorithms 

4
快速算法,用于搜索排序的浮点数组,以找到将输入值括起来的一对浮点
我有一个浮点数组,从最小到最大排序,并且需要能够选取大于或小于传递的输入值的最近浮点。此输入值不一定要作为数组中的值存在。 天真的方法是对数组进行简单的线性搜索。可能看起来像这样: void FindClosestFloatsInArray( float input, std::vector<float> array, float *min_out, float *max_out ) { assert( input >= array[0] && input < array[ array.size()-1 ] ); for( int i = 1; i < array.size(); i++ ) { if ( array[i] >= input ) { *min = array[i-1]; *max = array[i]; } …
10 c++  algorithms 

7
N皇后区,X由Y董事会决定问题面试问题
今天在一次采访中有人问我以下问题,从那以后我一直在思考。我无法回答,也无法在线找到解决方案。 给定一个棋盘尺寸为X乘以Y和N个皇后的棋盘,请确定是否有可能将这些皇后安排在棋盘上,以使它们不会互相攻击。 具有2个皇后的2 x 3电路板确实有解决方案,因此算法将返回true: Q . . . . Q 我正在寻找一种解决这个难题的编程方法,例如,不仅仅是纸上解决难题的方法。

3
学习如何在InterviewStreet上解决问题的好方法[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,以使它成为软件工程堆栈交换的主题。 4年前关闭。 已锁定。该问题及其答案被锁定,因为该问题是题外话,但具有历史意义。它目前不接受新的答案或互动。 可能重复: 如何适应面试前的挑战性问题? InterviewStreet是一家新公司,从本质上讲是公司寻找可以编码的程序员的过滤器。我的问题是我的数学还很弱,我想研究一下,即使它是从头开始的,也能够解决在他们的网站上发现的诸如此类的问题: Find the no of positive integral solutions for the equations (1/x) + (1/y) = 1/N! (read 1 by n factorial) Print a single integer which is the no of positive integral solutions modulo 1000007 现在,请不要发布该问题的答案,它直接来自InterviewStreet,不应在此处发布。这不是我在此线程中寻求的答案。我要问的是一个更基本的问题,SO社区中的某些黑客可能会回答。 如何为这样的问题做准备?我可以使用哪些资源来学习/学习如何解决此类问题?麻省理工学院开放式课件涵盖了这一点吗?可汗学院?有什么特别的书吗?我什至不确定从哪里开始着手解决上述问题,我想学习可以采取哪些步骤。

2
B树与R树相比-是不是一堆链接在一起的链表?
我对B树非常熟悉,主要是必须使数据库充满电力,空调和硬盘空间。我与一个双(doubl [ie,ey]?)链接列表相关联。 今天,午餐时的一位开发人员提到了R树。 我跳上维基百科,开始阅读。这听起来像高大的B树。不幸的是,由于缺乏深厚的数学背景,很难理解我的一些同事在谈论什么。 我希望有人能阐明B树和R树之间的一些区别。无论如何,我可能最终都会问这些家伙,但是不能保证他们会回答我的问题。他们很有可能会开始对上帝God不休,知道什么。。。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.