一次過 Lintcode 90 k數和 II

2021-09-14 04:40:20 字數 674 閱讀 5200

給定n個不同的正整數,整數k(1<= k <= n)以及乙個目標數字。    

在這n個數裡面找出k個數,使得這k個數的和等於目標數字,你需要找出所有滿足要求的方案。

example 1:

input: [1,2,3,4], k = 2, target = 5

output: [[1,4],[2,3]]

example 2:

input: [1,3,4,6], k = 3, target = 8

output: [[1,3,4]]

標準的dfs解法。注意優化的點,target表示為距離當前目標還需要的數值,由於都是正整數,所以當target<0代表已經超過了,直接返回,當target==0即滿足條件,當target> ksumii(int a, int k, int target)

private void dfs(int a, int k, int target, listlist, list> res, int index)

for(int i=index; itarget)

break;

list.add(a[i]);

dfs(a, k, target - a[i], list, res, i+1);

list.remove(list.size()-1);}}

}

一次過 Lintcode 488 快樂數

寫乙個演算法來判斷乙個數是不是 快樂數 乙個數是不是快樂是這麼定義的 對於乙個正整數,每一次將該數替換為他每個位置上的數字的平方和,然後重複這個過程直到這個數變為1,或是無限迴圈但始終變不到1。如果可以變為1,那麼這個數就是快樂數。19 就是乙個快樂數。1 2 9 2 82 8 2 2 2 68 6...

一次過 Lintcode 5 第k大元素

在陣列中找到第k大的元素 給出陣列 9,3,2,4,8 第三大的元素是4 給出陣列 1,2,3,4,5 第一大的元素是5,第二大的元素是4,第三大的元素是3,以此類推 要求時間複雜度為o n 空間複雜度為o 1 你可以交換陣列中的元素的位置 看到找第k大的元素,第一反應是使用優先佇列。時間複雜度為o...

一次過 Lintcode 496 玩具工廠

工廠模式是一種常見的設計模式。請實現乙個玩具工廠toyfactory用來產生不同的玩具類。可以假設只有貓和狗兩種玩具。toyfactory tf toyfactory toy toy tf.gettoy dog toy.talk wow toy tf.gettoy cat toy.talk meow...