![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 94
害你加班的BUG都是我写的
热爱编程
展开
-
跳表的实现 Java
一、什么是跳表?我们经常可以看到跳表这个词,但是却对里面的数据结构缺乏了解。相比于红黑树,跳表本身是一种基于链表的数据结构,所以他本身的插入和删除效率很高,而查找效率和红黑树相当,都是O(log2n)O(log_2n)O(log2n)。我们来看一下跳表的结构可以明显看到,跳表就是一种典型的以空间换时间的数据结构。该算法与哈希算法的另一个区别就是:哈希算法不会保存数据的顺序,而跳表内的所有元素都是排序的。因此对于跳表进行遍历会得到一组有序的数据。在JDK内部,也使用了该数据结构,比如Concurr原创 2020-10-31 16:00:06 · 362 阅读 · 0 评论 -
24点计算器问题[C++实现]
24 点游戏是一个很有意思的数字游戏,也是一道常见的算法面试题。题目是这样的:任给四个数(为了便于人们心算或口算,一般都是小于 10 的数),对四个数字用各种组合进行加、减、乘、除四则运算,看看结果是否能等于 24?对于面试题来说,这是一个典型的穷举类型算法问题。这个题目比较有意思的地方是它除了要对数字组合进行枚举,还要对四个运算符进行组合。我们要介绍的方法有点特殊,它没有简单地使用穷举遍历,而...转载 2019-06-02 18:06:45 · 3995 阅读 · 1 评论 -
狼、羊、菜和农夫过河问题[超详细解析,CPP实现]
农夫需要把狼、羊、菜和自己运到河对岸去(不知道为啥要运狼,别问我),只有农夫能够划船,而且船比较小,除农夫之外每次只能运一种东西,还有一个棘手的问题,就是如果没有农夫看着,羊会偷吃菜,狼会吃羊。请考虑一种方法,让农夫能够安全地安排这些东西和他自己过河。算法设计思路这是一个很简单的问题,在狼、羊和菜这个食物链上,关键是中间的羊,因为狼不吃菜,所以要安全过河,农夫的第一件事就是带羊走,拆开这个...转载 2019-06-02 18:09:04 · 48750 阅读 · 2 评论 -
爱因斯坦思考题[超详细C++版]
对二维表中的每个元素进行枚举遍历,依次确定每个表格元素的值,当二维表中所有表格元素的值都确定后,检查其结果是否符合问题解的要求,如果满足要求,则输出一个结果,如果不满足要求,则按照一定的顺序继续遍历各个表格元素的值。这也是一种典型的解空间搜索方式,通过对这个问题的理解,未来遇到类似的问题,或三维表空间的问题,都可以用类似的方法设计搜索算法。问题介绍据说是爱因斯坦提出来的,他宣称世界上只有 ...转载 2019-06-03 22:45:52 · 1141 阅读 · 0 评论 -
LeetCode 46: 全排列[C++][Go]
问题描述给定一个没有重复数字的序列,返回其所有可能的全排列。示例:输入: [1,2,3]输出:[ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1]]思路dfs+递归:夹逼递归C++class Solution {public: vector<vector<int>>...原创 2019-07-28 15:24:27 · 200 阅读 · 0 评论