https://leetcode.com/problems/remove-duplicate-letters/?tab=Description
看了Discuss的解答。是用了递归,先找出第一个字符,然后去掉这个字符并且递归。
但是如果只有26个字母,其实是不是可以这样。
先遍历一遍,看到各个字母出现的次数。
然后第二遍遍历,如果一个字母,后面不再出现,或者后面不出现比自己小的字母,那么就可以放在结果里面了。
复杂度也是 O(n),常数系数是26。
https://leetcode.com/problems/remove-duplicate-letters/?tab=Description
看了Discuss的解答。是用了递归,先找出第一个字符,然后去掉这个字符并且递归。
但是如果只有26个字母,其实是不是可以这样。
先遍历一遍,看到各个字母出现的次数。
然后第二遍遍历,如果一个字母,后面不再出现,或者后面不出现比自己小的字母,那么就可以放在结果里面了。
复杂度也是 O(n),常数系数是26。
转载于:https://www.cnblogs.com/charlesblc/p/6439704.html