随笔分类 -  Java代码随想录学习笔记

回溯理论
摘要:回溯本质: 回溯模板: 阅读全文

posted @ 2023-09-13 22:42 HHHuskie 阅读(15) 评论(0) 推荐(0)

416. 分割等和子集
摘要:416. 分割等和子集 给你一个 只包含正整数 的 非空 数组 nums 。请你判断是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。 示例 1: 输入:nums = [1,5,11,5] 输出:true 解释:数组可以分割成 [1, 5, 5] 和 [11] 。 示例 2: 输入:num 阅读全文

posted @ 2023-07-27 23:09 HHHuskie 阅读(41) 评论(0) 推荐(0)

51. N 皇后
摘要:51. N 皇后 按照国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。 n 皇后问题 研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。 给你一个整数 n ,返回所有不同的 n 皇后问题 的解决方案。 每一种解法包含一个不同的 n 皇后问题 的 阅读全文

posted @ 2023-03-19 16:23 HHHuskie 阅读(20) 评论(0) 推荐(0)

39. 组合总和
摘要:39. 组合总和 给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 ,并以列表形式返回。你可以按 任意顺序 返回这些组合。 candidates 中的 同一个 数字可以 无限制 阅读全文

posted @ 2023-03-19 11:48 HHHuskie 阅读(16) 评论(0) 推荐(0)

102. 二叉树的层序遍历
摘要:102. 二叉树的层序遍历 给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。 示例 1: 输入:root = [3,9,20,null,null,15,7] 输出:[[3],[9,20],[15,7]] 示例 2: 输入:root = [1] 输出: 阅读全文

posted @ 2022-11-25 23:26 HHHuskie 阅读(27) 评论(0) 推荐(0)

二叉树的统一迭代法
摘要:迭代法前序遍历代码如下: class Solution { public List<Integer> preorderTraversal(TreeNode root) { List<Integer> result = new LinkedList<>(); Stack<TreeNode> st = 阅读全文

posted @ 2022-11-19 16:55 HHHuskie 阅读(21) 评论(0) 推荐(0)

二叉树的前、中、后序遍历(迭代版)
摘要:// 前序遍历顺序:中-左-右,入栈顺序:中-右-左 class Solution { public List<Integer> preorderTraversal(TreeNode root) { List<Integer> result = new ArrayList<>(); if (root 阅读全文

posted @ 2022-11-19 16:22 HHHuskie 阅读(34) 评论(0) 推荐(0)

二叉树的前序、中序、后序遍历
摘要:144. 二叉树的前序遍历 /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} * TreeN 阅读全文

posted @ 2022-11-18 21:14 HHHuskie 阅读(21) 评论(0) 推荐(0)

347. 前 K 个高频元素
摘要:347. 前 K 个高频元素 给你一个整数数组 nums 和一个整数 k ,请你返回其中出现频率前 k 高的元素。你可以按 任意顺序 返回答案。 示例 1: 输入: nums = [1,1,1,2,2,3], k = 2 输出: [1,2] 示例 2: 输入: nums = [1], k = 1 输 阅读全文

posted @ 2022-11-17 20:33 HHHuskie 阅读(30) 评论(0) 推荐(0)

239. 滑动窗口最大值
摘要:239. 滑动窗口最大值 给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。 返回 滑动窗口中的最大值 。 示例 1: 输入:nums = [1,3,-1,-3,5,3,6,7], k = 3 阅读全文

posted @ 2022-11-16 20:51 HHHuskie 阅读(36) 评论(0) 推荐(0)

150. 逆波兰表达式求值
摘要:150. 逆波兰表达式求值 根据 逆波兰表示法,求表达式的值。 有效的算符包括 +、-、*、/ 。每个运算对象可以是整数,也可以是另一个逆波兰表达式。 注意 两个整数之间的除法只保留整数部分。 可以保证给定的逆波兰表达式总是有效的。换句话说,表达式总会得出有效数值且不存在除数为 0 的情况。 示例  阅读全文

posted @ 2022-11-16 16:44 HHHuskie 阅读(33) 评论(0) 推荐(0)

1047. 删除字符串中的所有相邻重复项
摘要:1047. 删除字符串中的所有相邻重复项 给出由小写字母组成的字符串 S,重复项删除操作会选择两个相邻且相同的字母,并删除它们。 在 S 上反复执行重复项删除操作,直到无法继续删除。 在完成所有重复项删除操作后返回最终的字符串。答案保证唯一。 示例: 输入:"abbaca" 输出:"ca" 解释: 阅读全文

posted @ 2022-11-16 15:17 HHHuskie 阅读(35) 评论(0) 推荐(0)

20. 有效的括号
摘要:20. 有效的括号 给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 每个右括号都有一个对应的相同类型的左括号。 示例 1: 输入:s = "()" 输出:tru 阅读全文

posted @ 2022-11-16 10:49 HHHuskie 阅读(26) 评论(0) 推荐(0)

225. 用队列实现栈
摘要:225. 用队列实现栈 请你仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作(push、top、pop 和 empty)。 实现 MyStack 类: void push(int x) 将元素 x 压入栈顶。 int pop() 移除并返回栈顶元素。 int top() 返 阅读全文

posted @ 2022-11-15 16:03 HHHuskie 阅读(23) 评论(0) 推荐(0)

232. 用栈实现队列
摘要:232. 用栈实现队列 请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(push、pop、peek、empty): 实现 MyQueue 类: void push(int x) 将元素 x 推到队列的末尾 int pop() 从队列的开头移除并返回元素 int peek() 返 阅读全文

posted @ 2022-11-14 20:43 HHHuskie 阅读(24) 评论(0) 推荐(0)

459. 重复的子字符串
摘要:459. 重复的子字符串 给定一个非空的字符串 s ,检查是否可以通过由它的一个子串重复多次构成。 示例 1: 输入: s = "abab" 输出: true 解释: 可由子串 "ab" 重复两次构成。 示例 2: 输入: s = "aba" 输出: false 示例 3: 输入: s = "abc 阅读全文

posted @ 2022-11-14 19:18 HHHuskie 阅读(32) 评论(0) 推荐(0)

28. 找出字符串中第一个匹配项的下标
摘要:28. 找出字符串中第一个匹配项的下标 给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串的第一个匹配项的下标(下标从 0 开始)。如果 needle 不是 haystack 的一部分,则返回 -1。 示例 1: 输入:haystack 阅读全文

posted @ 2022-11-14 17:00 HHHuskie 阅读(49) 评论(0) 推荐(0)

剑指 Offer 58 - II. 左旋转字符串
摘要:剑指 Offer 58 - II. 左旋转字符串 字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位得到的结果"cdefgab"。 示例 1: 输入: s = "abcdefg" 阅读全文

posted @ 2022-11-14 11:01 HHHuskie 阅读(19) 评论(0) 推荐(0)

151. 反转字符串中的单词(字符串常用api)
摘要:151. 反转字符串中的单词 给你一个字符串 s ,请你反转字符串中 单词 的顺序。 单词 是由非空格字符组成的字符串。s 中使用至少一个空格将字符串中的 单词 分隔开。 返回 单词 顺序颠倒且 单词 之间用单个空格连接的结果字符串。 注意:输入字符串 s中可能会存在前导空格、尾随空格或者单词间的多 阅读全文

posted @ 2022-11-13 17:32 HHHuskie 阅读(78) 评论(0) 推荐(0)

541. 反转字符串 II
摘要:541. 反转字符串 II 给定一个字符串 s 和一个整数 k,从字符串开头算起,每计数至 2k 个字符,就反转这 2k 字符中的前 k 个字符。 如果剩余字符少于 k 个,则将剩余字符全部反转。 如果剩余字符小于 2k 但大于或等于 k 个,则反转前 k 个字符,其余字符保持原样。 示例 1: 输 阅读全文

posted @ 2022-11-10 16:11 HHHuskie 阅读(23) 评论(0) 推荐(0)

导航