美文网首页
每日一题[17]-奇偶数排列

每日一题[17]-奇偶数排列

作者: MAXPUP | 来源:发表于2017-03-15 10:57 被阅读0次

输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。
解:
第一种思路很简短,遍历一遍,奇数放一个array,偶数放一个array。

function reOrderArray(array)
{
    if(array.length<2)return array;
    var leftA=[], rightA=[];
    for(var i in array){
      if((array[i]%2)==1){
        leftA.push(array[i]);
      }else {
        rightA.push(array[i]);
      }
    }
    return leftA.concat(rightA);
}

这种算法时间复杂度为o(n),但是牺牲了内存。
第二种使用了冒泡排序的思想,如果偶数后面是奇数就交换。

function reOrderArray(array)
{
    if(array.length<2)return array;
    for(var i=0;i<array.length;i++){
      for(var j=array.length-1;j>i;j--){
        if((array[j]%2==1) && (array[j-1]%2===0)){
          var temp = array[j];
          array[j] = array[j-1];
          array[j-1]= temp;
        }
      }
    }
    return array;
}

这种算法时间复杂度较大,O(n2),但是不占用过多的内存。
最后,两种算法在牛客网跑都是30ms,ㄟ( ▔, ▔ )ㄏ

相关文章

  • 每日一题[17]-奇偶数排列

    输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的...

  • 判断数的奇偶性

    判断数的奇偶性

  • 993. 二叉树的堂兄弟节点

    2021-05-17 LeetCode每日一题 链接:https://leetcode-cn.com/proble...

  • 福彩067期

    重点 两双一单 直选375注 条件02468=2 13579=1(重号算2模式)或用条件奇偶组选排列 奇偶偶 两个...

  • 逆序数

    再来一个定义:交换一个排列中的两个数,则排列的奇偶性发生改变。 以上定义都摘自《高等代数》。 拼图排列必须是偶排列...

  • 每日一题20201113(328. 奇偶链表)

    题目: 328. 奇偶链表[https://leetcode-cn.com/problems/odd-even-l...

  • 晨间日记

    1.小报,数学日记,数独比赛 2微信记账 3.小教研,板书,每日一题补上

  • Leetcode数据库题目题解 目录——mysql

    纪念2020.06.30-2020.07.26(原本打算每日一题的 不小心刷完了)刷完了全部Leetcode中数...

  • 多线程按顺序打印奇偶数

    看到一题目“多线程按顺序打印奇偶数”,网上的做法是通过synchronized,wait,notify来实现,其实...

  • 每日一题之优美的排列

    题目526:优美的排列 假设有从 1 到 N 的 N 个整数,如果从这 N 个数字中成功构造出一个数组,使得数组的...

网友评论

      本文标题:每日一题[17]-奇偶数排列

      本文链接:https://www.haomeiwen.com/subject/ugclnttx.html