算法学习
Leetcode刷题记录
SkyMath1024
爱生活,爱开发
展开
-
Leetcode105-106: 已知前序或后序,再加中序求另外一个
105. 从前序与中序遍历序列构造二叉树class Solution {private: int pre_idx; unordered_map<int, int> idx_map; TreeNode* helper(int in_left, int in_right, vector<int>& inorder, vector<int>& preorder){ // 如果这里没有节点构造二叉树了,就结束原创 2021-06-03 23:32:53 · 145 阅读 · 0 评论 -
时间复杂度计算之程序步数表
直接看图片就好了。原创 2017-11-02 19:54:18 · 3684 阅读 · 0 评论 -
raw格式数据转BMP格式(OpenCV)
raw转bmp原创 2017-08-07 11:38:27 · 7225 阅读 · 5 评论 -
单向链表的反转
这个有点困扰我,记录一下。直接记录代码和注释吧。原创 2017-06-27 11:10:50 · 247 阅读 · 0 评论 -
八种排序java实现
8种排序方法的java实现,均来自于算法导论的伪代码实现。原创 2017-05-16 11:57:00 · 335 阅读 · 2 评论 -
Manacher's ALGORITHM: O(n)时间求字符串的最长回文子串
资料来源网络 参见:http://www.felix021.com/blog/read.php?2040求解字符串的回文问题的时候,如果不对字符串做一些处理,我们会遇到回文子串的长度是奇数或者偶数的分类处理。但是,采用Manacher算法可以完全避免这个问题。Manacher算法:在原来字符串的头、尾以及字符之间都添加一个从来没有出现过的字符,作为分隔符。例如:”#”。 就可以把奇数和偶数区别问题转载 2017-04-06 15:23:46 · 477 阅读 · 0 评论 -
使用LRU(last recently used)算法淘汰数据实例(阿里巴巴例题)
某缓存系统采用LRU淘汰算法,假定缓存容量为4,并且初始为空,那么在顺序访问一下数据项的时候:1,5,1,3,5,2,4,1,2出现缓存直接命中的次数是?,最后缓存中即将准备淘汰的数据项是?解答:1调入内存 15调入内存 5 11调入内存 1 5(命中 1,更新次序)3调入内存 3 1 55调入内存 5 3 1(命中5,更新次序)2调入内转载 2017-04-19 11:19:17 · 1177 阅读 · 0 评论 -
Java字符串的4个例子
直接上代码,所有注释都在解释问题和编程步骤。原创 2017-03-21 10:40:06 · 524 阅读 · 0 评论 -
喝汽水问题
题目背景: 有这样一道智力题:“某商店规定:三个空汽水瓶可以换一瓶汽水。小张手上有十个空汽水瓶,她最多可以换多少瓶汽水喝?”答案是5瓶,方法如下:先用9个空瓶子换3瓶汽水,喝掉3瓶满的,喝完以后4个空瓶子,用3个再换一瓶,喝掉这瓶满的,这时候剩2个空瓶子。然后你让老板先借给你一瓶汽水,喝掉这瓶满的,喝完以后用3个空瓶子换一瓶满的还给老板。如果小张手上有n个空汽水瓶,最多可以换多少瓶汽水喝?输入要求原创 2017-02-23 21:38:19 · 756 阅读 · 0 评论 -
最优二叉搜索树的java实现
问题来源: 我们在实现英语到汉语时,我们需要查询英语文本中的每一个单词所对用的汉语。我们此时可以构建一个二叉搜索树,将n个英语单词作为关键字,对应的汉语意思作为关联数据。也就时我们所理解key–value对。既然出现了二叉树,那么搜索二叉树的速度就成了我们需要关注的问题。主要问题就是,如果出现频率较低的英语单词放在根上,出现频率很高的英语单词出现在叶子节点,这样会使得我们每次的搜索都会很低效。问题原创 2016-09-28 17:57:10 · 2092 阅读 · 0 评论 -
矩阵链乘法的Java实现
题目:给定n格矩阵序列 A1,A2,A3,…,An,我们需要计算它们的乘积。 我们把这个矩阵序列称之为矩阵链。根据我们的线性代数的知识,两个矩阵要可以相乘,则必须满足相容性。何为相容性?矩阵A和矩阵B相乘,那么A的列数量必须和B的行数量是相等的。使用具体的例子解释一下:A是p*q的矩阵,B是q*r的矩阵,那么乘积C一定是p*r的矩阵。矩阵相乘的伪代码如下:MATRIX_MUTIPLY(A,B)i原创 2016-09-22 15:21:57 · 1800 阅读 · 0 评论 -
华为在线软件训练与测试平台----每日一题
官方描述: 给出一个名字,该名字有26个字符串组成,定义这个字符串的“漂亮度”是其所有字母“漂亮度”的总和。 每个字母都有一个“漂亮度”,范围在1到26之间。没有任何两个字母拥有相同的“漂亮度”。字母忽略大小写。 给出多个名字,计算每个名字最大可能的“漂亮度”。原创 2016-09-02 19:24:41 · 2710 阅读 · 1 评论