问题描述

输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。
示例:
输入:nums = [1,2,3,4]
输出:[1,3,2,4]
注:[3,1,2,4] 也是正确的答案之一。
提示: 1 <= nums.length <= 50000
1 <= nums[i] <= 10000

代码

class Solution {
public:
vector<int> exchange(vector<int>& nums) {
int n = nums.size(),left = 0,right = n-1;
while(left < right)
{
while(left < right && nums[left]%2 == 1)++left;
while(left < right && nums[right]%2 == 0)--right;
if(left < right)
swap(nums[left++],nums[right--]);
else
break;
}
return nums;
}
};

结果

执行用时 :44 ms, 在所有 C++ 提交中击败了29.21%的用户
内存消耗 :18.3 MB, 在所有 C++ 提交中击败了100.00%的用户

代码2

class Solution {
public:
vector<int> exchange(vector<int>& nums) {
int n = nums.size(),slow = 0,fast = 0;
while(fast < n)
{
if(nums[fast] % 2 == 1)
{
swap(nums[fast++],nums[slow++]);
}
else{
++fast;
}
}
return nums;
}
};

结果:

执行用时 :36 ms, 在所有 C++ 提交中击败了48.01%的用户
内存消耗 :18.2 MB, 在所有 C++ 提交中击败了100.00%的用户

最新文章

  1. EntityFrame Work 6 Code First 配置字段为varchar 类型
  2. C# 版本的冒泡排序,包括该死的控制台读取
  3. Android 打包
  4. mouse_driver
  5. javascript --执行上下文,作用域
  6. Linux与Windows中动态链接库的分析与对比
  7. Putty以及adb网络调试
  8. SSH通过超链接传递中文参数出现乱码问题
  9. ThinkPHP3.2基础知识(二)
  10. PHP教程-防止网站被刷票的小技巧
  11. OpenCV 1 图像分割--分水岭算法代码
  12. 微信小程序样式旋转
  13. Linux下数据库备份
  14. meterpreter持久后门
  15. 物理服务器Linux下软RAID和UUID方式挂载方法--Megacli64
  16. Spring 3 Java Based Configuration with @Value
  17. C语言函数入参压栈顺序为什么是从右向左?
  18. TOJ3097: 单词后缀 (字典树 or map瞎搞)
  19. java 算法 - 冒泡排序
  20. $.when()方法监控ajax请求获取到的数据与普通ajax请求回调获取到的数据的不同

热门文章

  1. 年度最受欢迎的开源CHROME插件
  2. 原生XMLHTTPResponse,jQuery-Ajax 上传文件;iframe上传图片&amp;预览;图片验证码小案例
  3. href超级链接里加上javascript代码的,还有target问题
  4. MySQL查询列必须和group by字段一致吗?
  5. JAVA中CountDownLatch的简单示例
  6. UEditor富文本判断是否输入内容
  7. 【LeetCode】244. Shortest Word Distance II 解题报告 (C++)
  8. 【LeetCode】289. Game of Life 解题报告(Python)
  9. 【LeetCode】93. Restore IP Addresses 解题报告(Python & C++)
  10. golang切片的一些自问自答