9.6第四周
zzh123353
越努力越幸运
展开
-
LeetCode 有效的括号字符串
题目给定一个只包含三种字符的字符串:( ,) 和 *,写一个函数来检验这个字符串是否为有效字符串。有效字符串具有如下规则:1.任何左括号 ( 必须有相应的右括号 )。2.任何右括号 ) 必须有相应的左括号 ( 。3.左括号 ( 必须在对应的右括号之前 )。4.* 可以被视为单个右括号 ) ,或单个左括号 ( ,或一个空字符串。5.一个空字符串也被视为有效字符串。题解 栈显然,这种题目肯定要用栈,用栈记录下标会让题目变得十分简单!建立两个栈,一个用来记录左括号的下标,另一个用来记录*的下标!原创 2021-09-12 11:47:38 · 182 阅读 · 0 评论 -
LeetCode回溯(N皇后与解数独)
51 N皇后n 皇后问题 研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。给你一个整数 n ,返回所有不同的 n 皇后问题 的解决方案。每一种解法包含一个不同的 n 皇后问题 的棋子放置方案,该方案中 ‘Q’ 和 ‘.’ 分别代表了皇后和空位。解法 回溯法N皇后要注意两个皇后不能同时出现在同一行、同一列、同一左斜线和同一右斜线。同一行可在递归时完成记录,不需要额外的容器记录,同一列、左斜线和右斜线都是需要容器专门去记录,可以观察到斜线容器的长度为2 * n -原创 2021-09-11 15:18:22 · 106 阅读 · 0 评论 -
LeetCode省份数量
题目 省份数量有 n 个城市,其中一些彼此相连,另一些没有相连。如果城市 a 与城市 b 直接相连,且城市 b 与城市 c 直接相连,那么城市 a 与城市 c 间接相连。省份 是一组直接或间接相连的城市,组内不含其他没有相连的城市。给你一个 n x n 的矩阵 isConnected ,其中 isConnected[i][j] = 1 表示第 i 个城市和第 j 个城市直接相连,而 isConnected[i][j] = 0 表示二者不直接相连。返回矩阵中 省份 的数量。题解 DFS框架:原创 2021-09-11 09:45:17 · 82 阅读 · 0 评论 -
LeetCode验证回文字符串||
题目 验证回文字符串给定一个非空字符串 s,最多删除一个字符。判断是否能成为回文字符串。题解 双指针题目并不是很难,思路也很清晰,一个指针l从左往右,一个指针r从右向左,如果两个指针的值不相等,就分为两部分,[l + 1, r] || [l, r - 1]任意一部分为回文字符串都可以!一开始我并没有写成函数的形式,用了if语句,处理边界条件时候比较难受,所以要在合适的时候写函数,会简化很多!附完整代码:class Solution {public: bool judge(string原创 2021-09-10 16:08:17 · 90 阅读 · 0 评论 -
LeetCode最小覆盖字串
给你一个字符串 s 、一个字符串 t 。返回 s 中涵盖 t 所有字符的最小子串。如果 s 中不存在涵盖 t 所有字符的子串,则返回空字符串 “” 。注意:对于 t 中重复字符,我们寻找的子字符串中该字符数量必须不少于 t 中该字符数量。如果 s 中存在这样的子串,我们保证它是唯一的答案。题解 滑动窗口本题主要使用滑动窗口进行求解,即两个指针l与r都是从最左端向最右端进行移动,并且l的位置一定在r的左边或者重合,使用了长度为128容器映射字符,cnt代表目前每个字符缺少的数量,flag表示字符在原创 2021-09-10 15:05:57 · 119 阅读 · 0 评论 -
LeetCode环形链表
题目 环形链表||给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。注意,pos 仅仅是用于标识环的情况,并不会作为参数传递到函数中。说明:不允许修改给定的链表。进阶:你是否可以使用 O(1) 空间解决此题?题解 哈希哈希的话比较简单,建立一个set<ListNode*> 的哈希,遇见一个没有出现过的结点就插入原创 2021-09-10 11:15:49 · 64 阅读 · 0 评论 -
LeetCode验证二叉搜索树
验证二叉搜索树给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树。有效 二叉搜索树定义如下:节点的左子树只包含 小于 当前节点的数。节点的右子树只包含 大于 当前节点的数。所有左子树和右子树自身必须也是二叉搜索树题解 递归验证一棵树是否为二叉搜索树,根据二叉搜索树的特点,除了根节点的每一个节点都会有一个取值范围[lower, upper];可以根据这个条件写出递归的终止条件:附代码:/** * Definition for a binary tree node. *原创 2021-09-09 20:14:14 · 139 阅读 · 0 评论 -
LeetCode非递减序列
题目 非递减序列给你一个长度为 n 的整数数组,请你判断在 最多 改变 1 个元素的情况下,该数组能否变成一个非递减数列。我们是这样定义一个非递减数列的: 对于数组中任意的 i (0 <= i <= n-2),总满足 nums[i] <= nums[i + 1]。题解 贪心贪心主要是体现在选择符合条件最小的那一个数字。具体思路:最多只允许修改一次数据,所以可以设置一个标志位flag,修改完一次以后,flag = false,再有不符合条件的数据的话就直接返回false;当遇到原创 2021-09-09 19:35:45 · 176 阅读 · 0 评论