明天开启全国巡讲Python模式,连续8场20天讲课,外加路上来回大约16天,这个假期有的忙了。所以接下来的一段时间里不一定能像以前更新的那么频繁,我尽量。
在很久很久很久以前,公众号曾经推送过这样一篇文章Python组合列表中多个整数得到最小整数(一个算法的巧妙实现)。也就是,对于列表中的若干整数,求这些整数前后连接能够组成的最小的整数。严格来说,这个问题主要考查的是算法设计能力。
问题描述:给定一个含有多个整数的列表,将这些整数任意组合和连接,返回能得到的最小值。
算法描述:将这些整数变为相同长度(按最大的进行统一),短的右侧使用个位数补齐,然后将这些新的数字升序排列,补齐后一样大小的数字按原始数据降序排列,排序后,将低位补齐的数字删掉,把剩下的数字连接起来,即可得到满足要求的数字。
当时给出的代码是这样的:
看上去很复杂的样子,能更简单点吗?于是有了下面的代码:
上面实际上就是一行代码计算结果,为了方便阅读,才换了很多行。虽然代码简短了很多,但是对Python函数式编程要有一定了解才能看懂。那么就再来个暴力点的代码吧,在所有排列组成的整数中查找最小整数:
但是上面的代码时间复杂度有点高啊,毕竟要计算全排列,有没有更好的办法呢?下面代码最初版本由浙江温州永嘉县教师发展中心应根球老师提供。
思路倒推容易得到,在最终结果的最小整数的排列中,交换任意两个数字得到的数字都会使得结果变大。假设理想排列是x,也就是说,对于任意i和j都有int(str(x[i])+str(x[j]))
但是问题又来了,在Python 3.x中,内置函数sorted()和列表方法sort()都取消了cmp参数而只保留了key参数,key参数指定的函数只能接收一个参数而在Python 2.x中的cmp参数指定的函数可以接收两个参数,那肿么办呢?Python标准库funtools中的cmp_to_key()可以帮助完成这个转换。
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.fwqtg.net
相关推荐: 文心一言和ChatGPT最全对比
特定指标对比:
实际运用对比:一、算力二、训练时间三、算法复杂度
四、模型结构五、应用场景
六、性能指标
七、可解释性八、迁移能力
文心一言和ChatGPT都是基于深度学习技术的自然语言处理模型,有各自的优势和使用场景,无法简单地比较 ChatGPT 和文心一言哪一个功能更强大,它们各自具有优势和局限性,需要根据具体需求进行选择,以下一些具体对比: 为方便观看,结论在前面展示,后续内容为详…