一道百度笔试题的思考
这样一道百度笔试题:给定一个存放整数的数组,重新排列数组使得数组左边为奇数,右边为偶数。要求:空间复杂度O(1)。
在博客园看到了插入排序和快速排序的思路:
http://kb.cnblogs.com/page/81013/
我的问题是,能不能巧妙的解开这道题呢?思路如下:
- 偶数可以被2整除,而奇数则不能
- C++在整数除法上会有精度上的丢失
- 基于以上两点,先对数组中的元素分别进行整数除法(/2),再进行乘法(*2)
- 和原数组相减,数值处不为0的,即是奇数
这样可以吗?