每日一題 LeetCode之電話號碼的字母組合

2021-10-03 23:25:59 字數 634 閱讀 9096

給定乙個僅包含數字 2-9 的字串,返回所有它能表示的字母組合。

給出數字到字母的對映如下(與**按鍵相同)。注意 1 不對應任何字母。

示例:輸入:「23」

輸出:[「ad」, 「ae」, 「af」, 「bd」, 「be」, 「bf」, 「cd」, 「ce」, 「cf」].

思路:典型的回溯演算法,在當前數字所代表的字串中任選乙個字元,再在後面的數字中代表的字串選擇乙個字元,依次往後類推,類似與全排列。

public list

lettercombinations

(string digits)

public

void

dfs(hashmap

hashmap,string digits,

int index,list res,stringbuilder sb)

if(hashmap.

containskey

(digits.

charat

(index)))

}return

;}

每日一題 LeetCode

在陣列中的兩個數字,如果前面乙個數字大於後面的數字,則這兩個數字組成乙個逆序對。輸入乙個陣列,求出這個陣列中的逆序對的總數。示例 1 輸入 7,5,6,4 輸出 5 限制 0 陣列長度 50000 思想是 分治演算法 所有的 逆序對 於 3 個部分 左邊區間的逆序對 右邊區間的逆序對 橫跨兩個區間的...

LeetCode每日一題 電話號碼 回溯演算法

輸入法九鍵,每個按鍵都代表著不用的字母,我們需要找到不同字影射,來進行不同序列的組成。如下是leetcode第十七題。給定乙個僅包含數字 2 9 的字串,返回所有它能表示的字母組合。給出數字到字母的對映如下 與 按鍵相同 注意 1 不對應任何字母。示例 輸入 23 輸出 ad ae af bd be...

每日一題 LeetCode之括號生成

給出 n 代表生成括號的對數,請你寫出乙個函式,使其能夠生成所有可能的並且有效的括號組合。例如,給出 n 3,生成結果為 思路 使用深度優先遍歷實現,每乙個位置要麼是 要麼是 我們用兩個變數left和right儲存 和 的剩餘個數。每次遞迴,left或right減1,字串新增乙個相應的括號,當lef...