提取不重复的整数【牛客网】

题意理解

题意简单,提取不重复的整数,从一个int整数中从低位到高位依次输出不重复的整数值

问题分析

不重复想到了用stl模板的set,可以自动剔重。

尝试了以后,发现set有自动排序的功能,放弃,发现有个unordered_set,于是用之。

发现顺序是反的,于是找反向迭代器,unordered_set没有,于是用数组保存正常迭代器的输出,再反向输出数组中的整数

编译通过后,放到网站跑,发现顺序乱了,查资料发现是unordered_set不保存顺序,自然也不会稳定输出了。

上网资料后,发现对于反向输出,不用列表保存,用一个数保存,每次加一位即可。对于不重复的问题,可以用数组做标记,如果数字已经记录了,就丢弃。只用一个数组就可以解决问题了。

其他

思路上总是想着用stl好,能用stl就用stl,但是对stl了解的不全,什么时候可以用什么,不该用什么,不熟练。stl用不了的时候,简单的数组也可以达到效果。

参考一下的链接,学习了。

https://blog.csdn.net/u012503639/article/details/51811647

代码链接

https://github.com/xierensong/learngit/blob/master/ncode/1/1.cpp

猜你喜欢

转载自blog.csdn.net/xiexie1357/article/details/85056627