知識點/資料結構:陣列
題目描述
輸入乙個整數陣列,實現乙個函式來調整該陣列中數字的順序,使得所有的奇數字於陣列的前半部分,所有的偶數字於陣列的後半部分,並保證奇數和奇數,偶數和偶數之間的相對位置不變。
1:自己寫的**,借助了其他的記憶體空間
奇數和奇數 偶數和偶數相對位置不變 指的是奇數之間的先後順序不變,偶數也是。
自己的做法是把奇數挑選出來 ,放在乙個新的陣列裡邊;把偶數挑選出來。放在乙個新的陣列裡邊。最後把兩個資訊的陣列覆寫帶原來的陣列裡邊。但是自己的**太長了 不簡潔。
public class solution {
public void reorderarray(int array) {
int count1=0; int count2=0;
for(int i=0;i2:用了兩個迴圈巢狀進行了遍歷陣列,時間複雜度為還是n(n^2),可以考慮用右移運算子代替取餘運算
public class solution{
public void reorderarray(int array){
for(int i=0;i較為簡潔的思路(不滿足相對位置不變,下面的解法是發生變化的):我們可以維護兩個指標,第乙個指標初始化時指向陣列的第乙個數字,它只向後移動;第二個指標初始化時指向陣列的最後乙個數字,它只向前移動。在兩個指標相遇之前,第乙個指標總是位於第二個指標的前面。如果第乙個數字指向的數字是偶數,並且第二個數字指向的數字是奇數,則交換兩個數字。
public class solution{
public void reorderarray(int array){
int a=0;
int b=array.length-1;
while(a執行結果如下:
您的**已儲存
答案錯誤:您提交的程式沒有通過所有的測試用例
case通過率為0.00%
測試用例:
[1,2,3,4,5,6,7]
對應輸出應該為:
[1,3,5,7,2,4,6]
你的輸出為:
[1,7,3,5,4,6,2]
劍指offer 陣列
資料是最簡單的資料結構,它佔據一塊連續的記憶體並按照順序儲存資料。建立陣列時,首先指點陣列的容量大小,然後根據大小分配記憶體。缺點 空間效率不高。經常有空閒的區域滅有得到充分利用。優點 時間效率很高。可以根據時間效率高的特點,來實現簡單的雜湊表 把陣列的下標設為雜湊表的鍵值,陣列中的每乙個數字設為雜...
劍指offer 陣列
public class 03 陣列中的重複數字 swap number,number i i return 1 交換 public void swap int number,int i,int j public class 03 陣列中的重複數字 return 1 public intfindre...
劍指offer 陣列
問題描述 在乙個二維陣列中 每個一維陣列的長度相同 每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。function find target,array return false 問題描述 在乙個長度...