Skip to content

eesly/algorithm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

algorithm

学习算法的一些例程

  • subNum.cpp求取子序列个数 利用dp实现,主要考虑出现相同字符时的情况,在这里进行了简单的hash。
  • towerSelect.cpp塔选择最大和问题,采用dp思想,主要从后往前考虑,就很明朗了
  • LIS.cpp最长递增子序列,以LIS[i]表示a[0....i]的最长递增子序列长度,对于 每个值a[i]分别判断其前面的每一个值a[j]与a[i]大小,并进行LIS[i]的更新
  • LCS.cpp最长公共子序列长度,利用dp[i][j]表示a[0.....i]与b[0.....j]的最长公共子序列的长度, 对于两个序列当前的值进行判断,如果相等则此时c[i][j]=c[i-1][j-1]+1; 如果不相等,则继承前面的最长的长度,离c[i][j]最近的分别为c[i][j-1]和c[i-1][j]
  • LIS2.cpp是最长递增子序列长度求取的第二种方法,将其转换为最长公共子序列问题 1、将给定序列进行排序 2、对给定序列和排序序列求取最长公共子序列 3、由于有序序列保证了递增性,最终可以获得最长的递增子序列 这种方法有个问题:如果给定的序列存在相同的字符,求取的最长递增子序列包括相同的字符,需要根据 需求进行去除。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages