算法进阶
贪心算法:
贪心算法之找零问题:
假设你是商店老板需要找零n元钱,钱币的面额有:100元、50元、20元、5元、1元、,如何找零使得所需的钱币数量最少?
代码实现:
money = [100,50,20,5,1] #钱币的面额大小
def change_money(x):
change = [0,0,0,0,0] #对应钱币面额的个数
for i,m in enumerate(money):
change[i] = x // money[i]
x = x % money[i]
if x > 0:
print("还剩%s" % x)
return change
print(change_money(356.2))
习题: 1、有n个非负整数,将其按照字符串拼接的方式拼接为一个整数。请问:如何拼接可以使得得到的整数最大?
example: 12,34,56,78,9 =======> 拼接后的结果为987654321
2、有n个非负整数,将其按照字符串拼接的方式拼接为一个整数。如何拼接可以使得得到的整数最小?
思路和上边类似,只是结果相反
动态规划:
最长上升子序列:
最长上升子序列(LIS):给定一个序列X,求X长度最大的连续递增的子序列。
x = [1,7,2,8,3,5,2] ,LIS(x) = [1,2,3,5]
最长公共子序列:
最长公共子序列(LCS)问题:给定两个序列X和Y,求X和Y长度最大的公共子序列。 X = "ABBCDEFG" y = "SBBCEGR" LCS(X,Y)="BBC" 不过图还是没看懂。。
最长公共子串:
最长公共子序列(LCSS)问题:给定两个序列X和Y,求X和Y长度最大的公共子串。 X = "ABBCDE" Y = "BBBCRT" LCSS(X,Y) = "BBC"
编辑距离:
编辑距离:指两个子串之间,有一个转成另一个所需最少的编辑操作次数。 允许的编辑操作:替换、插入、删除 x = "cofe" y = "coffee", 编辑距离为2(插入2次) x = "coffee" y = "coffe", 编辑距离为1(删除1次) x = "coffee" y = "coffye" 编辑距离为2(替换2次) x = "cofye" y = "coffee" 编辑距离为2 编辑距离可以用来表示两个字符串的相似度,应用广泛
就这么点。。。都看不太懂。。。。
本文来自博客园,作者:一石数字欠我15w!!!,转载请注明原文链接:https://www.cnblogs.com/52-qq/p/8407038.html
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 如何使用 Uni-app 实现视频聊天(源码,支持安卓、iOS)
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)