这道题目

https://www.nowcoder.net/practice/beb5aa231adc45b2a5dcc5b62c93f593?tpId=13&tqId=11166&tPage=1&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking

题目描述

输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。

注意:

题目中写了,要保证原有的顺序。如果不是,那么可以类似快排的调整顺序。但是既然要保证顺序,那么需要考虑一下了。

解法:

那么我的方法也很直接,就是每次找到奇数,就把前面的偶数往后面挪,填补上来就好了。
开始的时候,有一个bug,就是在内部循环的时候,循环变量写的是i,跟外面的重复了。后来改成k就好了:
class Solution {
public:void reOrderArray(vector<int> &array) {int eventSt = -1;int len = array.size();for (int i=0; i<len; i++) {if (array[i] % 2 == 0) {if (eventSt == -1) {eventSt = i;}}else {if (eventSt >= 0) {int tmp = array[i];for (int k=i; k>eventSt; k--) {array[k] = array[k-1];}array[eventSt] = tmp;eventSt++;}}}}
};

奇偶数对调,保持顺序 —— 剑指Offer相关推荐

  1. 算法题解(剑指Offer篇)

    文章目录 栈与队列(简单) *剑指 Offer 09. 用两个栈实现队列 - 12.27 剑指 Offer 30. 包含min函数的栈 - 12.27 链表(简单) *剑指 Offer 06. 从尾到 ...

  2. 剑指offer第二版答案详细版(带详细解题思路)

    1.滑动窗口的最大值(剑指offer原59题) 解题思路:其实是一个队列的问题,用一个队列去维护当前窗口中的所有元素:首先将超出窗口中的队头元素先删掉,然后将新的元素插入当前窗口中,插入时要判断新插入 ...

  3. 【剑指offer】【leetcode精选题集】【Java】剑指offer题解合集 更新中

    Leetcode题集 [剑指offer][JAVA]面试题第[03]题[数组中的重复数字][HashSet] [剑指offer][JAVA]面试题第[04]题[二维数中的查找][数组] [剑指offe ...

  4. 剑指 Offer 32 . 从上到下打印二叉树

    main函数测试代码: 按标准输入输出,比如输入: 3,9,20,null,null,15,7 public static void main(String[] args) {//输入3,9,20,n ...

  5. C#LeetCode刷题-剑指Offer

    本文由 比特飞 原创发布,欢迎大家踊跃转载. 转载请注明本文地址:C#LeetCode刷题-剑指Offer | .Net中文网. C#LEETCODE刷题概述 概述 所有LeetCode剑指Offer ...

  6. LeetCode力扣(剑指offer 41-68)

    目录 剑指 Offer 41. 数据流中的中位数 剑指 Offer 42. 连续子数组的最大和 剑指 Offer 43. 1-n 整数中 1 出现的次数 剑指 Offer 44. 数字序列中某一位的数 ...

  7. 《剑指offer》75题 C++详细题解

    目录 简单: 剑指 Offer 03. 数组中重复的数字 map: unordered_map: 原地交换 剑指 Offer 05. 替换空格 剑指 Offer 06. 从尾到头打印链表 出栈入栈 双 ...

  8. 力扣OJ 剑指 Offer II

    目录 剑指 Offer II 001. 整数除法 剑指 Offer II 002. 二进制加法 剑指 Offer II 003. 前 n 个数字二进制中 1 的个数 剑指 Offer II 004. ...

  9. LeetCode刷题 _「剑指 Offer]专项突破版

    第01天 整数 剑指 Offer II 001. 整数除法 class Solution:# 时间复杂度:O(logn), 空间复杂度:O(1)def divideCore(self, dividen ...

最新文章

  1. JDBC的CRUD操作之PreparedStatement的查询操作
  2. size_t和ssie_t的区别
  3. Javascript ECMA-3 (数组,Date,正则)
  4. 计算机考试时间2021安徽,安徽省2021年高考录取结果查询正式开通!查询方式权威公布...
  5. align latex 使用_latex中使用listings时如何使matlab代码块居左而非居中,最好与上面的文本对齐...
  6. Java基础学习总结(181)——Nacos、Apollo、Config配置中心如何选型?
  7. Eclipse编写第一个Java程序
  8. 软件设计师07-程序语言基础知识
  9. 这位 50 岁的海归程序员,当着老板还在天天改 Bug
  10. 谷歌推出开源工具DeepVariant,用深度学习识别基因变异
  11. UFS系列十:UFS电源管理
  12. Java查询Mysql数据库时区问题(相差13/14)个小时
  13. javascript案例26——求100以内所有7倍数之和
  14. java 快递100_使用快递100 查询链接实现快速查询的示例
  15. 下载和安装MySQL(傻瓜)教程
  16. 亚马逊云计算业务上半年营收超过160亿美元 同比大增近40%
  17. 前缀学习完结篇 第三课上
  18. 搜索引擎技术 —— 检索模型
  19. 【appium报错】Original error:Could not proxy command to remote server. Original error:socket hang up
  20. 复旦大学软件工程硕士博士学位点被撤销!整理20年被撤销计算机相关的学位点名单...

热门文章

  1. Swift -- 7.5 类型属性,方法
  2. 完美使用application cache几点心得
  3. Jmeter使用之高效组织接口自动化用例技巧
  4. 软件测试用例设计方法之边界值分析法
  5. math java 计算_Java中的数学计算函数汇总
  6. 03-14 设备交互 API
  7. tidyr | 对数据框分行或分列进行嵌套操作
  8. html中的数字选框,带有复选框和数字类型的HTML表单提交与PHP?
  9. 学习web前端开发大半年,迷茫了,感觉什么都没学会怎么破?
  10. 20个 CSS 快速提升技巧