![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
leetcode
文章平均质量分 73
leetcode
我就是黑凤梨
这个作者很懒,什么都没留下…
展开
-
两道题引入二叉树左右子树比较问题 leetcode100相同的树101对称二叉树572另一棵树的子树
最近研究二叉树,刚好做了两道二叉树的左右子树比较问题,发现问题思路和代码都比较相近啊。归类在这里总结一下,发现一下规律。给你两棵二叉树的根节点 p 和 q ,编写一个函数来检验这两棵树是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。来源:力扣(LeetCode)链接:https://leetcode.cn/problems/same-tree著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。如下,代码非常少,这就是递归的魅力了。本题让我们比较两棵树是否相同。原创 2022-07-02 14:29:55 · 262 阅读 · 0 评论 -
努力前端【LeetCode-10】448. 找到所有数组中消失的数字 442. 数组中重复的数据(中等) 41. 缺失的第一个正数(困难) [鸽笼原理,数组,Map,类似No.645]
给你一个含 n 个整数的数组 nums ,其中 nums[i] 在区间 [1, n] 内。请你找出所有在 [1, n] 范围内但没有出现在 nums 中的数字,并以数组的形式返回结果。进阶:你能在不使用额外空间且时间复杂度为 O(n) 的情况下解决这个问题吗? 你可以假定返回的数组不算在额外空间内。来源:力扣(LeetCode)链接:https://leetcode.cn/problems/find-all-numbers-disappeared-in-an-array著作权归领扣网络所有。商业转载请联原创 2022-06-17 15:47:12 · 135 阅读 · 0 评论 -
努力前端【LeetCode-1】 1. 两数之和 [简单题]
给定一个整数数组 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], target = 6输出原创 2022-06-10 17:44:20 · 91 阅读 · 0 评论 -
努力前端【LeetCode-2】 2. 两数相加(单链表) [中等题]
给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0 开头。输入:l1 = [2,4,3], l2 = [5,6,4]输出:[7,0,8]解释:342 + 465 = 807.示例 2:输入:l1 = [0], l2 = [0]输出:[0]示例 3:输入:l1 = [9,9,9,9,9,9,9], l2 = [9,9,9,9]原创 2022-06-13 16:20:07 · 155 阅读 · 0 评论 -
努力前端【LeetCode-3】 26. 删除有序数组中的重复项 和 27. 移除元素 [快慢指针]
给你一个 升序排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。由于在某些语言中不能改变数组的长度,所以必须将结果放在数组nums的第一部分。更规范地说,如果在删除重复项之后有 k 个元素,那么 nums 的前 k 个元素应该保存最终结果。将最终结果插入 nums 的前 k 个位置后返回 k 。不要使用额外的空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。示例 1:输入:nums =原创 2022-06-13 20:01:45 · 103 阅读 · 0 评论 -
努力前端【LeetCode-4】 35. 搜索插入位置 [二分查找可O(log n)]
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。示例 1:输入: nums = [1,3,5,6], target = 5输出: 2示例 2:输入: nums = [1,3,5,6], target = 2输出: 1示例 3:输入: nums = [1,3,5,6], target = 7输出: 4来源:力扣(LeetCode)链接:https://leetcode.cn/problems/search-insert-p原创 2022-06-14 15:19:37 · 89 阅读 · 0 评论 -
努力前端【LeetCode-5】 485. 最大连续 1 的个数 [数组遍历]
给定一个二进制数组 nums , 计算其中最大连续 1 的个数。使用max存储最大值,cur进行计数,每次遇到非目标元素就归零 时间复杂度O(n)但每次cur增加都要判一次是否大于max原创 2022-06-14 18:57:23 · 66 阅读 · 0 评论 -
努力前端【LeetCode-6】 495. 提莫攻击 [数组遍历,计数刷新]
在《英雄联盟》的世界中,有一个叫 “提莫” 的英雄。他的攻击可以让敌方英雄艾希(编者注:寒冰射手)进入中毒状态。当提莫攻击艾希,艾希的中毒状态正好持续 duration 秒。正式地讲,提莫在 t 发起发起攻击意味着艾希在时间区间 [t, t + duration - 1](含 t 和 t + duration - 1)处于中毒状态。如果提莫在中毒影响结束 前 再次攻击,中毒状态计时器将会 重置 ,在新的攻击之后,中毒影响将会在 duration 秒后结束。给你一个 非递减 的整数数组 timeSeries原创 2022-06-15 15:33:53 · 96 阅读 · 0 评论 -
努力前端【LeetCode-7】414. 第三大的数 628. 三个数的最大乘积 [数组筛选]
给你一个非空数组,返回此数组中 第三大的数 。如果不存在,则返回数组中最大的数。来源:力扣(LeetCode)链接:https://leetcode.cn/problems/third-maximum-number著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。我们可以遍历数组,并用三个变量 aa、bb 和 cc 来维护数组中的最大值、次大值和第三大值,以模拟方法二中的插入和删除操作。为方便编程实现,我们将其均初始化为小于数组最小值的元素,视作「无穷小」,比如−263-2^{63}−原创 2022-06-15 19:32:41 · 193 阅读 · 0 评论 -
努力前端【LeetCode-8】645. 错误的集合 [数组筛选]
集合 s 包含从 1 到 n 的整数。不幸的是,因为数据错误,导致集合里面某一个数字复制了成了集合里面的另外一个数字的值,导致集合 丢失了一个数字 并且 有一个数字重复 。给定一个数组 nums 代表了集合 S 发生错误后的结果。请你找出重复出现的整数,再找到丢失的整数,将它们以数组的形式返回。来源:力扣(LeetCode)链接:https://leetcode.cn/problems/set-mismatch著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。时间复杂度O(n)+O(n原创 2022-06-16 17:07:54 · 72 阅读 · 0 评论 -
努力前端【LeetCode-9】697. 数组的度 [数组,Map,最小子串]
给定一个非空且只包含非负数的整数数组 nums,数组的 度 的定义是指数组里任一元素出现频数的最大值。你的任务是在 nums 中找到与 nums 拥有相同大小的度的最短连续子数组,返回其长度。来源:力扣(LeetCode)链接:https://leetcode.cn/problems/degree-of-an-array著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。遇到统计数组中元素频次,很容易想到map,此时我们需要先遍历数组建立map,每个map元素键为num,值为一个对象 分原创 2022-06-16 20:46:50 · 91 阅读 · 0 评论