題目:
調整陣列資料使奇數全部在偶數前面
解法一:
void oddnumberfront1(int
*arr,int
length)
int* first;
int* last;
first=arr;
last=arr+length-1;
while(first
while (first
if(first}}
這種解法比較單一,只能解答這一種問題
解法二:將判斷是否為偶數單獨作為乙個函式,這樣要是限制條件改變後,只改變這個函式即可,下面新增了可被3整除的在後面,不被的在前面
#include
#include
using namespace std;
bool iseven(int n)//判斷是否為偶數
bool is3multiplc(int n)//判斷是否可以被3整除
void reorder(int
*arr,int
length,bool(*func)(int))
while (first
if(first
}}void mulitplc(int
*arr,int
length,bool(*func)(int))
while (first
if(first
}}void reorderoddeven(int * arr,int
length)
void muliptlc3front(int * arr,int
length)
void printarr(int* arr,int
length)
cout
reorderoddeven(arr,9);
printarr(arr,9);
}void test2()
; reorderoddeven(arr1,1);
printarr(arr1,1);
}void test3()
void test4()
; muliptlc3front(arr,9);
printarr(arr,9);
}int main()
結果
劍指offer 面試題14 剪繩子
給你一段長度為n的繩子,請把繩子剪成m段 m n都是整數,n 1並且m 1 每段繩子的長度記為k 0 k 1 k m 請問k 0 k 1 k m 可能的最大乘積是多少?例如,當繩子的長度是8時,我們把它剪成長度分別為2 3 3的三段,此時得到的最大乘積是18。第一種是動態規劃 自下而上 public...
《劍指Offer》面試題14 剪繩子
要求 剪繩子 給你一根長度為n的繩子,請把繩子剪成m段 m n都是整數,n 1,並且m 1 每段繩子的長度記為k 0 k 1 k m 請問看k 0 k 1 k m 可能的最大乘積是多少?例如,當繩子的長度是8時,我們把它剪成長度分別為2,3,3,的三段,此時得到的最大乘積是18。測試用例 功能測試 ...
面試題14 劍指offer 剪繩子
題目 給你一根長度為n的繩子,請把繩子剪成m段 m和n都是整數,n 1並且m 1 每段繩子的長度記為k 0 k 1 k m 請問k 0 k 1 k m 可能的最大乘積是多少?例如,當繩子的長度為8時,我們把它剪成長度分別為2,3,3的三段,此時得到的最大乘積是18.思路 利用動態規劃法,f n 表示...