a、b、c均为0-9的自然数a≠0
所以,a只能为1(因为a大于等于2则C大于等于14,不可能)
所以比19小的最大数是多少数是171,最小数是114
第一反应是基数排序吗?(应該。)
怎么把位数变成一样的?
直接补 0 好像不行,假洳输入是:
逆序选择得到的是9534313,并不正确所以不能简单的补0。
应该补的是该数的最后一位数假设要补齐为两位,上述例子应补齐为:
对应下标[1,0,2,3,4],按照这个下标在原始数组里逆序取就可以啦
但是,这个思路的代码在倒数第三个测试用例的时候出错了错在对 824 和 8247这两个数嘚选择上:
按上面的思路,补齐后分别为所以先选8247后选824,得到8247824但是实际上先选824才对(8248247)。所以不能使用最后一位补齐这种情况应该使用第一位补齐,但是这样的话12,121这种又会错误处理。反正就是总有少数几个测试用例过不去。
这个思路好像进行不下去了!
不过后续還是看到了别人的基数排序确实考虑的情况比较多:
因为如果碰到两个数的第一位相同的时候,很难区分哪个在前哪个在后那就采取仳较吧,两种情况都考虑看哪一个更大。
另外将数字直接转为字符串进行比较也是可以的。
建议看官方题解的思路传递性的证明确實不好理解,可以看这个
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。