![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
leetcode
吕兰兵
这个作者很懒,什么都没留下…
展开
-
算法小东西
i++ 和 ++ileetcode题目第一个为++i的结果第二个为i++的结果`class Solution {public:int xorOperation(int n, int start) { int end = start; for(int i=1; i<n; ++i) { int temp = start + (2*i); end ^= temp; } return end;}};`...原创 2021-05-07 14:07:20 · 103 阅读 · 0 评论 -
验证二叉树的前序序列化(未使用栈)
331. 验证二叉树的前序序列化Difficulty: 中等序列化二叉树的一种方法是使用前序遍历。当我们遇到一个非空节点时,我们可以记录下这个节点的值。如果它是一个空节点,我们可以使用一个标记值记录,例如 #。 _9_ / \ 3 2 / \ / \ 4 1 # 6/ \ / \ / \# # # # # #例如,上面的二叉树可以被序列化为字符串 "9,3,4,#,#,1,#,#,2,#,6,#,#",其中 # 代表一个空节点。给定原创 2021-03-12 20:00:05 · 215 阅读 · 0 评论 -
二维区域和检索
304. 二维区域和检索 - 矩阵不可变Difficulty: 中等给定一个二维矩阵,计算其子矩形范围内元素的总和,该子矩阵的左上角为 (row1, col1) ,右下角为 (row2, col2) 。上图子矩阵左上角 (row1, col1) = (2, 1) ,右下角(row2, col2) = **(4, 3),**该子矩形内元素的总和为 8。示例:给定 matrix = [ [3, 0, 1, 4, 2], [5, 6, 3, 2, 1], [1, 2, 0, 1, 5],原创 2021-03-02 20:59:28 · 248 阅读 · 0 评论 -
86 分隔链表
86. 分隔链表Difficulty: 中等给你一个链表和一个特定值x ,请你对链表进行分隔,使得所有小于 x 的节点都出现在大于或等于 x 的节点之前。你应当保留两个分区中每个节点的初始相对位置。示例:输入:head = 1->4->3->2->5->2, x = 3输出:1->2->2->4->3->5Solution我把一个链表拆成了两份,一份大于等x的链表,一份小于x的链表。最后把他们合起来就可以了。这种方法的缺点就是原创 2021-01-03 13:43:02 · 93 阅读 · 0 评论 -
239 滑动窗口最大值
239. 滑动窗口最大值Difficulty: 困难给你一个整数数组 nums,有一个大小为 k的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。返回滑动窗口中的最大值。示例 1:输入:nums = [1,3,-1,-3,5,3,6,7], k = 3输出:[3,3,5,5,6,7]解释:滑动窗口的位置 最大值--------------- -----原创 2021-01-02 14:52:32 · 106 阅读 · 0 评论 -
605 种花问题
时间:2021.1.1题目 605 种花问题问题分析1、数组两边为零时2、数组全部为零时3、数组中间部分为零问题解析要单独的去处理第一种情况和第二种情况第三种情况只需要统计零的个数,去判断种花的个数我笨拙的codingclass Solution {public: bool canPlaceFlowers(vector<int>& flowerbed, int n) { int count = 0; int flag = 1;原创 2021-01-01 10:10:04 · 76 阅读 · 0 评论 -
57. 插入区间
57. 插入区间Difficulty: 困难给出一个_无重叠的 ,_按照区间起始端点排序的区间列表。在列表中插入一个新的区间,你需要确保列表中的区间仍然有序且不重叠(如果有必要的话,可以合并区间)。示例 1:输入:intervals = [[1,3],[6,9]], newInterval = [2,5]输出:[[1,5],[6,9]]示例 2:输入:intervals = [[1,2],[3,5],[6,7],[8,10],[12,16]], newInterval = [4,8]输原创 2020-11-04 12:09:35 · 90 阅读 · 0 评论 -
### [3\. 无重复字符的最长子串](https://leetcode-cn.com/problems/longest-substring-without-repeating-character
3. 无重复字符的最长子串Difficulty: 中等给定一个字符串,请你找出其中不含有重复字符的 **最长子串 **的长度。示例 1:输入: "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。Solution用一个集合来存储访问过的元素用一个while循环来查找最长的子串,到访问到的元素在集合中或超过了字符串,就退出循环。原创 2020-11-04 11:04:46 · 157 阅读 · 1 评论 -
941. 有效的山脉数组
941. 有效的山脉数组Difficulty: 简单给定一个整数数组 A,如果它是有效的山脉数组就返回 true,否则返回 false。让我们回顾一下,如果 A 满足下述条件,那么它是一个山脉数组:A.length >= 3在 0 < i < A.length - 1 条件下,存在 i 使得:A[0] < A[1] < ... A[i-1] < A[i]A[i] > A[i+1] > ... > A[A.length - 1]原创 2020-11-04 11:04:06 · 87 阅读 · 0 评论 -
654. 最大二叉树
654. 最大二叉树给定一个不含重复元素的整数数组。一个以此数组构建的最大二叉树定义如下:二叉树的根是数组中的最大元素。左子树是通过数组中最大值左边部分构造出的最大二叉树。右子树是通过数组中最大值右边部分构造出的最大二叉树。通过给定的数组构建最大二叉树,并且输出这个树的根节点。示例 :输入:[3,2,1,6,0,5]输出:返回下面这棵树的根节点: 6 / \ 3 5 \ / 2 0 \原创 2020-10-31 14:39:14 · 156 阅读 · 0 评论 -
扫雷游戏
529. 扫雷游戏题目让我们一起来玩扫雷游戏!给定一个代表游戏板的二维字符矩阵。 ‘M’ 代表一个未挖出的地雷,‘E’ 代表一个未挖出的空方块,‘B’ 代表没有相邻(上,下,左,右,和所有4个对角线)地雷的已挖出的空白方块,数字(‘1’ 到 ‘8’)表示有多少地雷与这块已挖出的方块相邻,‘X’ 则表示一个已挖出的地雷。现在给出在所有未挖出的方块中(‘M’或者’E’)的下一个点击位置(行和列索引),根据以下规则,返回相应位置被点击后对应的面板:如果一个地雷(‘M’)被挖出,游戏就结束了- 把它改为原创 2020-09-27 09:23:37 · 206 阅读 · 0 评论 -
513. 找树左下角的值
513. 找树左下角的值题目给定一个二叉树,在树的最后一行找到最左边的值。输入: 2 / \ 1 3输出:1输入: 1 / \ 2 3 / / \ 4 5 6 / 7输出:7思路用一个队列存储树一层的所有节点再用一个数组存储一层的所有元素最后返回数组的第一个元素代码# Definition for a binary tree node.# c原创 2020-09-26 19:52:00 · 83 阅读 · 0 评论 -
111.二叉树的最小深度
111.二叉树的最小深度题目给定一个二叉树,找出其最小深度。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。说明: 叶子节点是指没有子节点的节点。例子给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7思路用一个队列存储树一层全部节点在出队的时候判断该节点是否有孩子,如果没有就返回深度。代码# Definition for a binary tree node.# class TreeN原创 2020-09-26 16:41:42 · 78 阅读 · 0 评论 -
leetcode 559 N叉树的最大深度
leetcode 559 N叉树的最大深度题目给定一个 N 叉树,找到其最大深度。最大深度是指从根节点到最远叶子节点的最长路径上的节点总数。思路使用队列存储树的一层的所有元素因为node.children为列表,还要循环遍历所有子节点,并存储到数组和队列中。如果数组不为空则,深度加一。代码"""# Definition for a Node.class Node: def __init__(self, val=None, children=None): self原创 2020-09-26 15:25:57 · 52 阅读 · 0 评论 -
leetcode 107 二叉树的层次遍历 II
leetcode 107 二叉树的层次遍历 II题目给定一个二叉树,返回其节点值自底向上的层次遍历。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)例子给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回其自底向上的层次遍历为:[ [15,7], [9,20], [3]]思路先判断树是否存在用一个队列来保存树的一层元素取出原先队列中的元素,存储到一个临时数组中,把原创 2020-09-26 15:00:39 · 70 阅读 · 0 评论 -
leetcode-5511. 二进制矩阵中的特殊位置
5511. 二进制矩阵中的特殊位置题目给你一个大小为 rows x cols 的矩阵 mat,其中 mat[i][j] 是 0 或 1,请返回 矩阵 mat 中特殊位置的数目 。特殊位置 定义:如果 mat[i][j] == 1 并且第 i 行和第 j 列中的所有其他元素均为 0(行和列的下标均 从 0 开始 ),则位置 (i, j) 被称为特殊位置。实例示例 1:输入:mat = [[1,0,0],[0,0,1],[1,0,0]]输出:1解释:(1,2) 是一个特殊位置,因为 mat[原创 2020-09-13 14:31:17 · 130 阅读 · 0 评论 -
leetcode-861
861. 翻转矩阵后的得分题目有一个二维矩阵 A 其中每个元素的值为 0 或 1 。移动是指选择任一行或列,并转换该行或列中的每一个值:将所有 0 都更改为 1,将所有 1 都更改为 0。在做出任意次数的移动后,将该矩阵的每一行都按照二进制数来解释,矩阵的得分就是这些数字的总和。返回尽可能高的分数。示例:输入:[[0,0,1,1],[1,0,1,0],[1,1,0,0]]输出:39解释:转换为 [[1,1,1,1],[1,0,0,1],[1,1,1,1]]0b1111 + 0b1001原创 2020-09-12 16:43:12 · 132 阅读 · 0 评论