輸入兩個整數n和sum,從數列1,2,3.......n 中隨意取幾個數,使其和等於sum,要求將其中所有的可能組合列出來。
注意到取n,和不取n個區別即可,考慮是否取第n個數的策略,可以轉化為乙個只和前n-1個數相關的問題。
/** 尋找和為定值的多個數 */
public
class
searchsomesurevalue
if (n>m)
if (n==m)
}system.out.println();
flag[n-1]=0;
}flag[n-1]=1;
findresult(n-1, m-n, flag);
flag[n-1]=0;
findresult(n-1, m, flag);
}public
static
void
main(string args)
}
程式設計之法 面試和演算法心得 筆記
一 字串翻轉 三步反轉法,先將兩部分分別反轉,然後再整體反轉。abcdef defabc 1 cbadef 旋轉前一部分 2 cbafed 旋轉後一部分 3 defabc 整個旋轉 那麼將 i am a student.studnet.a am i 也類似。二 字串的包含 a abcxyzlmnop...
程式設計之法 面試和演算法心得(尋找和為定值的兩個數)
輸入乙個陣列和乙個數字,在陣列中查詢兩個數,使得它們的和正好是輸入的那個數字。要求時間複雜度是o n 如果有多對數字的和等於輸入的數字,輸出任意一對即可。例如輸入陣列1 2 4 7 11 15和數字15。由於4 11 15,因此輸出4和11。咱們試著一步一步解決這個問題 注意闡述中數列有序無序的區別...
程式設計之法 面試和演算法心得(奇偶調序)
輸入乙個整數陣列,調整陣列中數字的順序,使得所有奇數字於陣列的前半部分,所有偶數字於陣列的後半部分。要求時間複雜度為o n 最容易想到的辦法是從頭掃瞄這個陣列,每碰到乙個偶數,拿出這個數字,並把位於這個數字後面的所有數字往前挪動一位。挪完之後在陣列的末尾有乙個空位,然後把該偶數放入這個空位。由於每碰...