19-☆<6,☆比19小的最大数是多少是多少

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这种又会错误处理。反正就是总有少数几个测试用例过不去。

这个思路好像进行不下去了!

不过后续還是看到了别人的基数排序确实考虑的情况比较多:

因为如果碰到两个数的第一位相同的时候,很难区分哪个在前哪个在后那就采取仳较吧,两种情况都考虑看哪一个更大。

另外将数字直接转为字符串进行比较也是可以的。

建议看官方题解的思路传递性的证明确實不好理解,可以看这个

}

我要回帖

更多关于 跟19一般大的数是几 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信