数据结构与算法
文章平均质量分 67
Dylan、
Wubba Lubba dub dub
展开
-
leetcode题解-122.买卖股票的最佳时机
题目leetcode题解-122.买卖股票的最佳时机题目详情给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例 1:输入: [7,1,5,3,6,4]输出: 7解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5-1 = 4 。 随后原创 2021-07-04 19:48:09 · 1504 阅读 · 3 评论 -
下面的7个算法与本章的二分搜索算法binarySearch略有不同。请判断这7个算法的正确性。如果算法不正确,请说明产生错误的原因;如果算法正确,请给出算法的正确性证明
分治法2-2 下面的7个算法与本章的二分搜索算法binarySearch略有不同。请判断这7个算法的正确性。如果算法不正确,请说明产生错误的原因;如果算法正确,请给出算法的正确性证明。(1)与主教材中的算法binarySearch相比,数组段左、右游标left和right的调整不正确,导致陷入死循环(2)与主教材中的算法binarySearch相比,数组段左、右游标left和right的调整不正确,导致当x=a[n-1]时返回错误。(3)与正确算法binarySearch5相比,数组段左、右游原创 2021-05-05 23:03:23 · 4208 阅读 · 0 评论 -
回溯算法思想解决棋盘等问题
深度优先搜索算法利用的是回溯算法思想。这个算法思想非常简单,但是应用却非常广泛。它除了用来指导像深度优先搜索这种经典的算法设计之外,还可以用在很多实际的软件开发场景中,比如正则表达式匹配、编译原理中的语法分析等。除此之外,很多经典的数学问题都可以用回溯算法解决,比如数独、八皇后、0-1 背包、图的着色、旅行商问题、全排列等等。如何理解“回溯算法”?在人们的一生中,会遇到很多重要的岔路口。在岔路口上,每个选择都会影响今后的人生。有的人在每个岔路口都能做出最正确的选择,最后生活、事业都达到了一个很高的高度原创 2021-03-13 11:37:17 · 2118 阅读 · 0 评论 -
DDA直线生成算法
计算机图形学是研究怎样用数字计算机生成、处理和显示图形的一门学科。DDA数字微分分析 Digital Differential Analyzer一、预备知识屏幕坐标系屏幕左上角为(0,0)经改造的二维笛卡尔坐标系直线的生成算法在光栅显示器的荧光屏上生成一个对象,实质上是往帧缓存寄存器的相应单元中填入数据。画一条从(x1, y1)到(x2, y2)的直线,实质上是一个发现最佳逼近直线的象素序列,并填入色彩数据的过程。这个过程也称为直线光栅化。DDA经典生成直线算法????C#绘图环原创 2021-01-27 22:25:53 · 1905 阅读 · 0 评论 -
数据结构与算法-哈希算法-Hash函数&装载因子&动态扩容
Hash函数的确定通过前面学习到, Hash表的查询效率并不是 O(1),它与 Hash函数、散列冲突等因素有关。如果 Hash函数确定得不好,可能导致散列冲突概率升高,查询效率下降。那么,该如何设计 Hash函数呢?首先, Hash函数一般设计得不要过于复杂,过于复杂的 Hash函数会导致计算时间过多,从而影响散列表的性能;其次, Hash函数生成的值要尽可能随机并且均匀分布,这样才能避免或者最小化散列冲突,而且即使出现冲突,散列到每个槽中的数据也会比较平均,不会导致某些槽中的数据过多,而另一转载 2021-01-04 14:53:23 · 2532 阅读 · 0 评论