![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
力扣leetcode
文章平均质量分 62
乐观的柏小柏
这个作者很懒,什么都没留下…
展开
-
开涮力扣:合并两个有序数组、第一个错误的版本
1.题目给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。请你 合并 nums2 到 nums1 中,使合并后的数组同样按 非递减顺序 排列。注意:最终,合并后数组不应由函数返回,而是存储在数组 nums1 中。为了应对这种情况,nums1 的初始长度为 m + n,其中前 m 个元素表示应合并的元素,后 n 个元素为 0 ,应忽略。nums2 的长度为 n 。示例 1:输入:nums1 =原创 2022-02-19 15:13:57 · 75 阅读 · 0 评论 -
开涮力扣:5、将有序数组转换为二叉搜索树
1.题目给你一个整数数组 nums ,其中元素已经按 升序 排列,请你将其转换为一棵 高度平衡 二叉搜索树。高度平衡 二叉树是一棵满足「每个节点的左右两个子树的高度差的绝对值不超过 1 」的二叉树。示例 1:输入:nums = [-10,-3,0,5,9]输出:[0,-3,9,-10,null,5]解释:[0,-10,5,null,-3,null,9] 也将被视为正确答案:示例 2:输入:nums = [1,3]输出:[3,1]解释:[1,3] 和 [3,1]原创 2022-01-23 00:04:14 · 77 阅读 · 0 评论 -
开涮力扣:4、二叉树的层序遍历--BFS
1.题目给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。示例 1:输入:root = [3,9,20,null,null,15,7]输出:[[3],[9,20],[15,7]]示例 2:输入:root = [1]输出:[[1]]示例 3:输入:root = []输出:[]2.代码层序遍历具体步骤如下:首先申请一个新的队列,记为queue; 将头结点head压入queue中; 每次从queue中出原创 2022-01-22 16:57:50 · 422 阅读 · 0 评论 -
开涮力扣:3.对称二叉树(C++递归)
1.题目给你一个二叉树的根节点 root , 检查它是否轴对称。示例 1:输入:root = [1,2,2,3,4,4,3]输出:true示例 2:输入:root = [1,2,2,null,3,null,3]输出:false2.代码/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * Tree.原创 2022-01-22 12:06:02 · 491 阅读 · 0 评论 -
开涮力扣:2、验证二叉搜索树
1.题目给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树。有效 二叉搜索树定义如下:节点的左子树只包含 小于 当前节点的数。节点的右子树只包含 大于 当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。示例 1:输入:root = [2,1,3]输出:true示例 2:输入:root = [5,1,4,null,null,3,6]输出:false解释:根节点的值是 5 ,但是右子节点的值是 4 。提示:树中节点数目范围在.原创 2022-01-21 21:28:23 · 363 阅读 · 0 评论 -
开涮力扣:(含解释)1、二叉树的最大深度(BFS、DFS、递归)
树比链表稍微复杂,因为链表是线性数据结构,而树不是。 树的问题可以由 广度优先搜索 BFS或 深度优先搜索DFS 解决。DFS 算法思想:一直往深处走,直到找到解或者走不下去为止使用栈保存未被检测的结点,结点按照深度优先的次序被访问并依次被压入栈中,并以相反的次序出栈进行新的检测。BFS算法使用队列保存未被检测的结点。结点按照宽度优先的次序被访问和进出队列。(以上来自BFS和DFS算法原理(通俗易懂版)_尚小馨的博客-CSDN博客_bfs和dfs算法)...原创 2022-01-15 13:21:18 · 313 阅读 · 0 评论 -
开涮力扣:5.合并两个有序链表(迭代)
题目 将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例 1:输入:l1 = [1,2,4], l2 = [1,3,4]输出:[1,1,2,3,4,4]示例 2:输入:l1 = [], l2 = []输出:[]解题 思路:用迭代的方法来实现。当两个都不是空链表时,判断哪一个链表的头节点的值更小,将较小值的节点添加到结果里,当一个节点被添加到结果里之后,将对应链表中的节点向后移一位。/...原创 2022-01-11 22:01:22 · 112 阅读 · 0 评论 -
开涮力扣:4.回文链表
4.给你一个单链表的头节点 head ,请你判断该链表是否为回文链表。如果是,返回 true ;否则,返回 false 。示例 1:输入:head = [1,2,2,1]输出:true示例 2:输入:head = [1,2]输出:false提示:链表中节点数目在范围[1, 10^5] 内0 <= Node.val <= 9进阶:你能否用 O(n) 时间复杂度和 O(1) 空间复杂度解决此题?思路 栈实现。之前有链表反转的题...原创 2022-01-11 11:45:13 · 243 阅读 · 0 评论 -
开涮力扣:3.环形链表
3.给你一个链表的头节点 head ,判断链表中是否有环。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。如果 pos 是 -1,则在该链表中没有环。注意:pos 不作为参数进行传递,仅仅是为了标识链表的实际情况。如果链表中存在环,则返回 true 。 否则,返回 false 。示例 1:输入:head = [3,2,0,-4], pos =原创 2022-01-10 13:56:04 · 69 阅读 · 0 评论 -
开涮力扣:2.反转链表(C++栈)
2.给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。示例 1:输入:head = [1,2,3,4,5]输出:[5,4,3,2,1]提示:链表中节点的数目范围是 [0, 5000]-5000 <= Node.val <= 5000进阶:链表可以选用迭代或递归方式完成反转。你能否用两种方法解决这道题?2.代码/** * Definition for singly-linked list. * struct ListNode {..原创 2022-01-10 12:29:56 · 347 阅读 · 0 评论 -
开涮力扣:1.删除链表中的节点
1.题目请编写一个函数,用于删除单链表中某个特定节点 。在设计函数时需要注意,你无法访问链表的头节点head,只能直接访问要被删除的节点 。题目数据保证需要删除的节点不是末尾节点 。示例 1:输入:head = [4,5,1,9], node = 5输出:[4,1,9]解释:指定链表中值为5的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 -> 9示例 2:输入:head = [4,5,1,9], node = 1输出:[4,5,9]解..原创 2022-01-08 13:17:07 · 73 阅读 · 0 评论 -
开涮力扣:8.最长公共前缀--9.字符串转换整数 (atoi)
8.最长公共前缀编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串""。示例 1:输入:strs = ["flower","flow","flight"]输出:"fl"示例 2:输入:strs = ["dog","racecar","car"]输出:""解释:输入不存在公共前缀。提示:1 <= strs.length <= 2000 <= strs[i].length <= 200strs[i] 仅由小写英文字.原创 2022-01-07 17:55:08 · 93 阅读 · 0 评论 -
开涮力扣:7.外观数列
题目给定一个正整数 n ,输出外观数列的第 n 项。「外观数列」是一个整数序列,从数字 1 开始,序列中的每一项都是对前一项的描述。你可以将其视作是由递归公式定义的数字字符串序列:countAndSay(1) = "1"countAndSay(n) 是对 countAndSay(n-1) 的描述,然后转换成另一个数字字符串。前五项如下:1. 12. 113. 214. 12115. 111221第一项是数字 1描述前一项,这...原创 2022-01-06 17:50:47 · 143 阅读 · 0 评论 -
开涮力扣:6.验证回文串
题目给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串。(回文串就是正读逆读都一样的字符串)示例 1:输入: "A man, a plan, a canal: Panama"输出: true解释:"amanaplanacanalpanama" 是回文串示例 2:输入: "race a car"输出: false解释:"raceacar" 不是回文串提示:1 <= s.leng原创 2022-01-06 11:17:27 · 87 阅读 · 0 评论 -
开涮力扣:5.有效的字母异位词
5.有效的字母异位词给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。注意:若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互为字母异位词。示例 1:输入: s = "anagram", t = "nagaram"输出: true示例 2:输入: s = "rat", t = "car"输出: false提示:1 <= s.length, t.length <= 5 * 104s 和 t仅包含小写字母..原创 2022-01-05 16:15:23 · 70 阅读 · 0 评论 -
开涮力扣:3.整数反转--4.字符串中的第一个唯一字符
3.整数反转给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。如果反转后整数超过 32 位的有符号整数的范围[−2^31,2^31− 1] ,就返回 0。假设环境不允许存储 64 位整数(有符号或无符号)。示例 1:输入:x = 123输出:321示例 2:输入:x = -123输出:-321示例 3:输入:x = 120输出:21示例 4:输入:x = 0输出:0代码:class Solution {pub...原创 2022-01-05 09:51:13 · 151 阅读 · 0 评论 -
开涮力扣:1.实现 strStr() 函数--2.反转字符串
1.实现strStr()函数。给你两个字符串haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串出现的第一个位置(下标从 0 开始)。如果不存在,则返回-1 。说明:当needle是空字符串时,我们应当返回什么值呢?这是一个在面试中很好的问题。对于本题而言,当needle是空字符串时我们应当返回 0 。这与 C 语言的strstr()以及 Java 的indexOf()定义相符。示例 1:输入:ha...原创 2022-01-04 17:52:48 · 142 阅读 · 0 评论 -
开涮力扣:11 两数之和
为什么要把这道题作为一篇,这道题可以用暴力解法,但大多人使用map或hashmap,本篇就采用map简单实现,顺便解释下map。题目:两数之和 给定一个整数数组nums和一个整数目标值target,请你在该数组中找出和为目标值target的那两个整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。示例 1:输入:nums = [2,7,11,15], target ...原创 2021-12-31 09:50:12 · 83 阅读 · 0 评论 -
开涮力扣:8.旋转数组或旋转图像--9.有效的数独--10.数组交集
8和9是关于二维数组的题目,更多考验的是编码能力、分析解决问题能力。对于算法方面,目前没有什么更优的令人惊艳的算法。10是两个数组交集,没啥好的技巧,主要是编码能力考验。8.旋转图像或旋转数组(1)题目给定一个n×n的二维矩阵matrix表示一个图像。请你将图像顺时针旋转 90 度。你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。示例 1:输入:matrix = [[1,2,3],[4,5,6],[7,8,9]] 输...原创 2021-12-29 20:21:10 · 423 阅读 · 0 评论 -
开涮力扣:6、加一 ————7、移动零
力扣简单题算法C++原创 2021-12-27 09:18:29 · 78 阅读 · 0 评论 -
开涮力扣:4.存在重复元素---5只出现一次的数字
前期题目相对简单(至少看了题目后有思路),所以将多个放在一个帖子里。1. 存在重复元素给定一个整数数组,判断是否存在重复元素。如果存在一值在数组中出现至少两次,函数返回 true 。如果数组中每个元素都不相同,则返回 false 。示例 1:输入: [1,2,3,1]输出: true示例 2:输入: [1,2,3,4]输出: false示例 3:输入: [1,1,1,3,3,4,3,2,4,2]输出: true2.代码最直观的方法就是排序后,比原创 2021-12-25 17:57:10 · 3136 阅读 · 0 评论 -
开涮力扣:3旋转数组
1、题目给你一个数组,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。示例 1:输入: nums = [1,2,3,4,5,6,7], k = 3输出: [5,6,7,1,2,3,4]解释:向右轮转 1 步: [7,1,2,3,4,5,6]向右轮转 2 步: [6,7,1,2,3,4,5]向右轮转 3 步: [5,6,7,1,2,3,4]示例 2:输入:nums = [-1,-100,3,99], k = 2输出:[3,99,-1,-100]解释:向右轮转.原创 2021-12-24 11:50:47 · 131 阅读 · 0 评论 -
开涮力扣:2.买卖股票的时机
力扣:买卖股票的最佳时机 ,求上升段高度和。原创 2021-12-23 12:13:08 · 105 阅读 · 0 评论 -
开涮力扣(解释m困惑)-1.删除排序数组中的重复项
手机刷力扣(C++),解释小的关键点原创 2021-12-22 22:40:55 · 182 阅读 · 4 评论