日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

剑指offer之【调整数组顺序使奇数位于偶数前面】

發(fā)布時間:2025/3/20 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 剑指offer之【调整数组顺序使奇数位于偶数前面】 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目要求:

  輸入一個整數數組,實現一個函數來調整該數組中數字的順序,使得所有的奇數位于數組的前半部分,所有的偶數位于位于數組的后半部分,并保證奇數和奇數,偶數和偶數之間的相對位置不變。

解題方法:

  方法一:時間復雜度O(n^2)

    最容易想到:從頭掃描這個數組,每碰到一個偶數時,拿出這個數字,并把位于這個數字后面的所有數字往前挪動一位。挪完之后在數組的末尾有一個空位,這時把該偶數放入這個空位;

  方法二:時間復雜度O(n)

    重新建立一個向量,然后進行兩次掃描:第一次掃描奇數,第二次掃描偶數,完畢,不廢話,直接上代碼:

1 class Solution{ 2 public: 3 void reOrderArray(vector<int> &array){ 4 int len = array.size(); 5 vector<int> vec(array.begin(),array.end()); 6 int l = 0; 7 for(int x: vec){ 8 if(x%2==1){ 9 array[l++] = x; 10 } 11 } 12 for(int y : vec){ 13 if(y%2 == 0){ 14 array[l++] = y; 15 } 16 } 17 } 18 };

?

轉載于:https://www.cnblogs.com/wangshujing/p/6934629.html

總結

以上是生活随笔為你收集整理的剑指offer之【调整数组顺序使奇数位于偶数前面】的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。