@Author:Runsen
@Date:2020/10/9

“恭喜你昨天,化工热力学补考成功!”

“区区化工热力学还想让我重修,只不过浪费了我九月一半的精力和十月的九成精力,补考其实是庆祝你可以毕业而已。”

还有10/15号的化工原理补考,给我再来一次翻身的感受?

必须的,但是为了补考,错过了校招。我真的好点慌。

那赶紧趁着这几天刷下Leetcode恢复下Feel,剩下几天给我死命复习化工原理。

那必须的,从十月,我就没有写博客,没有刷Leetcode,人生就像没有了精彩。

那没办法,补考事重于泰山,你不能跟毕业证开玩笑。

动态规划算法最长系列,可以说是dp的重点,竟然我这么想死,那我就开始搞残我的大脑。

Leetcode5、 最长回文子串

Leetcode第五题、 最长回文子串,方法动态规划和中心扩展,有没有印象?

动态规划:dp[i][j] = (dp[i + 1][j - 1] and s[i] == s[j])

i表示回文左边的index,j表示回文右边的index,需要判断dp[i + 1][j - 1]是不是回文,而且要求 s[i] == s[j],那么dp[i][j]就是回文。

class Solution(object):def longestPalindrome(self, s):""":type s: str:rtype: str"""len_s = len(s)if len_s < 2:return s# 因为是判断子串,根据子串的性质s[i:j],因此必然涉及到两层循环,也就需要定义二维数组dp# 状态初始化:默认为True,可以省去很多计算dp = [[True for _ in range(len_s)] for _ in range(len_s)]max_len = 0start = 0# 状态转移方程:表示i到j的子串是否是回文子串# dp[i][j] = (s[i] == s[j] and dp[i+1][j-1])# 遍历状态集:因为需要知道j-1,因此j需要从1开始for j in range(1, len_s):# 因为是子串,i一定是要小于jfor i in range(j):if s[i] == s[j]:# 如果头尾字符相等,那么直接正负取决于之前的子串dp[i][j] = dp[i+1][j-1]else:# 如果不相等,不管子串如何,肯定不是回文dp[i][j] = False# 更新最大长度if dp[i][j] and max_len < j - i:max_len = j - istart = ireturn s[start:start+max_len+1]

还有一个方法是中心扩散的,注意s[l + 1:r]返回的位置。

def helper(s, l, r):# 中心扩散while l >= 0 and r < len(s) and s[l] == s[r]:l -= 1r += 1return s[l + 1:r]
res = ""
for i in range(len(s)):# 奇数形回文, like "aba"tmp = helper(s, i, i)if len(tmp) > len(res):res = tmp# 偶数形回文, like "abba"tmp = helper(s, i, i + 1)if len(tmp) > len(res):res = tmp
return res

更多的查看大佬的题解

Leetcode300、最长上升子序列

'''
@Author: Runsen
@WeChat:RunsenLiu
@微信公众号: Python之王
@CSDN: https://blog.csdn.net/weixin_44510615
@Github: https://github.com/MaoliRUNsen
@Date: 2020/10/9
'''
def lengthOfLIS(nums):# 如果定义dp dp[i] 最长上升子序列 那么 dp[i] = max(dp[i], dp[k] + 1)  0<k<i-1m = len(nums)if m <= 1:return mdp = [ 1 for _ in range(m)]for i in range(1,m):for j in range(i):if nums[i] > nums[j]:dp[i] = max(dp[i], dp[j]+ 1 )return max(dp)
print(lengthOfLIS([1,3,6,7,9,4,10,5,6]))

Leetcode674. 最长连续递增序列

Leetcode300、最长上升子序列要求是不连续的,而Leetcode674. 最长连续递增序列要求是连续的。

class Solution:def findLengthOfLCIS(self, nums: List[int]) -> int:"""动态规划"""# n = len(nums)# if n == 0:#     return 0# dp = [0] * n# dp[0] = 1# for i in range(1, n):#     if nums[i] > nums[i-1]:#         dp[i] = dp[i-1] + 1#     else:#         dp[i] = 1# return max(dp)"""遍历一遍就解决问题"""n = len(nums)if n <= 1:return ncount = 1res = 1for i in range(1, n):if nums[i] > nums[i-1]:count += 1else:count = 1res = max(res, count)return res

Lintcode 397. 最长上升连续子序列

Lintcode 此题和Leetcode中的第674多了一个要求,认为(最长上升连续子序列可以定义为从右到左或从左到右的序列。)

其实就是求最长连续递减序列。

class Solution:"""@param A: An array of Integer@return: an integer"""def longestIncreasingContinuousSubsequence(self, A):# write your code here# dp[i] = max(dp[i,dp[k]+ 1)m = len(A)if m <=1:return mdp1 = [1 for _ in range(m)]dp2 = [1 for _ in range(m)]for i in range(1,m):if A[i] > A[i-1]:dp1[i] =dp1[i-1]+ 1else:dp1[i] =1 if A[i] < A[i-1]:dp2[i] =dp2[i-1]+ 1else:dp2[i] =1 return max(max(dp1),max(dp2))

总结

动态规划算法最长序列其中在看于动态规划的状态转移方程如何推导

现在大四了。大三结束后,那时的我还算壮志踌躇,我以为自己可以找到算法的实习,这是一条好路,我必须承认。校招方向只有Java,前端,C++和算法。但出于校招算法内积,没有过人的项目,学历专业的等我自身原因的考虑,我放弃了算法,决定把重心往前端靠靠,拿着一个不太好看的文凭,不太丰富的校内经历,就下定决心在春招找实习。毕竟秋招我给补考耽误了,我需要重新振作起来。

我已经看到了大四秋招的失败,但我还是要厚脸皮去尝试,我还有一些光阴,我曾经年轻过,也正在年轻着。

说完了激励自己的话,那就继续去面对生活吧。

化工热力学补考成功,几天没有头脑了,赶紧赏自己几题Leetcode动态规划算法最长系列相关推荐

  1. 化工热力学重修补考第三章重点内容

    @Author:Runsen @Date:2020/9/19 大三上挂了化工热力学,大三下没有补考, 大四学院好像说只能重修了.大四连毕业证都成问题的我,每天还是刷下MOOC的化工原理和热力学.下面是 ...

  2. 化工热力学重修补考第二章重点内容

    @Author:Runsen @Date:2020/9/18 大三上挂了化工热力学,大三下没有补考, 大四学院好像说只能重修了.大四连毕业证都成问题的我,每天还是刷下MOOC的化工原理和热力学.下面是 ...

  3. 化工原理 补考(重点)

    我沉迷代码几年,开发玩的666,但是专业课化工原理挂了,补考贼烦,作业本都收上去 了,我赶紧把学霸的作业本拍照,下次补考100考60分,我太累了,又挂了化工热力学,连毕业都难. 为了毕业证,我他妈的阔 ...

  4. 化工热力学 第二章(流体的 p - V - T 关系)

    看懂书本4个例题 有病的,学化工热力学比深度学习还难100倍,只希望考试60

  5. c语言程序与化学有关的程序,化工热力学C语言程序.doc

    化工热力学C语言程序 利用C++程序解决中压下两组分的汽液平衡问题: (活度系数+状态方程法) 已知压力P和液相组成xi求温度T和气相组成yi #include #include void main ...

  6. [渝粤教育] 天津科技大学 化工热力学 参考 资料

    教育 -化工热力学-章节资料考试资料-天津科技大学[] 第一周 单元作业 第一周 单元测验 1.[单选题]热是一种() A.无质量的物质 B.有质量的物质 C.运动形态 D.无法确定 参考资料[ ] ...

  7. 化工热力学习题集及答案

    化工热力学习题集及答案 模拟题一 一.单项选择题(每题1分,共20分) T温度下的纯物质,当压力低于该温度下的饱和蒸汽压时,则气体的状态为( ) 饱和蒸汽 超临界流体 过热蒸汽 T温度下的过冷纯液体的 ...

  8. 最新版本化工热力学答案

    第二章习题解答 一.问答题: 2-1为什么要研究流体的pVT关系? [参考答案]:流体p-V-T关系是化工热力学的基石,是化工过程开发和设计.安全操作和科学研究必不可少的基础数据.(1)流体的PVT关 ...

  9. 分子模拟的理论与实践_化工热力学领域最新译著适合工业应用的热力学模型:从经典与高级混合规则到缔合理论正式出版...

    化工热力学是化学工程与技术学科的重要基础,是热力学基本定律应用于化学工程领域而形成的一门分支学科,主要研究化学工程中各种形式的能量之间相互转化的规律及过程平衡的极限条件,为有效利用能量和改进实际过程提 ...

最新文章

  1. 亏损63亿,美图真能“美”到上市?
  2. cgi python windows_python cgi windows怎么办
  3. DotText使用非80端口(默认端口)时URL出错
  4. 前端学习(477):前端简介1
  5. hbase简介(大数据技术)
  6. VSTO学习笔记(二)Excel对象模型
  7. 【局部敏感度的问题代码实现】差分隐私代码实现系列(八)
  8. android程序导入虚拟机,android项目打包成apk应用程序后部署到虚拟机上测试
  9. php字符串如何比较大小写,PHP字符串函数strcmp(二进制安全比较字符串,区分大小写)...
  10. linux C/C++内存检测
  11. 临近失业,如何拯救自己?
  12. 二阶带阻有源滤波器设计与仿真测试
  13. oracle dba_hist_snapshot,通过dba_hist_*来进行诊断
  14. 物联网产品的发展简介(一)【产品篇01】
  15. 周杰伦理片,吴奇隆胸店,邓紫棋牌室,黄家驹留所,金秀贤鸭蛋,郭富城管员,苍井空调店,齐达内衣店,乔布斯袜店……能接下去么?...
  16. 红黑树从头至尾插入和删除结点的全程演示图
  17. excel两列交叉对比
  18. 第4代计算机的应用,在第四代计算机期间内计算机的应用逐步进入到().docx
  19. 基于java swing的学生学籍管理系统
  20. 仿安居客首页导航栏及二级下拉菜单Html+Css+JavaScript

热门文章

  1. Cpp 对象模型探索 / 静态联编和动态联编
  2. BTS3410G参数
  3. flask jinja2 mysql_flask/jinja2 SSTI注入学习
  4. 工程师必知的代码重构指南
  5. qt mysql数据库连接池_qt中使用数据库连接池
  6. java a3 套打印_Java - apache PDFBox兩個A3論文到一個A2?
  7. 外刊晨读 2018 年 年 5 月 月 15 日
  8. Oracle_Rac_BackgroudProcess
  9. LibreOJ 数列分块入门
  10. Spring + Mybatis 使用 PageHelper 插件分页