排序
文章平均质量分 58
岗岗ganggang
这个作者很懒,什么都没留下…
展开
-
剑指 Offer 61. 扑克牌中的顺子python
题目描述:即判断输入nums中的5个数字是否连续,其中0可以转化为任何数字。题解:1.确定输入nums对应的范围,maxnum=max(nums),minnum=maxnum-4(minnum应该由maxnum确定,因为可能nums中存在0)2.将minnum到maxnum对应的数字保存在一个数组tomatch中。3.计算nums中0的个数zero_num。4.依此判断tomatch[i]是否在nums中存在,记录找到的个数matchnum。5.用总数5减去matchnum,原创 2021-12-09 10:56:49 · 181 阅读 · 0 评论 -
剑指 Offer 45. 把数组排成最小的数python
题目描述:题解一:思路:将nums中数字重复,取前面几位有效位进行比较。比如3和32,都重复5次33333 3232323232,32323比33333小,因此32应该放在3之前。1.定义一个dict strnums,对nums中每个数字转为str,重复5次取前10位,按照 在原nums中的序号:前10位格式加入strnums。2.对strnums按照key从小到大排序。3.创建新list newnums,按照排序后的strnums中在nums的序号依次将对应数字加入newnums.原创 2021-12-09 10:24:11 · 237 阅读 · 0 评论 -
归并排序算法
参考:【算法】排序算法之归并排序 - 知乎python归并排序--递归实现 - 简书基本思想:分治分解(Divide):将n个元素分成个含n/2个元素的子序列。解决(Conquer):用合并排序法对两个子序列递归的排序。合并(Combine):合并两个已排序的子序列已得到排序结果。一个例子:实现:mergesort(seq):1.输入seq为需要排序的数组。2.在mergesort函数中:<1>如果输入seq只有一个元素,直接返回seq。&原创 2021-09-23 10:37:02 · 1237 阅读 · 0 评论