調整陣列順序使奇數位於偶數前面,偶數和偶數之間的相對位置不變
題目:輸入一個整數陣列,實現一個函式來調整該陣列中數字的順序,使得所有的奇數位於陣列的前半部分,所有的偶數位於位於陣列的後半部分,並保證奇數和奇數,偶數和偶數之間的相對位置不變。
思路:先掃描一遍陣列,做三件事,1、奇數往前挪,2、統計偶數個數,3、儲存偶數到佇列。掃描結束後,奇數都被挪到了前邊,緊湊的挨在一塊,後邊留出了一些空餘的位置,位置的個數就是偶數的個數。將儲存在佇列裡邊的偶數按照進佇列的順序塞到後邊的空餘位置即可。
import java.util.LinkedList; public class Solution { public void reOrderArray(int [] array) { LinkedList<Integer> queue=new LinkedList<>(); /*記錄偶數的個數*/ int even_numbers=0; /*掃描一遍,奇數往前挪,偶數儲存起來*/ for(int i=0;i<array.length;i++){ if(array[i]%2==0){ even_numbers++; queue.add(array[i]); }else{ array[i-even_numbers]=array[i]; } } /*上一步奇數往前挪動的時候後面留出了event_numbers個位置 * 儲存在佇列裡邊的偶數按照出現順序依次填進這些空餘的位置*/ for(int i=array.length-even_numbers;i<array.length;i++){ array[i]=queue.pop(); } } }
相關文章
- 【劍指Offer】調整陣列順序使奇數位於偶數前面陣列
- JZ-013-調整陣列順序使奇數位於偶數前面陣列
- 面試題21:調整陣列順序奇數位於偶數前面面試題陣列
- 劍指 Offer 21. 調整陣列順序使奇數位於偶數前面陣列
- 劍指offer面試題14 調整陣列順序使奇數位於偶數前面面試題陣列
- [每日一題] 第十一題:調整陣列順序使奇數位於偶數前面每日一題陣列
- 【劍指Offer學習】【面試題14 :調整陣列順序使奇數位於偶數前面】面試題陣列
- 【C語言】調整陣列使奇數全部都位於偶數前面。C語言陣列
- LeetCode題解(Offer21):調整陣列順序使奇數位於偶數前面(Python)LeetCode陣列Python
- 陣列進行奇數和偶數操作 把奇數放在陣列前面 偶數放在陣列後面陣列
- 演算法學習記錄十一(C++)--->調整陣列順序使奇數前偶數後演算法C++陣列
- 面試演算法題(4)--將一個整數陣列中的所有奇數放到偶數前面面試演算法陣列
- 求陣列內所有偶數的和陣列
- JavaScript 奇數行或者偶數行JavaScript
- 第三章:查詢與排序(下)------------- 3.8題解_調整陣列順序-奇數在左偶數在右排序陣列
- Table tr 奇數偶數行漸變色Jquery實現jQuery
- 統計位數為偶數的數字(C++)C++
- 面試題-使用執行緒交替列印奇數偶數面試題執行緒
- 面試題 - 使用執行緒交替列印奇數偶數面試題執行緒
- JavaScript獲取奇數行或者偶數行程式碼JavaScript行程
- c語言 將一個陣列中的奇數和偶數分開放在一起C語言陣列
- 1到100迴圈,並把奇數放到陣列中,把偶數放到map中陣列
- 怎麼判斷Python數字中的偶數Python
- CF365D-區間內出現偶數次的數的異或和
- [譯] 斐波那契數列中的偶數 (Python vs. JavaScript)PythonJavaScript
- 計算1000以內所有偶數和.
- 【Oracle】對RID為偶數的記錄進行操作Oracle
- 輸入一個整數陣列,輸出奇偶數相間排列的陣列陣列
- 關於原始對偶演算法(拉格朗日對偶)演算法
- 重定位表中的偶數規則,經歷pklite之dll
- UVA 11464-Even Parity(偶數矩陣-開關問題)矩陣
- 解析對偶理論與對偶單純性法
- 隨機生成100個整數存入一個順序表,整數範圍在[100,200)之間,輸出表中所有元素;然後去掉其中所有的偶數,輸出表中所有元素。隨機
- 【Tips】獲取結果集中偶數行記錄
- 數字分頻器設計(偶數分頻、奇數分頻、小數分頻、半整數分頻、狀態機分頻|verilog程式碼|Testbench|模擬結果)
- 如何查詢總和等於給定數字的整數陣列中的所有對陣列
- 寫給設計師的字偶距調整指南
- Vue中使用js實現保留小數的奇入偶不入,四捨六入的計算VueJS