Tag: algorithm

从旧+ n米计算新的经度,纬度

我想创build2个新的经度和2个新的纬度,以米为单位的坐标和距离,我想围绕某个点创build一个漂亮的边界框。 它的小规模,最大1500米+和1500米 – 。 所以这是一个城市的一部分,我不认为地球的曲线必须考虑在内。 所以我有50.0452345(x)和4.3242234(y),我想知道x + 500meter,x-500meter,y-500meter,y + 500meter 我发现了很多algorithm,但几乎所有的algorithm似乎都处理点之间的距离。

如何将一个矩形缩放到另一个矩形内的最大尺寸?

我有一个源矩形和一个目标矩形。 我需要find在拟合目标矩形的同时可以缩放信号源的最大比例,并保持其原始高宽比 。 谷歌find了一个办法,但我不知道它是否适用于所有情况。 这是我家酿的解决scheme: 计算每个矩形的高度/宽度。 这给出了对angular线msrc和mdest 。 如果msrc < mdst ,则缩放源宽度以适合目标宽度 (以及相同比例的缩放高度) 否则,缩放源高度以适合目标高度 (以相同的比例缩放宽度) 寻找其他可能的解决scheme来解决这个问题 我甚至不确定我的algorithm是否适用于所有情况!

QuickSort最糟糕的情况 – 何时会发生?

在分析QS时,每个人总是指“几乎sorting”的最坏情况。 什么时候自然input会出现这种情况? 我提出的唯一例子是重新编制索引。

algorithm/数据结构devise面试问题

什么是一些简单的algorithm或数据结构相关的“白板”问题,你在候选人筛选过程中发现有效? 我有一些简单的,我用来validation解决问题的技巧,可以简单地expression,但有一些启发式应用的机会。 我用于初级开发人员的基本知识之一是: 编写一个C#方法,该方法接受一个包含一组单词(一个句子)的string,并将这些单词旋转X个右侧的位置。 当句子的最后一个单词被旋转时,它应该出现在结果string的前面。 当候选人回答这个问题,我看他们可以使用.NET数据结构和方法(string.Join,string.Split,List等等)来解决这个问题。 我也寻找他们来确定优化的特殊情况。 像单词需要旋转的次数不是真的X,它是X%的单词数量。 你用来面试候选人的一些白板问题是什么,以及你在答案中寻找什么东西(不需要发布实际答案)。

地理围栏 – 指向内部/外部多边形

我想确定一个多边形,并实现一个algorithm来检查一个点是否在多边形的内部或外部。 有谁知道是否有任何类似的algorithm可用的例子吗?

对heapsort的直观理解?

在学校,我们正在学习使用Java进行sortingalgorithm,而我的作业是堆sorting(Heap Sort)。 我做了自己的阅读,试图尽可能多地找出答案,但看来我无法理解这个概念。 我不是要求你给我写一个Java程序,如果你可以简单地向我解释一下堆分类是如何工作的。

计算给定长度string可能的最大运行次数

几个星期前,Lembik 问了下面的问题: 一个stringw周期p是任何正整数p ,使得无论何时定义该方程的两边, w[i]=w[i+p] 。 令per(w)表示per(w)的最小周期的大小。 我们说一个stringw是周期性的if per(w) <= |w|/2 。 所以非正式的一个周期性的string就是一个由另一个string组成的string,它至less被重复一次。 唯一的麻烦是,在string的末尾,我们不需要重复string的完整副本,只要它至less重复一次。 例如,考虑stringx = abcab 。 per(abcab) = 3因为x[1] = x[1+3] = a , x[2]=x[2+3] = b并且没有更小的周期。 stringabcab因此不是周期性的。 然而,stringababa是周期性的per(ababa) = 2 。 更多的例子, abcabca , ababababa和abcabcabc也是周期性的。 对于那些喜欢正则expression式的人来说,这个检测string是否是周期性的: \b(\w*)(\w+\1)\2+\b 其任务是在一个更长的string中查找所有最大的周期性子string。 这些在文献中有时被称为运行 。 w[i,j]的子串w[i,j]是周期性的最大周期子串(run), w[i-1] = w[i-1+p]也不w[j+1] = w[j+1-p] 。 非正式地说,“跑”不能包含在同一时期的一个更大的“跑”中。 由于两次运行可以表示在整个string中不同位置出现的相同string,我们将按间隔表示运行。 上面的定义是按照区间重复的。 一个stringT中的运行(或最大周期性子string)是一个区间[i…j]其中j>=i , […]

优化重叠矩形的绘制

我有大量的矩形,有些与其他的重叠; 每个矩形都有一个绝对的z次序和一个颜色 。 (每个“矩形”实际上是粒子效果,网格或纹理的轴alignment的边界框,并且可能是半透明的,但只要不尝试挑选其他矩形,就更容易抽象地思考彩色矩形,所以我会用在问题描述:) 改变“颜色”的成本相当高; 其绘制两个蓝色矩形比绘制两个不同颜色的矩形要快得多。 甚至不在屏幕上绘制矩形的成本也相当高,应该避免。 如果两个矩形不重叠,它们相对于彼此的顺序并不重要。 只有它们重叠时,z顺序才是重要的。 例如: 1(红色)和4(红色)可以一起绘制。 2(蓝色)和5(蓝色)也可以绘制在一起,如3(绿色)和7(绿色)。 但是8(红色)必须在6(蓝色)之后绘制。 所以要么我们把所有的三个红色画在一起,画两个蓝色,要么把所有的蓝色画在一起,画两个红色。 而且有些矩形可能会偶尔移动。 (不是所有的人都知道,有些矩形是静止的,有些则是已知的。) 我将在JavaScript / webGL中绘制这个场景。 我怎样才能以合理的顺序绘制矩形, 以最大限度地减less颜色变化 ,与JavaScript剔除代码的良好折衷与让GPU剔除? (只是算出哪些矩形重叠,哪些是可见的,是昂贵的,我有一个基本的四叉树 ,这很快就绘制了我的场景(相比之下,只是发射整个场景的绘制操作);现在的问题是如何最小化OpenGL状态更改并尽可能地连接属性数组) 更新我创build了一个非常简单的testing应用程序来说明问题,并作为解决scheme演示的基础: http : //williame.github.com/opt_rects/ 源代码在github上,很容易分叉: https : //github.com/williame/opt_rects 事实certificate,很难做出一个足够的状态变化的小testing应用程序来真正重现我在整场游戏中看到的问题。 在某些时候,你必须把它看作是一种状态变化足够昂贵的情况。 同样重要的是如何加快空间索引(演示中的四叉树)和整体方法。

给定一组正整数和负整数,重新排列它,使得一端为正整数,另一端为负整数

我最近遇到了一个软件工程师的Microsoft面试问题。 给定一组正整数和负整数,重新排列它,使得一端为正整数,另一端为负整数, 但保持其原有排列顺序。 例如,给定[1, 7, -5, 9, -12, 15] 答案是: [-5, -12, 1, 7, 9, 15] 这应该在O(n)中完成。 我们可以很容易地在O(n)中做到这一点,但是我不能像在原始数组中那样维护元素的顺序。 如果我们忘记了O(n)的复杂性,有人能告诉我如何在不考虑空间和时间复杂性的前提下保持元素的顺序。 编辑 :在实际的问题,我们需要有O(1)空间的复杂性也。

哈希:它是如何在内部工作的?

这可能听起来像一个非常模糊的问题,但事实并非如此。 我已经通过维基上的哈希函数描述,但它不是很有帮助的理解。 我正在寻找像Hashing这样相当复杂的主题的简单答案。 这是我的问题: 哈希是什么意思? 它如何在内部工作? 它遵循什么algorithm? HashMap , HashTable和HashList什么HashList ? “恒定时间复杂度”是什么意思,为什么散列的不同实现给定时间操作? 最后,为什么在大多数面试问题中, Hash和LinkedList被问到,从testing受访者的知识来看,有没有什么特定的逻辑? 我知道我的问题清单很大,但是如果我能够清楚地回答这些问题,我真的很感激,因为我真的很想理解这个话题。