給定乙個陣列input ,如果陣列長度n為奇數,則將陣列中最大的元素放到 output 陣列最中間的位置,如果陣列長度n為偶數,則將陣列中最大的元素放到 output 陣列中間兩個位置偏右的那個位置上,然後再按從大到小的順序,依次在第乙個位置的兩邊,按照一左一右的順序,依次存放剩下的數。
例如:input = output = ;
input = output =
**:
# include # include int * get(int *input, int lenth)
}//for (int i = 0; i < lenth; i++)
// std::cout << input[i] << " ";
//std::cout << std::endl;
int *output = (int *)malloc(sizeof(int)* lenth);
// 方法1:觀察資料,先放左邊的,即原陣列從右往左隔兩個數,再放中位數以及右邊的,即原陣列從左往右隔兩個,注意奇偶數個數不同,開始位置不同
//if (lenth % 2 == 0)
////else
//// 方法二,找出中位數(即原陣列第乙個),放到新陣列中間,然後將原陣列兩個兩個的一起處理,在中位數左邊和右邊分別放置。注意,奇偶個數不同時,處理方式不一樣
int posi;
if (lenth % 2 == 1)
}else
output[0] = input[lenth - 1]; // 偶數個數時,右側中位數單獨處理了,所以,最後乙個數沒有成對的處理
}for (int i = 0; i < lenth; i++)
std::cout << output[i] << " ";
return input;
}int main()
; // int input[6] = ;
int lenth = sizeof(input) / sizeof(int);
int *output = get(input, lenth);
std::cout << "ok";
}
思想:先排序,後按照奇偶個數不同,單獨處理。一左一右放,可以考慮到一次放一對。 華為機試 放蘋果
題目描述 把m個同樣的蘋果放在n個同樣的盤子裡,允許有的盤子空著不放,問共有多少種不同的分法?用k表示 5,1,1和1,5,1 是同一種分法。輸入每個用例包含二個整數m和n。0 m 10,1 n 10。樣例輸入 7 3 樣例輸出 輸入描述 輸入兩個int整數 輸出描述 輸出結果,int型 分析 輸入...
華為機試 放蘋果
題目描述 把m個同樣的蘋果放在n個同樣的盤子裡,允許有的盤子空著不放,問共有多少種不同的分法?用k表示 5,1,1和1,5,1 是同一種分法。資料範圍 0 m 10,1 n 10。本題含有多組樣例輸入。解題思路 動態規劃,兩種情況 1.如果有空盤子,那麼,相當於縮減為m個蘋果放在n 1個盤子裡的問題...
華為機試 放蘋果(遞推公式求解)
題目描述 把m個同樣的蘋果放在n個同樣的盤子裡,允許有的盤子空著不放,問共有多少種不同的分法?用k表示 5,1,1和1,5,1 是同一種分法。輸入每個用例包含二個整數m和n。0 m 10,1 n 10。樣例輸入 7 3樣例輸出 public static int count int m,int n ...