Algorithm
703. 数据流中的第 K 大元素 使用一个大小为K的小根堆,对于新来的元素,如果堆没有满,则直接入堆。否则判断其是否大于堆顶,大于则替换堆顶。返回堆顶元素。题目简单,主要想验证下自己写的堆。
1143. 最长公共子序列 dp[i][j]
表示text1前i个字符与text2前j个字符的最长公共子序列 . dp[i][j] = dp[i-1][j-1] if text1[i-1]==text2[j-1] else max(dp[i-1][j],dp[i][j-1])
. 意思是,如果text1第i个字符和text2第j个字符相等,那么这个字符一定在公共序列中 ; 如果不相等,则可能在也可能都不在,此时为dp[i-1][j],dp[i][j-1],dp[i-1][j-1]
中的一种,其中dp[i-1][j-1]
一定不比前面两个大,因此可以省略。 base case:dp[0][j]=0, dp[i][0]=0
。这里如果采用状态压缩,则需要在更新dp[j]
前先保存到一个变量prev,等到更新dp[j+1]
时,这个变量就是dp[i-1][j-1]
.然后这个变量需要在每层外循环时初始化为0。
712. 两个字符串的最小ASCII删除和 使用动态规划:dp[i][j]
表示s1前i个字符和s2前j个字符的最小ASCII删除和。 如果 s[i-1] == s[j-1]
,那么dp[i][j] = dp[i-1][j-1]
。 否则 dp[i][j] = min(dp[i][j-1]+s2[j-1],dp[i-1][j]+s1[i-1])
。 base case : dp[0][j] = sum(s2[0..j-1]), dp[i][0]= sum(s1[0..i-1])
583. 两个字符串的删除操作 最长公共子串长度lcs,则答案为 m+n-lcs*2.
Review
- Compression in Hadoop/MapReduce. File compression brings two major… | by Siddheswar “Sid” Chandrasekhar | Medium Hadoop 文件压缩,作为hadoop的输入,压缩格式被拆分成多个块后,需要能够分别独立读取每一个块的内容,才能支持不同的Map同时读取一个压缩文件。
Tips
- mac键盘的Capslk键位是切换中英文输入法,在windows上Caps键比较积累,所以换成mac的设法。使用powertoys 将Caps键映射成
ctrl space
就可以了。当然这里需要注意的是得有两个输入法。 - python 打包package如何包含非py文件:distutils - Including non-Python files with setup.py - Stack Overflow
- Cmake找不到openssl库解决办法:CMake not able to find OpenSSL library - Stack Overflow
Share
- 小根堆算法实现
- [AWS ec2 实例存储扩容_技术成长ing-CSDN博客](