今天解的題目是第七十七題Combinations。題目要求從1到n之間選出k個數字,列出所有可能的組合。所謂「組合」指的是不考慮順序的情況,例如 [1,2] 和 [2,1] 被視為相同。程式的邏輯是透過遞迴函式來探索每個數字是否應該被選入組合中。使用一個暫存清單sol 來保存當前的選擇結果,當sol 的長度達到k 時,代表找到一個完整的組合,就將它加入最終答案ans。每次遞迴時,我們有兩種選擇:第一種是不選擇當前數字 x,直接遞迴往前處理下一個數字;第二種是選擇x,將它加入sol,再進一步遞迴處理,最後再移除x 進行回溯。程式中還加入了一個簡單的停止條件,代表當剩餘的數字比仍需的數字多時,可以先嘗試跳過當前數字,以減少不必要的遞迴運算。