1. 程式人生 > >調整陣列順序,使奇數位於偶數前面(java)

調整陣列順序,使奇數位於偶數前面(java)

題目

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

分析:

使用兩個ArrayList,一個用來放奇數,一個用來放偶數;

合併兩個ArrayList,(使用addAll()方法);

原陣列重新賦值。

程式碼實現:

import java.util.ArrayList;
public class Solution {
    public void reOrderArray(int [] array) {
        if(array == null ||array
.length == 0){ return; } ArrayList<Integer> even = new ArrayList<>(); ArrayList<Integer> odd = new ArrayList<>(); for(int i = 0; i<array.length; i++){ if(array[i]%2 == 0){ even.add(array[i]); }else
{ odd.add(array[i]); } } odd.addAll(even); for(int i = 0; i< array.length; i++){ array[i] = odd.get(i); } } }

注: 也可以用棧結構實現: 先進奇數,再進偶數,取出來,倒序即可。
例如: [1,2,3,4,5,6].
(1). 進棧,迴圈兩遍,先進奇數,再進偶數,棧內為【1,3,5,2,4,6】
(2). 出棧,【6,4,2,5,3,1】
(3),倒序,為【1,3,5,2,4,6】,完成。

更,為啥要用棧,還需要倒序,直接佇列結構即可,先進後出。省略了(3).

相關推薦

調整陣列順序使奇數位於偶數前面java

題目 輸入一個整數陣列,實現一個函式來調整該陣列中數字的順序,使得所有的奇數位於陣列的前半部分,所有的偶數位於陣列的後半部分,並保證奇數和奇數,偶數和偶數之間的相對位置不變。 分析: 使用兩個ArrayList,一個用來放奇數,一個用來放偶數; 合併兩個

調整陣列順序使奇數位於偶數前面Java實現

該題為劍指offer——面試題14 解法一沒有保證數字的相對位置 package cn.itcast.day422; /** * @author Jacob 劍指offer——面試題14:調整陣

劍指offer- 調整陣列順序使奇數位於偶數前面陣列

題目描述 輸入一個整數陣列,實現一個函式來調整該陣列中數字的順序,使得所有的奇數位於陣列的前半部分,所有的偶數位於陣列的後半部分,並保證奇數和奇數,偶數和偶數之間的相對位置不變。 看著這個題目,想到的是排序演算法。(推薦這個) 以及利用空間換時間,新建陣列的演算法。 先說這個新建陣列

C#調整數組順序奇數位於偶數前面的算法的代碼

new t rgs temp while ole ogr list lin print 寫內容之余,把寫內容過程中比較重要的內容記錄起來,如下的資料是關於C#調整數組順序,讓奇數位於偶數前面的算法的內容,希望對碼農們有用。 #region 調整數組順序使奇數位於偶數前面

劍指offer66題--Java實現c++實現和python實現 13.調整陣列順序使奇數位於偶數前面

題目描述 輸入一個整數陣列,實現一個函式來調整該陣列中數字的順序,使得所有的奇數位於陣列的前半部分,所有的偶數位於陣列的後半部分,並保證奇數和奇數,偶數和偶數之間的相對位置不變。 C++實現 class Solution { public: void reOrderArray(v

調整陣列順序使奇數位於偶數前面 java

調整陣列順序使奇數位於偶數前面 java 題目描述 輸入一個整數陣列,實現一個函式來調整該陣列中數字的順序,使得所有的奇數位於陣列的前半部分,所有的偶數位於陣列的後半部分,並保證奇數和奇數,偶數和偶數之間的相對位置不變。 程式碼1: public class S

牛客網-調整陣列順序使奇數位於偶數前面

輸入一個整數陣列,實現一個函式來調整該陣列中數字的順序,使得所有的奇數位於陣列的前半部分,所有的偶數位於陣列的後半部分,並保證奇數和奇數,偶數和偶數之間的相對位置不變。 class Solution { public: void reOrderArray(vector<int>

劍指offer____調整陣列順序使奇數位於偶數前面

輸入一個整數陣列,實現一個函式來調整該陣列中數字的順序,使得所有的奇數位於陣列的前半部分,所有的偶數位於陣列的後半部分,並保證奇數和奇數,偶數和偶數之間的相對位置不變。 class Solution { public: void reOrderArray(vector<int>

【劍指Offer】11調整陣列順序使奇數位於偶數前面

題目描述 輸入一個整數陣列,實現一個函式來調整該陣列中數字的順序,使得所有的奇數位於陣列的前半部分,所有的偶數位於陣列的後半部分,並保證奇數和奇數,偶數和偶數之間的相對位置不變。 時間限制:1秒;空間限制:32768K;本題知識點: 陣列 解題思路 思路一 建立一個新的陣列,先判

劍指offer——4調整陣列順序使奇數位於偶數前面

在這裡提供兩種思路。。  public class Solution { /* 最愚蠢的辦法:建立一個等長陣列,先迴圈一遍算出陣列中奇數的個數(或者偶數 的個數),再次迴圈,從頭開始放奇數,從尾到頭放偶數,最後將完成的陣列返回 */ public v

13 調整陣列順序使奇數位於偶數前面

需要記錄排好序的最後一個奇數的位置odd_end 然後遇到奇數就一個一個向前交換,將該奇數交換到odd_end+1位置,更新odd_end=odd_end+1 class Solution { public: void reOrderArray(vector<int>

劍指 Offer - 13:調整陣列順序使奇數位於偶數前面

題目描述 輸入一個整數陣列,實現一個函式來調整該陣列中數字的順序,使得所有的奇數位於陣列的前半部分,所有的偶數位於陣列的後半部分,並保證奇數和奇數,偶數和偶數之間的相對位置不變 題目連結:https://www.nowcoder.com/practice/beb5aa2

劍指offer刷題之調整陣列順序使奇數位於偶數前面

題目描述 輸入一個整數陣列,實現一個函式來調整該陣列中數字的順序,使得所有的奇數位於陣列的前半部分,所有的偶數位於陣列的後半部分,並保證奇數和奇數,偶數和偶數之間的相對位置不變。 # -*- coding:utf-8 -*- from collections impo

劍指Offer13:調整陣列順序使奇數位於偶數前面

思路: 依次判斷每個元素,若是奇數則放到odd列表中,若是偶數則放到even列表中。 然後將兩個列表合併再返回。 # -*- coding:utf-8 -*-] class Solution: def reOrderArray(self, array): # wr

劍指offer-13:調整陣列順序使奇數位於偶數前面

題目描述 輸入一個整數陣列,實現一個函式來調整該陣列中數字的順序,使得所有的奇數位於陣列的前半部分,所有的偶數位於陣列的後半部分,並保證奇數和奇數,偶數和偶數之間的相對位置不變。 思路 參考插入排序法 1.要想保證原有次序,則只能順次移動或相鄰交換。 2.i從左向右遍歷,找到第一

java 調整陣列順序使奇數位於偶數前面

原創微博,轉載請註明出處。 問題描述:輸入一個整數陣列,實現一個函式來調整該陣列中數字的順序,使得所有的奇數位於陣列的前半部分,所有的偶數位於陣列的後半部分,並保證奇數和奇數,偶數和偶數之間的相對位置不變。 解題思路:從 左向右 掃描給出的array陣列 j 指向的當前

調整陣列順序使奇數位於偶數前面

題目 輸入一個整數陣列,實現一個函式來調整該陣列中數字的順序,使得所有奇數位於陣列的前半部分,所有偶數位於陣列的後半部分。 分析 對於陣列的操作,插入是比較耗時的, 因為要移動插入位置之後的所有元素,騰出一個空位,供元素插入。所以對陣列的操作,儘量是交換不同位置

劍指offer(13) 調整陣列順序使奇數位於偶數前面

題目描述 輸入一個整數陣列,實現一個函式來調整該陣列中數字的順序,使得所有的奇數位於陣列的前半部分,所有的偶數位於陣列的後半部分,並保證奇數和奇數,偶數和偶數之間的相對位置不變。 解題思路 程式碼的完整性 這個題呢,需要調整奇偶數的順序,而且原先的相對位置不變。 頭指標從左向右遍歷,直至遇到

【劍指offer{11-14}】二進位制中1的個數、數值的整數次方、調整陣列順序使奇數位於偶數前面、連結串列中倒數第k個結點

二進位制中1的個數、數值的整數次方、調整陣列順序使奇數位於偶數前面、連結串列中倒數第k個結點 二進位制中1的個數 題目描述 輸入一個整數,輸出該數二進位制表示中1的個數。其中負數用補碼錶示。 C+

劍指offer:調整陣列順序使奇數位於偶數前面

題目描述 輸入一個整數陣列,實現一個函式來調整該陣列中數字的順序,使得所有的奇數位於陣列的前半部分,所有的偶數位於陣列的後半部分,並保證奇數和奇數,偶數和偶數之間的相對位置不變。 題目要求了在調整順序之後需要保證奇數和奇數,偶數和偶數之間的相對位置不變,因此,必須開闢新的