前乙個日誌解決了1-n個數字的排列。假如是n個不同元素的排列,就要用到2個陣列,不能簡單再用變數i來模擬了。
但是,解決問題的思路是一樣的,還是在每個位置上遍歷所有可能,判斷能否放置該元素,然後向後移動,直到結尾。
//判斷b[pos]的元素在a中是否已經出現過
int can_place_1(int *a, int *b, int j, int pos)
;file * fp = fopen("./permutation_out.txt", "w+");
if(null!=fp)
fclose(fp);
}最後輸出檔案的內容為:
permutation:
a b c d
permutation:
a b d c
permutation:
a c b d
permutation:
a c d b
permutation:
a d b c
permutation:
a d c b
符合預期的結果,完成。
尋找陣列中不相同元素的個數
題意 乙個整數陣列,計算該陣列中不相同整數的個數。如a 則輸出不相同的個數為7.方法一是使用hash陣列,將hash陣列裡面的數全部制為0 然後hash a i 為0時,將其設定為1 最後hash陣列的和就是不同數字的數目。此種方法的缺點就是只能適合整形陣列,其他陣列不適合 但是優點就是時間複雜度小...
生成k個小於n的互不相同的隨機數
核心 讓每個數被選中的概率都為k n.隨機取出乙個數,剩下的裡面再取出乙個數,重複k次。方法一 利用洗牌的原理,將n個數 0至n 1 按次序排好,讓最後乙個數和乙個隨機 0 n 1 挑選出的位子進行互換,再讓倒數第2個數和 0 n 2 位置中挑選出來的位置進行互換,依次執行k次,陣列中的最後k個數就...
zip函式中的幾個迭代器元素數目不相同會怎麼樣
它的功能可以看這個 在這裡需要注意一點,當通過for迴圈遍歷時,遍歷會在某一iter遍歷到頭後停止,也就是當其中乙個iter的元素數量小於另乙個,那麼元素多的iter的剩餘元素不會被遍歷。這個主要是我在看faster rcnn原始碼時看到的,覺得很不錯。其中的 如下 for iter in pred...