今天学习了一种解决拼数问题的方法,因为自己先前做时没什么头绪,所以把这种思路记下来,将其消化掌握。
题目是洛谷上的P1012
此题其实代表了一类题,不止是拼数,还有拼单词,拼字母等等。
题的思路:
先说说我在解这道题时的想法和问题,要使拼接后的数最大,其实就是一种最优解的求法,便是使用贪心,我想找到所有数中第一位最大的数,将其放在前面,然后再找第一位最大的数放在前面。可是我却发现我可以用%10表示最后一位,却不知道该怎么表示第一位,因为数字的大小是不确定的,所以被卡在了这一步。
在这道题中,我发现很多时候像我这种初学者为什么写不出题目是因为思维不够活跃,很多时候解决办法并不困难,初学者也可以写的出来,但是在做题的时候就是没想到。
说回思路,此种情况下将类型从整型转化为字符串,问题就可以迎刃而解了。字符串比起整型更加灵活易操作,string a+b是直接把a和b表示的数组到一起去,如a=1,b=2,string a+b=12,而int a+b=3,用string不用考虑位数,而int要进位,所以把问题转化为string就好处理很多
直接进行排序就能找到最优解