- 博客(18)
- 收藏
- 关注
原创 LeetCode39. 组合总和
题目给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 ,并以列表形式返回。你可以按 任意顺序 返回这些组合。candidates 中的 同一个 数字可以 无限制重复被选取 。如果至少一个数字的被选数量不同,则两种组合是不同的。对于给定的输入,保证和为 target 的不同组合数少于 150 个。示例 1:输入:candidates = [2,3,6,7], target =
2022-05-12 00:55:18 182
原创 LeetCode47. 全排列 II
题目给定一个可包含重复数字的序列 nums ,按任意顺序 返回所有不重复的全排列。示例 1:输入:nums = [1,1,2]输出:[[1,1,2],[1,2,1],[2,1,1]]示例 2:输入:nums = [1,2,3]输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]题解class Solution {List<List<Integer>> res = new LinkedList<>
2022-05-12 00:45:25 206
原创 LeetCode40. 组合总和 II
题目给定一个候选人编号的集合 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的每个数字在每个组合中只能使用 一次 。注意:解集不能包含重复的组合。示例 1:输入: candidates = [10,1,2,7,6,1,5], target = 8,输出:[[1,1,6],[1,2,5],[1,7],[2,6]]示例 2:输入: candidates = [2,5,2,1,2],
2022-05-12 00:40:26 164
原创 LeetCode90. 子集 II
题目给你一个整数数组 nums ,其中可能包含重复元素,请你返回该数组所有可能的子集(幂集)。解集 不能 包含重复的子集。返回的解集中,子集可以按 任意顺序 排列。示例 1:输入:nums = [1,2,2]输出:[[],[1],[1,2],[1,2,2],[2],[2,2]]示例 2:输入:nums = [0]输出:[[],[0]]题解class Solution {List<List<Integer>> res = new LinkedList<>
2022-05-12 00:34:41 277
原创 LeetCode77. 组合
题目给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合。你可以按 任何顺序 返回答案。示例 1:输入:n = 4, k = 2输出:[[2,4],[3,4],[2,3],[1,2],[1,3],[1,4],]示例 2:输入:n = 1, k = 1输出:[[1]]题解class Solution {List<List<Integer>> res = new LinkedList<>();// 记录回溯算法
2022-05-12 00:14:18 101
原创 LeetCode78. 子集
题目给你一个整数数组 nums ,数组中的元素 互不相同 。返回该数组所有可能的子集(幂集)。解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。示例 1:输入:nums = [1,2,3]输出:[[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3]]示例 2:输入:nums = [0]输出:[[],[0]]题解class Solution { List<List<Integer>> res = new LinkedList&
2022-05-12 00:10:30 61
原创 LeetCode127. 单词接龙
题目字典 wordList 中从单词 beginWord 和 endWord 的 转换序列 是一个按下述规格形成的序列 beginWord -> s1 -> s2 -> … -> sk:每一对相邻的单词只差一个字母。对于 1 <= i <= k 时,每个 si 都在 wordList 中。注意, beginWord 不需要在 wordList 中。sk == endWord给你两个单词 beginWord 和 endWord 和一个字典 wordList ,返回
2022-05-11 23:27:23 188
原创 LeetCode773. 滑动谜题
题目在一个 2 x 3 的板上(board)有 5 块砖瓦,用数字 1~5 来表示, 以及一块空缺用 0 来表示。一次 移动 定义为选择 0 与一个相邻的数字(上下左右)进行交换.最终当板 board 的结果是 [[1,2,3],[4,5,0]] 谜板被解开。给出一个谜板的初始状态 board ,返回最少可以通过多少次移动解开谜板,如果不能解开谜板,则返回 -1 。示例 1:输入:board = [[1,2,3],[4,0,5]]输出:1解释:交换 0 和 5 ,1 步完成示例 2:输
2022-05-11 18:33:21 351
原创 LeetCode752. 打开转盘锁
题目你有一个带有四个圆形拨轮的转盘锁。每个拨轮都有10个数字: ‘0’, ‘1’, ‘2’, ‘3’, ‘4’, ‘5’, ‘6’, ‘7’, ‘8’, ‘9’ 。每个拨轮可以自由旋转:例如把 ‘9’ 变为 ‘0’,‘0’ 变为 ‘9’ 。每次旋转都只能旋转一个拨轮的一位数字。锁的初始数字为 ‘0000’ ,一个代表四个拨轮的数字的字符串。列表 deadends 包含了一组死亡数字,一旦拨轮的数字和列表里的任何一个元素相同,这个锁将会被永久锁定,无法再被旋转。字符串 target 代表可以解锁的数字
2022-05-11 17:28:53 97
原创 LeetCode111. 二叉树的最小深度
题目给定一个二叉树,找出其最小深度。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。说明:叶子节点是指没有子节点的节点。示例 1:输入:root = [3,9,20,null,null,15,7]输出:2示例 2:输入:root = [2,null,3,null,4,null,5,null,6]输出:5题解这题直接套用BFS模版class Solution { public int minDepth(TreeNode root) { if(root
2022-05-11 16:57:58 123
原创 LeetCode51. N 皇后
题目n 皇后问题 研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。给你一个整数 n ,返回所有不同的 n 皇后问题 的解决方案。每一种解法包含一个不同的 n 皇后问题 的棋子放置方案,该方案中 ‘Q’ 和 ‘.’ 分别代表了皇后和空位。示例 1:输入:n = 4输出:[[“.Q…”,“…Q”,“Q…”,“…Q.”],[“…Q.”,“Q…”,“…Q”,“.Q…”]]解释:如上图所示,4 皇后问题存在两个不同的解法。题解因为皇后是一行一行从上往下放的,所以左
2022-05-11 16:24:26 122
原创 LeetCode46. 全排列
题目描述给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。示例 1:输入:nums = [1,2,3]输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]示例 2:输入:nums = [0,1]输出:[[0,1],[1,0]]示例 3:输入:nums = [1]输出:[[1]]题解遇到这种题 先不用想着dfs的参数填什么,可以直接先写递归函数dfs。用到什么参数再补充。画好递归树,想
2022-05-11 12:41:21 103
原创 LeetCode9. 回文数
题目描述给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121 是回文,而 123 不是。示例 1:输入:x = 121输出:true示例 2:输入:x = -121输出:false解释:从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3:输入:x = 10输出:false解释:从右向左读, 为 01 。因此它不是一个回文数。解
2022-05-11 00:14:17 163
原创 LeetCode1. 两数之和
题目描述给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。示例 1:输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。示例 2:输入:nums = [3,2,4], targe
2022-05-10 23:37:40 55
原创 go基础(一)
第二章程序结构2.1名称在Go中首字母大写表示导出,意味着对包外可见和可访问Go的命名风格是驼峰式2.2声明Go中主要有4个声明:变量(var)常量(const)类型(type)函数(func)Go程序的组织是存储在一个以.go为后缀的文件里。每一个文件以package声明开头,表明文件属于哪个包。后面跟着import,然后是包级别的类型、变量、常量、函数的声明2.3变量var声明方式var name type = expressionvar i , j ,
2022-05-06 00:13:26 87
原创 数组算法技巧
文章目录前缀和数组一维数组中的前缀和[303. 区域和检索 - 数组不可变](https://leetcode-cn.com/problems/range-sum-query-immutable/)二维矩阵中的前缀和[304. 二维区域和检索 - 矩阵不可变](https://leetcode-cn.com/problems/range-sum-query-2d-immutable/)[560. 和为 K 的子数组](https://leetcode-cn.com/problems/subarray-sum
2022-05-04 21:53:09 1153
原创 PAT简单实用的测试小技巧
用文本数据实现输入输出#define LOCAL#include <iostream>#include <cstdio>#include <string.h>#include <string>using namespace std;int main(int argc, char** argv) {#ifdef LOCAL freopen("data.txt","r",stdin); freopen("out.txt","w"
2020-05-29 23:57:27 1209
原创 最简单的进制转化方法
利用ssprintf和sscanf实现进制转换int main(int argc, char** argv) { char str[100] = "0X12"; char change_str[100]; int a, b; sscanf_s(str, "%x", &a); sprintf_s(change_str, "%d", a); printf("%s", change_str);}先用输入字符串方式读入0x12*(十六进制)*然后便可以利用sscanf将这个变量值以十六进
2020-05-29 17:14:22 462
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人