Leetcode
phoenixstx
这个作者很懒,什么都没留下…
展开
-
2021-09-30Leetcode1249移除无效的括号
Leetcode1249给你一个由 ‘(’、’)’ 和小写字母组成的字符串 s。你需要从字符串中删除最少数目的 ‘(’ 或者 ‘)’ (可以删除任意位置的括号),使得剩下的「括号字符串」有效。请返回任意一个合法字符串。思路:栈+set判断左右括号class Solution {public: string minRemoveToMakeValid(string s) { stack<int> stk; unordered_set<int&原创 2021-09-30 15:12:12 · 113 阅读 · 0 评论 -
2021-09-29Leetcode583两个字符串的删除操作
Leetcode583给定两个单词 word1 和 word2,找到使得 word1 和 word2 相同所需的最小步数,每步可以删除任意一个字符串中的一个字符。本题就是在最长公共子序列的基础上做了一个减法,求需要删除操作的次数。class Solution {public: int minDistance(string word1, string word2) { int m = word1.size(), n = word2.size(); vector&原创 2021-09-29 09:52:40 · 161 阅读 · 0 评论 -
2021-09-28 LeetCode90子集II
LeetCode90子集II其实和子集I的区别就是是否有重复元素,朴素的想法就是加入一个set来去重,但是不支持vector,因此需要定义一个vectorhash。然后判断的时候判断set中是否包含排序后的vector。struct vectorhash{ inline size_t operator()(const vector<int>& v) const{ size_t res = 0; for(int i : v){原创 2021-09-28 16:19:52 · 84 阅读 · 0 评论 -
2021-09-28Leetcode437路径总和III
Leetcode437给定一个二叉树的根节点 root ,和一个整数 targetSum ,求该二叉树里节点值之和等于 targetSum 的 路径 的数目。路径 不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点)。注意点:节点值存在负数所以不能判断target到0就直接停止。class Solution {public: int res = 0; int pathSum(TreeNode* root, int targetSum) {原创 2021-09-28 16:08:32 · 103 阅读 · 0 评论 -
2021-09-27Leetcode130被围绕的区域
给你一个 m x n 的矩阵 board ,由若干字符 ‘X’ 和 ‘O’ 组成,找到所有被 ‘X’ 围绕的区域,并将这些区域里所有的 ‘O’ 用 ‘X’ 填充。LeetCode130主要解法:因为边界上的永远不会被围绕,所以dfs所有边界上的‘O’得到与其相连的‘O’块,并改为‘A’。最后只需要将‘O’改为‘X’,‘A’改为‘O’就满足题目要求。class Solution {public: int m ,n; void solve(vector<vector<ch原创 2021-09-27 10:39:28 · 59 阅读 · 0 评论 -
2021-09-27Leetcode1091二进制矩阵
给你一个 n x n 的二进制矩阵 grid 中,返回矩阵中最短畅通路径的长度。如果不存在这样的路径,返回 -1 。二进制矩阵中的 畅通路径 是一条从 左上角 单元格(即,(0, 0))到 右下角 单元格(即,(n - 1, n - 1))的路径,该路径同时满足下述要求:路径途经的所有单元格都的值都是 0 。路径中所有相邻的单元格应当在 8 个方向之一 上连通(即,相邻两单元之间彼此不同且共享一条边或者一个角)。畅通路径的长度是该路径途经的单元格总数。LeetCode1091class Solu原创 2021-09-27 10:17:35 · 74 阅读 · 0 评论 -
2021-09-27 Leetcode572另一棵树的子树
给你两棵二叉树 root 和 subRoot 。检验 root 中是否包含和 subRoot 具有相同结构和节点值的子树。如果存在,返回 true ;否则,返回 false 。Leetcode572dfs+判断class Solution {public: bool isSubtree(TreeNode* root, TreeNode* subRoot) { return dfs(root, subRoot); } bool dfs(TreeNode* ro原创 2021-09-27 09:40:03 · 59 阅读 · 0 评论