
leetcode算法题
文章平均质量分 93
CaraYQ
这个作者很懒,什么都没留下…
展开
-
【leetcode】-【javascript】
请你编写一段代码实现一个数组方法,使任何数组都可以调用方法,这个方法将返回数组最后一个元素。如果数组中没有元素,则返回 -1。你可以假设数组是JSON.parse的输出结果。示例 1 :输入:nums = [null, {}, 3]输出:3解释:调用 nums.last() 后返回最后一个元素: 3。示例 2 :输入:nums = []输出:-1解释:因为此数组没有元素,所以应该返回 -1。方法一:将 Nullish 合并运算符与方法结合使用Nullish:空合并运算符(??原创 2024-06-02 17:35:27 · 599 阅读 · 0 评论 -
【LEETCODE】-【MYSQL】
任何与 NULL 值进行的比较都会与第三种值 UNKNOWN 做比较。这就是为什么 MySQL 提供 IS NULL 和 IS NOT NULL 两种操作来对 NULL 特殊判断。由于无法直接用limit N-1,所以需先在函数开头处理N为N=N-1。注:这里不能直接用limit N-1是因为limit和offset字段后面只接受正整数(意味着0、负数、小数都不行)或者单一变量(意味着不能用表达式)where中不能使用聚合函数,要想使用聚合函数,使用group by,在约束条件having中使用。原创 2023-03-26 20:40:34 · 463 阅读 · 0 评论 -
排序、JAVA版本的快排
快速排序:1.从序列中选择一个轴点元素pivot 假设每次选择索引为0的元素为轴点元素2.利用pivot将序列分割成2个子序列:将小于pivot的元素放在pivot的前面(左边)将大于pivot的元素放在pivot的后面(右边) 等于pivot的元素放在哪边都可以3.对子序列进行上述1 2步骤 直到不能再分割(子序列中只剩下1个元素)快速排序的本质:逐渐将每一个元素都转换成轴点元素实现:假设数组为array={7,1,2,3,4,5,6} 最初pivot=7 进行一轮快速排序后array={原创 2021-06-16 22:05:20 · 268 阅读 · 0 评论 -
二叉树、深度优先、广度优先、回溯
目录剑指 Offer 07. 重建二叉树105. 从前序与中序遍历序列构造二叉树剑指 Offer 07. 重建二叉树105. 从前序与中序遍历序列构造二叉树输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如,给出前序遍历 preorder = [3,9,20,15,7]中序遍历 inorder = [9,3,15,20,7]返回如下的二叉树:解:因为前序遍历的第一个元素就是当前二叉树的根节点。那么,这个值就可以将中序遍原创 2021-06-08 19:03:45 · 327 阅读 · 0 评论 -
算法-数学题
目录54. 螺旋矩阵54. 螺旋矩阵给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。示例1:输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]输出:[1,2,3,6,9,8,7,4,5]示例2:输入:matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]]输出:[1,2,3,4,8,12,11,10,9,5,6,7]解:按照图中顺时针一层层遍历就行 需要4个指针 分别表示上下左右原创 2021-05-30 19:31:25 · 506 阅读 · 0 评论 -
滑动窗口、双指针
目录15. 三数之和15. 三数之和给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组。示例 1:输入:nums = [-1,0,1,2,-1,-4]输出:[[-1,-1,2],[-1,0,1]]示例 2:输入:nums = []输出:[]示例 3:输入:nums = [0]输出:[]解:1.首先对数组升序排序:nums.sort((a, b) => a -原创 2021-05-26 19:12:08 · 374 阅读 · 0 评论 -
算法-二分查找
4. 寻找两个正序数组的中位数给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数 。示例 1:输入:nums1 = [1,3], nums2 = [2]输出:2.00000解释:合并数组 = [1,2,3] ,中位数 2示例 2:输入:nums1 = [1,2], nums2 = [3,4]输出:2.50000解释:合并数组 = [1,2,3,4] ,中位数 (2 + 3) / 2 = 2.5示例 3:输入:nu原创 2021-05-22 13:57:41 · 348 阅读 · 0 评论 -
数据结构-链表
目录206. 反转链表206. 反转链表给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。示例1:输入:head = [1,2,3,4,5]输出:[5,4,3,2,1]解:迭代:以例1为例 你要反转一个链表 首先你肯定需要两个节点prev和curr(分别代表上一个节点和当前节点)你要让当前节点的next指向prev节点才算反转了当前节点对吧 但是当当前节点的next指向prev节点的话 当前节点和后面的节点就断了连接 如下图所以我们还需要一个节点next用来保存c原创 2021-05-14 19:48:56 · 472 阅读 · 0 评论 -
算法-动态规划
目录5. 最长回文子串5. 最长回文子串给你一个字符串 s,找到 s 中最长的回文子串。示例 1:输入:s = “babad”输出:“bab”解释:“aba” 同样是符合题意的答案。示例 2:输入:s = “cbbd”输出:“bb”示例 3:输入:s = “a”输出:“a”示例 4:输入:s = “ac”输出:“a”解:1.子串substring:原始字符串的一个连续子集子序列subsequence:原始字符串的一个子集2.回文串天生具有动态规划的性质 因为一个回文原创 2021-05-14 15:19:21 · 185 阅读 · 0 评论 -
Map、栈、队列
1. 两数之和给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。示例1:输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。来源:力扣(LeetCode)链接:https://leetcode-原创 2021-05-14 15:05:52 · 274 阅读 · 0 评论