一道百度笔试题的思考

这样一道百度笔试题:给定一个存放整数的数组,重新排列数组使得数组左边为奇数,右边为偶数。要求:空间复杂度O(1)。

在博客园看到了插入排序和快速排序的思路:

http://kb.cnblogs.com/page/81013/

我的问题是,能不能巧妙的解开这道题呢?思路如下:

  1. 偶数可以被2整除,而奇数则不能
  2. C++在整数除法上会有精度上的丢失
  3. 基于以上两点,先对数组中的元素分别进行整数除法(/2),再进行乘法(*2)
  4. 和原数组相减,数值处不为0的,即是奇数

这样可以吗?

原文地址:https://www.cnblogs.com/scar-xd/p/3336300.html