Tag: 语言不可知的

最长的子序列

给定一个input序列,find最长(不一定是连续的)非递减子序列的最好方法是什么? 0, 8, 4, 12, 2, 10, 6, 14, 1, 9, 5, 13, 3, 11, 7, 15 # sequence 1, 9, 13, 15 # non-decreasing subsequence 0, 2, 6, 9, 13, 15 # longest non-deceasing subsequence (not unique) 我正在寻找最好的algorithm。 如果有代码,Python会很好,但任何事情都可以。

以编程方式减轻颜色

动机 我想find一个方法来采取任意的颜色,并减轻一些阴影,所以我可以编程方式创build一个从一个颜色到一个更轻的版本的一个很好的渐变。 渐变将用作UI中的背景。 可能性1 很明显,我可以分开RGB值,并逐个增加一定的数量。 这实际上是我想要的吗? 可能性2 我的第二个想法是将RGB转换为HSV / HSB / HSL(色相,饱和度,数值/亮度/亮度),稍微提高亮度,稍微降低饱和度,然后将其转换回RGB。 这会有一般的预期效果吗?

尝试尽可能简单地描述多态性

多态如何以易于理解的方式来描述? 我们可以在互联网和书籍上find很多关于这个主题的信息,比如Type多态 。 但是,我们尽可能简单地做到这一点。

链接列表在什么情况下有用?

大多数时候,我看到人们尝试使用链表,在我看来,像一个穷人(或非常贫穷)的select。 也许探索一个链表是不是数据结构的好select的情况是有用的。 理想情况下,答案将阐述在select数据结构时使用的标准,以及在特定情况下哪些数据结构可能工作得最好。 编辑:我必须说,不仅数量,而且答案的质量都令我印象深刻。 我只能接受一个,但如果事情好一些的话,还有两三个我不得不说的是值得接受的。 只有一对(尤其是我最终接受的那个)指出了链接列表提供了真正优势的情况。 我认为,史蒂夫·杰索普(Steve Jessop)应该得到某种荣誉提名,不仅提出了一个,而且提出了三个不同的答案,所有这些都给我留下了深刻的印象。 当然,即使它仅作为评论发布,并不是一个答案,但我认为尼尔的博客作品也非常值得一读 – 不仅仅是内容丰富,而且相当有趣。

加载骰子的数据结构?

假设我有一个n边加载的模子,当我滚动它时,每个边k有一些概率pk 。 我很好奇,如果有一个很好的algorithm来静态存储这个信息(即对于一组固定的概率),这样我就可以高效地模拟一个随机掷骰子。 目前,我有一个O(LG)的解决scheme,这个问题。 这个想法是为所有k存储一个前k个边的累积概率表,它们在[0,1)范围内产生一个随机实数,然后在表上进行二分search,得到最大的累积索引值不大于选定的值。 我更喜欢这个解决scheme,但运行时不考虑概率似乎很奇怪。 特别是在极端情况下,一方面总是出现或者价值是均匀分布的,可能使用一种简单的方法在O(1)中生成滚动的结果,尽pipe我的解决scheme仍然需要对数很多的步骤。 有没有人有任何build议,如何解决这个问题的方式是在某种程度上“适应”在运行时? 编辑 :基于这个问题的答案,我写了一篇文章,描述了这个问题的许多方法 ,以及他们的分析。 它看起来像Vose的别名方法的实施给予Θ(n)预处理时间和O(1)时间每个die roll,这真是令人印象深刻。 希望这是对答案中包含的信息的有益补充!

教新手入门的最佳方法?

原来的问题 我目前正在教我的哥哥编程。 他是一个初学者,但很聪明。 (而他实际上是想学习)。 我注意到,我们的一些会议已经陷入了一些细节,我不觉得自己组织得很好。 ( 但这个post的答案帮了很多。 ) 我能更好地教他有效的方法吗? 有没有一个逻辑顺序,我可以用概念概念贯穿概念? 有没有复杂性,我应该避免以后? 我们正在使用的语言是Python ,但欢迎任何语言的build议。 如何帮助 如果你有好的,请在你的回答中join以下内容: 初学者练习和项目想法 初学者教学资源 Screencasts /博客文章/免费电子书 打印适合初学者的书籍 请描述资源和链接,以便我可以看看。 我希望每个人都知道我确实使用了这些想法。 您的意见将汇总在这个职位。 为初学者提供在线资源 : 使用Python进行编程的简单介绍 如何像电脑科学家一样思考 爱丽丝:初学者的3D程序 Scratch(开发编程技巧的系统) 如何devise程序 计算机程序的结构和解释 学会编程 罗伯特·雷德如何成为一名程序员 微软XNA 产生下一代黑客 COMP1917由Richard Buckland 撰写的高等计算讲座 (需要iTunes) 潜入Python Python Wikibook 欧拉项目 – 样本问题(主要是math) pygame – 创build游戏的一个简单的python库 用Python发明自己的电脑游戏 编程的基础超越基础的下一步。 例如吱吱作响 蛇为孩子而战 (这不仅仅是为了孩子!) 推荐打印书籍教学初学者 加速C […]

什么是好的散列函数?

什么是一个好的哈希函数? 我在大学的数据结构课程中看到了很多散列函数和应用程序,但是我大部分都知道要做一个好的散列函数是相当困难的。 作为避免碰撞的经验法则,我的教授说: function Hash(key) return key mod PrimeNumber end (mod是C和类似语言中的%运算符) 质数是散列表的大小。 我觉得这是一个比较好的避免碰撞和快速的function,但是我怎样才能做出更好的? string键对数字键有更好的散列函数吗?

algorithm来生成一个填字游戏

给出一个单词列表,你将如何去安排他们到填字游戏网格? 它不必像是一个对称或类似的“适当的”纵横字谜:基本上只是输出每个单词的起始位置和方向。 会有Java的例子吗?

通过引用传递或通过值?

在学习一门新的编程语言时,可能遇到的障碍之一就是这个语言默认是按值传递还是按引用传递的问题 。 所以,这是我的问题,以你最喜欢的语言向你们所有人怎么做? 有什么可能的陷阱 ? 当然,你最喜欢的语言可以是你曾经玩过的任何东西: stream行的 , 晦涩的 , 深奥的 , 新的 , 旧的 …

为给定的string生成所有唯一的子string

给定一个strings ,生成一组所有唯一子串的最快方法是什么? 例如:对于str = "aba"我们将得到substrs={"a", "b", "ab", "ba", "aba"} 。 最初的algorithm是在每次迭代中遍历整个string长度为1..n子串,产生一个O(n^2)上界。 是否有更好的界限? (这在技术上是功课,所以指针也是受欢迎的)