南雄网站建设,杭州专业做网站的公司有哪些,北流网站建设,显示官网字样的网站怎么做力扣labuladong一刷day7共3题 文章目录 力扣labuladong一刷day7共3题一、216. 组合总和 III二、111. 二叉树的最小深度三、752. 打开转盘锁 一、216. 组合总和 III
题目链接#xff1a;https://leetcode.cn/problems/combination-sum-iii/ 思路#xff1a;还是组合只是既有n…力扣labuladong一刷day7共3题 文章目录 力扣labuladong一刷day7共3题一、216. 组合总和 III二、111. 二叉树的最小深度三、752. 打开转盘锁 一、216. 组合总和 III
题目链接https://leetcode.cn/problems/combination-sum-iii/ 思路还是组合只是既有n又有k。
class Solution {ListListInteger arrayLists new ArrayList();ListInteger list new ArrayList();int sum 0;public ListListInteger combinationSum3(int k, int n) {backTracking(k, n, 1);return arrayLists;}void backTracking(int k, int n, int index) {if (list.size() k sum n) {arrayLists.add(new ArrayList(list));return;}if (list.size() k) return;for (int i index; i 9 sumi n; i) {sum i;list.add(i);backTracking(k, n, i1);sum - i;list.remove(list.size()-1);}}
}二、111. 二叉树的最小深度
题目链接https://leetcode.cn/problems/minimum-depth-of-binary-tree/ 思路采用层序遍历。
public int minDepth(TreeNode root) {if (root null) return 0;DequeTreeNode queue new LinkedList();queue.add(root);int deep 0;while (!queue.isEmpty()) {int size queue.size();deep;for (int i 0; i size; i) {TreeNode node queue.poll();if (node.left ! null) queue.add(node.left);if (node.right ! null) queue.add(node.right);if (node.left null node.right null) {return deep;}}}return deep;}三、752. 打开转盘锁
题目链接https://leetcode.cn/problems/open-the-lock/ 思路相当于一个点每次周围有8个点可以走bfs。
class Solution {public int openLock(String[] deadends, String target) {SetString visited new HashSet();SetString set new HashSet();for (String deadend : deadends) {set.add(deadend);}DequeString queue new LinkedList();queue.add(0000);visited.add(0000);int keep 0;while (!queue.isEmpty()) {int size queue.size();for (int i 0; i size; i) {String cur queue.poll();if (cur.equals(target)) return keep;if (set.contains(cur)) continue;for (int j 0; j 4; j) {String up upOne(cur, j);if (!visited.contains(up)) {queue.add(up);visited.add(up);}String down downOne(cur, j);if (!visited.contains(down)) {queue.add(down);visited.add(down);}}}keep;}return -1;}String upOne(String s, int i) {char[] chars s.toCharArray();if (chars[i] 9) {chars[i] 0;}else {chars[i] 1;}return new String(chars);}String downOne(String s, int i) {char[] chars s.toCharArray();if (chars[i] 0){chars[i] 9;}else {chars[i] - 1;}return new String(chars);}}