生物网站 template,小学生做甜品的网站,无锡优化网站,哪些企业用wordpress建站[LeetCode] 216. 组合总和 III [LeetCode] 216. 组合总和 III 文章解释 [LeetCode] 216. 组合总和 III 视频解释 题目: 找出所有相加之和为 n 的 k 个数的组合#xff0c;且满足下列条件#xff1a; 只使用数字1到9每个数字 最多使用一次 返回 所有可能的有效组合的列表 。该… [LeetCode] 216. 组合总和 III [LeetCode] 216. 组合总和 III 文章解释 [LeetCode] 216. 组合总和 III 视频解释 题目: 找出所有相加之和为 n 的 k 个数的组合且满足下列条件 只使用数字1到9每个数字 最多使用一次 返回 所有可能的有效组合的列表 。该列表不能包含相同的组合两次组合可以以任何顺序返回。 示例 1: 输入: k 3, n 7
输出: [[1,2,4]]
解释:
1 2 4 7
没有其他符合的组合了。 示例 2: 输入: k 3, n 9
输出: [[1,2,6], [1,3,5], [2,3,4]]
解释:
1 2 6 9
1 3 5 9
2 3 4 9
没有其他符合的组合了。 示例 3: 输入: k 4, n 1
输出: []
解释: 不存在有效的组合。
在[1,9]范围内使用4个不同的数字我们可以得到的最小和是1234 10因为10 1没有有效的组合。提示: 2 k 91 n 60 [LeetCode] 216. 组合总和 III
自己看到题目的第一想法 在 1... 9 一共 9 个数字中, 选出 k 个和为 n 的数字. 可以用递归(回溯)的方式, 遍历 9 个数字, 每次挑选出一个, 选出总和为 k 的序列即可.
看完代码随想录之后的想法 想法基本是一致的.
class Solution {private ListInteger path new ArrayList();private ListListInteger result new ArrayList();public ListListInteger combinationSum3(int k, int n) {backTracking(k, n, 0, 1);return result;}private void backTracking(int numberCount, int targetSum, int sum, int startIndex) {if (path.size() numberCount) {if (targetSum sum) {result.add(new ArrayList(path));}return;}for (int i startIndex; i 9 i targetSum - sum; i) {path.add(i);backTracking(numberCount, targetSum, sum i, i 1);path.remove(path.size() - 1);}}
}
自己实现过程中遇到哪些困难 无 [LeetCode] 17. 电话号码的字母组合 [LeetCode] 17. 电话号码的字母组合 文章解释 [LeetCode] 17. 电话号码的字母组合 视频解释 题目: 给定一个仅包含数字 2-9 的字符串返回所有它能表示的字母组合。答案可以按 任意顺序 返回。 给出数字到字母的映射如下与电话按键相同。注意 1 不对应任何字母。 示例 1 输入digits 23
输出[ad,ae,af,bd,be,bf,cd,ce,cf]示例 2 输入digits
输出[]示例 3 输入digits 2
输出[a,b,c]提示 0 digits.length 4digits[i] 是范围 [2, 9] 的一个数字。 [LeetCode] 17. 电话号码的字母组合
自己看到题目的第一想法 第一反应是, 数字到字母表需要有个映射, 写个函数保存到 MapCharacter, String 中. 遍历字符串中的每一个元素, 把该元素映射到对应的字母表, 遍历字母表选取其中一个字母, 添加到结果集, 然后开始递归选取下一个元素, 再将下一个元素映射到对应的字母表, 再遍历新的字母表选取其中一个字母, 添加到结果集. 当完成后, 就形成了最终的结果集.
看完代码随想录之后的想法 基本上是一致的. 1. 数字到字母表的映射可以用字符串数组 2. 从字符串数组中获取数字可以使用 ch - 0 的方式获取到对应的索引值
class Solution {private ListString result new ArrayList();private StringBuilder strBuilder new StringBuilder();String[] numberToChars new String[]{, , abc, def, ghi, jkl, mno, pqrs, tuv, wxyz};public ListString letterCombinations(String digits) {if (digits null || digits.length() 0) {return result;}backTracking(digits, 0);return result;}// 这里的 index 表示当前处理的是哪一个字母private void backTracking(String digits, int index) {if (digits.length() strBuilder.length()) {result.add(strBuilder.toString());return;}String chars numberToChars[digits.charAt(index) - 0];for (int i 0; i chars.length(); i) {strBuilder.append(chars.charAt(i));backTracking(digits, index 1);strBuilder.deleteCharAt(strBuilder.length() - 1);}}
}
自己实现过程中遇到哪些困难 没想到可以用 ch - 0 的方式, 计算出当前字符串对应的数字的值.