【Leetcode-算法】
文章平均质量分 78
LeetCode
我一直在流浪
这个作者很懒,什么都没留下…
展开
-
leetcode - 02 数组专题 42-43-45-48-49-50-54-55-56-57-58-59-62-63-64-66
算法原创 2023-02-09 12:49:29 · 155 阅读 · 0 评论 -
leetcode - 01 数组专题 1-15-18-4-16-11-26-27-31-33-34-35-36-39-40-41-46-47-53
return end;return end;} }原创 2023-01-13 12:48:18 · 420 阅读 · 0 评论 -
leetcode - 04 树专题 114~106~96~863~剑指Offer 27~257~108~617~ 剑指 Offer 07~99~429~108~109~701~530~889
【代码】leetcode - 04 树专题 114~106~96~863~剑指Offer 27~257~108~617~ 剑指 Offer 07 重建二叉树~99。原创 2022-11-26 14:56:52 · 341 阅读 · 0 评论 -
leetcode - 03 树专题 450~230~572~208~100~剑指Offer 32~剑指Offer 33
【代码】leetcode - 03 树专题 450~230~572~208~100~剑指Offer 32~剑指Offer 33。原创 2022-11-05 10:18:30 · 305 阅读 · 0 评论 -
leetcode - 02 树专题 226~662~98~297~剑指Offer36~958~剑指Offer54~111~104~222
【代码】leetcode - 02 树专题 226~662~98~297~剑指Offer36~958~剑指Offer54~111~104~222。原创 2022-10-29 09:12:20 · 310 阅读 · 0 评论 -
leetcode - 01 树专题 105~144~151~236~124~199~105~144~94~124~104~101~199~145~543
思路:https://leetcode.cn/problems/reverse-words-in-a-string/solution/yi-ci-bian-li-shi-xian-fan-zhuan-zi-fu-c-cmos/原创 2022-10-15 12:47:59 · 298 阅读 · 0 评论 -
每周leetcode - 01 CodeTop~56~72~31~69~2~22~1143~41~93
【代码】Leetcode 系列 - 56~72~31~69~2~22~1143~41~93。原创 2022-09-26 12:35:52 · 149 阅读 · 0 评论 -
每周leetcode - 06 数组专题 7~739~50~offer 62~26~189~9
7. 整数反转给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。如果反转后整数超过 32 位的有符号整数的范围 [−2^31, 2^31 − 1] ,就返回 0。假设环境不允许存储 64 位整数(有符号或无符号)。class Solution { public int reverse(int x) { int res = 0; // x=-123 while (x!=0){ if(res>原创 2022-04-22 21:31:46 · 225 阅读 · 0 评论 -
每周leetcode - 05 数组专题 489~59~offer 51~offer 40~560~offer 21
498. 对角线遍历给你一个大小为 m x n 的矩阵 mat ,请以对角线遍历的顺序,用一个数组返回这个矩阵中的所有元素。思路:https://leetcode-cn.com/problems/diagonal-traverse/solution/dui-jiao-xian-bian-li-fen-xi-ti-mu-zhao-zhun-gui-l/class Solution { public int[] findDiagonalOrder(int[][] mat) { i原创 2022-04-15 12:57:14 · 328 阅读 · 0 评论 -
每周leetcode - 04数组专题 912~402~offer 50~offer 75~316~1081
文章目录912. 排序数组(归并排序)402. 移掉 K 位数字316. 去除重复字母 (困难)912. 排序数组(归并排序)给你一个整数数组 nums,请你将该数组升序排列。class Solution { public static void main(String[] args) { int[] arr = {-3,1,2,3,4,5,6,10}; sortArray(arr); for(int i=0;i<arr.length原创 2022-04-08 12:52:08 · 211 阅读 · 2 评论 -
每周leetcode - 03数组专题 240~378~136~179~offer 45~283~27
leetcode - 240. 搜索二维矩阵 II编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性:每行的元素从左到右升序排列。每列的元素从上到下升序排列。原创 2022-04-04 11:28:28 · 524 阅读 · 0 评论 -
每周leetcode - 02数组专题 41~239~153~162~912~74~34~169~48
leetcode - 41. 缺失的第一个正数给你一个未排序的整数数组 nums ,请你找出其中没有出现的最小的正整数。请你实现时间复杂度为 O(n) 并且只使用常数级别额外空间的解决方案。class Solution { public int firstMissingPositive(int[] nums) { if(nums==null || nums.length==0){ return 1; } // 排除所有负原创 2022-03-25 20:50:39 · 595 阅读 · 0 评论 -
每周leetcode - 01数组专题 215~15~912~88~1~33~54~42~704~56~69~4
每周leetcode - 01数组专题文章目录leetcode - 215. 数组中的第K个最大元素leetcode - 15. 三数之和leetcode - 912. 排序数组leetcode - 215. 数组中的第K个最大元素给定整数数组 nums 和整数 k,请返回数组中第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。测试PriorityQueue的特性:public class Main { public static v原创 2022-03-11 14:20:23 · 286 阅读 · 0 评论 -
每周leetcode - 02链表专题 237/83/234/138/92/142/Offer 22/148/23/24/147/86/61/328/2/Offer06
每周leetcode - 234/138文章目录leetcode - 234. 回文链表leetcode - 138. 复制带随机指针的链表leetcode - 234. 回文链表给你一个单链表的头节点 head ,请你判断该链表是否为回文链表。如果是,返回 true ;否则,返回 false 。class Solution { public boolean isPalindrome(ListNode head) { if(head==null) return false;原创 2022-03-04 13:04:24 · 200 阅读 · 0 评论 -
每周leetcode - 01链表专题 206/21/141/160/876/143/25/82/19/148
每周leetcode - 206/文章目录leetcode - 206. 反转链表leetcode - 21. 合并两个有序链表leetcode - 141. 环形链表leetcode - 160. 相交链表leetcode - 206. 反转链表给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。class Solution { public ListNode reverseList(ListNode head) { // 1--2--3--null原创 2022-02-25 17:52:15 · 144 阅读 · 0 评论 -
每周leetcode - NC106/NC114/796/NC145/NC156/268/Offer 53/136/217/448/442/NC256/41/485
每周leetcode - NC106/NC114/796/NC145文章目录牛客题霸 - NC106 三个数的最大乘积牛客题霸 - NC114 旋转字符串leetcode - 796. 旋转字符串牛客题霸 - NC145 01背包牛客题霸 - NC106 三个数的最大乘积给定一个长度为 n 的无序数组 A ,包含正数、负数和 0 ,请从中找出 3 个数,使得乘积最大,返回这个乘积。要求时间复杂度: O(n) ,空间复杂度: O(1) 。public class Solution { /**原创 2022-02-22 12:19:33 · 8098 阅读 · 0 评论 -
每周leetcode - 100/Offer 26/NC98/NC226/NC117/NC617/NC31/387/NC11/108/NC63/Offer 61/NC71/154/34/NC74
每周leetcode - 100/Offer 26/NC98/NC226leetcode - 100. 相同的树给你两棵二叉树的根节点 p 和 q ,编写一个函数来检验这两棵树是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。class Solution { public boolean isSameTree(TreeNode p, TreeNode q) { if(p==null && q==null){ r原创 2022-02-17 18:23:52 · 278 阅读 · 0 评论 -
每周leetcode - NC9/NC56/NC89/NC126/NC69/NC120
文章目录简单牛客题霸 - NC56 回文数字 (leetcode-9 回文数)牛客题霸 - NC89 字符串变形牛客题霸 - NC126 兑换零钱(一)简单牛客题霸 - NC56 回文数字 (leetcode-9 回文数)在不使用额外的内存空间的条件下判断一个整数是否是回文。回文指逆序和正序完全相同。提示:负整数可以是回文吗?(比如-1)如果你在考虑将数字转化为字符串的话,请注意一下不能使用额外空间的限制你可以将整数翻转。但是,如果你做过题目“反转数字”,你会知道将整数翻转可能会出现溢出的原创 2022-02-13 20:16:23 · 432 阅读 · 0 评论 -
每周leetcode - NC13/NC70/NC62/NC73/NC112/NC96/NC34/62/NC57/7/NC16/NC25/237/82/NC9/NC55
文章目录简单牛客题霸 - NC13 二叉树的最大深度牛客题霸 - NC70 单链表的排序牛客题霸 - NC62 判断是不是平衡二叉树牛客题霸 - NC73 数组中出现次数超过一半的数字简单牛客题霸 - NC13 二叉树的最大深度求给定二叉树的最大深度,深度是指树的根节点到任一叶子节点路径上节点的数量。最大深度是所有叶子节点的深度的最大值。public class Solution { /** * * @param root TreeNode类 * @return原创 2022-01-25 20:05:44 · 545 阅读 · 0 评论 -
每周leetcode - NC22/NC3/NC52/NC66/NC32/NC48/704/NC105/34/33/35/NC90/155/NC7/121/122/123/309/714
每周leetcode -文章目录牛客题霸 - NC22 合并两个有序的数组牛客题霸 - NC3 链表中环的入口结点牛客题霸 - NC52 有效括号序列牛客题霸 - NC66 两个链表的第一个公共结点牛客题霸 - NC32 求平方根牛客题霸 - NC22 合并两个有序的数组给出一个有序的整数数组 A 和有序的整数数组 B ,将数组 B 合并到数组 A 中,变成一个有序的升序数组注意:保证 A 数组有足够的空间存放 B 数组的元素, A 和 B 中初始的元素数目分别为 m 和 n,A的数组空间大小为原创 2022-01-21 13:30:09 · 497 阅读 · 0 评论 -
每周leetcode - NC103/344/54/NC65/NC141/110/189/NC151/1979/NC78/NC61/NC33/NC76/NC68/NC19/NC4
每周leetcode - NC103/344/54/NC65文章目录牛客题霸 - NC103 反转字符串leetcode - 344. 反转字符串牛客题霸 - NC38 螺旋矩阵(leetcode-54. 螺旋矩阵)牛客题霸 - NC65 斐波那契数列牛客题霸 - NC103 反转字符串写出一个程序,接受一个字符串,然后输出该字符串反转后的字符串。(字符串长度不超过1000)要求:空间复杂度 O(n),时间复杂度 O(n)public class Solution { /** *原创 2022-01-14 12:46:50 · 342 阅读 · 0 评论 -
每周leetcode - 动态规划 1143/72/NC127/300/322/70/509/746
文章目录leetcode - 1143. 最长公共子序列leetcode - 72. 编辑距离牛客题霸 - NC127 最长公共子串leetcode - 5. 最长回文子串leetcode - 300. 最长递增子序列leetcode - 322. 零钱兑换leetcode - 70. 爬楼梯leetcode - 509. 斐波那契数leetcode - 746. 使用最小花费爬楼梯leetcode - 1143. 最长公共子序列给定两个字符串 text1 和 text2,返回这两个字符串的最长 公共子原创 2022-01-11 12:14:47 · 336 阅读 · 0 评论 -
每周leetcode - 5/53/43/22/20/48/54/74/69/718/146/206/25
文章目录leetocde - 5. 最长回文子串leetcode - 53. 最大子数组和leetcode - 43. 字符串相乘每周leetcode - 5/53/leetocde - 5. 最长回文子串给你一个字符串 s,找到 s 中最长的回文子串。class Solution { public String longestPalindrome(String s) { if(s==null || s.length()==0){ return nu原创 2021-12-31 13:17:42 · 736 阅读 · 1 评论 -
每周leetcode - 二叉树 129/124/112/113/104/101/105/108/offer32/102/144
leetcode - 216. 组合总和 III找出所有相加之和为 n 的 k 个数的组合。组合中只允许含有 1 - 9 的正整数,并且每种组合中不存在重复的数字。说明:所有数字都是正整数,解集不能包含重复的组合。leetcode - 784. 字母大小写全排列给定一个字符串S,通过将字符串S中的每个字母转变大小写,我们可以获得一个新的字符串。返回所有可能得到的字符串集合。leetcode - 129. 求根节点到叶节点数字之和给你一个二叉树的根节点 root ,树中每个节点都存放有一个 0原创 2021-12-24 19:31:26 · 646 阅读 · 0 评论 -
每周leetcode - 回溯算法 78/90/46/47/567/77/39/40
leetcode - 129. 求根节点到叶节点数字之和给你一个二叉树的根节点 root ,树中每个节点都存放有一个 0 到 9 之间的数字。每条从根节点到叶节点的路径都代表一个数字:例如,从根节点到叶节点的路径 1 -> 2 -> 3 表示数字 123 。计算从根节点到叶节点生成的 所有数字之和 。解题方法:leetcode - 78. 子集给你一个整数数组 nums ,数组中的元素 互不相同 。返回该数组所有可能的子集(幂集)。解集 不能 包含重复的子集。你可以按 任意顺序.原创 2021-12-19 00:08:45 · 457 阅读 · 0 评论 -
每周leetcode - 【链表专题】41/142/148/JZ21/147/插入排序/归并排序/148/86
每周leetcode - 141/142/148leetcode - 141. 环形链表给你一个链表的头节点 head ,判断链表中是否有环。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。如果 pos 是 -1,则在该链表中没有环。注意:pos 不作为参数进行传递,仅仅是为了标识链表的实际情况。如果链表中存在环,则返回 true 。 否则,返回 false 。原创 2021-12-10 12:54:35 · 499 阅读 · 0 评论 -
每周leetcode - 876/206/92/21/23/160/143/83/237/82/61/NC69
leetcode - 876. 链表的中间结点给定一个头结点为 head 的非空单链表,返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点。示例 1:输入:[1,2,3,4,5]输出:此列表中的结点 3 (序列化形式:[3,4,5])返回的结点值为 3 。 (测评系统对该结点序列化表述是 [3,4,5])。注意,我们返回了一个 ListNode 类型的对象 ans,这样:ans.val = 3, ans.next.val = 4, ans.next.next.val = 5, 以及原创 2021-12-03 20:09:57 · 572 阅读 · 0 评论 -
每周leetcode - 5/NC17/121/122/123/112/309/714/2/415
leetcode - 5. 最长回文子串给你一个字符串 s,找到 s 中最长的回文子串。示例 1:输入:s = "babad"输出:"bab"解释:"aba" 同样是符合题意的答案。示例 2:输入:s = "cbbd"输出:"bb"示例 3:输入:s = "a"输出:"a"示例 4:输入:s = "ac"输出:"a" 解题方法:动态规划解题思路:见我的另一篇博客:leetcode刷题1-30class Solution { public String lon原创 2021-11-26 22:09:59 · 605 阅读 · 0 评论 -
每周leetcode - 235/236/53/NC102/NC103
leetcode - 235. 二叉搜索树的最近公共祖先给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”例如,给定如下二叉搜索树: root = [6,2,8,0,4,7,9,null,null,3,5]示例 1:输入: root = [6,2,8,0,4,7,9,null,null,3,5], p原创 2021-11-20 15:38:55 · 153 阅读 · 0 评论 -
每周leetcode - 实现二叉搜索树基本功能
package com.heng;public class BinaryTree<E> { // 元素的个数 private int size; // 根节点 private Node<E> root; /** * 向二叉搜索树中添加节点 * 1、找到父节点(添加到哪个节点的下面) * 2、添加当前节点 * @param element */ public void add(原创 2021-11-17 12:28:04 · 423 阅读 · 0 评论 -
每周leetcode - leetcode575/136/237/137/260
leetcode - 575. 分糖果给定一个偶数长度的数组,其中不同的数字代表着不同种类的糖果,每一个数字代表一个糖果。你需要把这些糖果平均分给一个弟弟和一个妹妹。返回妹妹可以获得的最大糖果的种类数。数组的长度为[2, 10,000],并且确定为偶数。数组中数字的大小在范围[-100,000, 100,000]内示例 1:输入: candies = [1,1,2,2,3,3]输出: 3解析: 一共有三种种类的糖果,每一种都有两个。 最优分配方案:妹妹获得[1,2,3],弟弟也获原创 2021-11-06 09:12:40 · 123 阅读 · 0 评论 -
每周leetcode - leetcode26/33/80/260
文章目录leetcode - 26. 删除有序数组中的重复项leetcode - 33. 搜索旋转排序数组leetcode - 26. 删除有序数组中的重复项给你一个有序数组 nums ,请你原地删除重复出现的元素,使每个元素只出现一次 ,返回删除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。示例 1:输入:nums = [1,1,2]输出:2, nums = [1,2]解释:函数应该返回新的长度 2 ,并且原数组 nums 的前两个元原创 2021-10-30 10:59:27 · 143 阅读 · 0 评论 -
每周leetcode - leetcode144/94/145/215/剑指Offer 40/牛客NC119/88
文章目录leetcode -144 二叉树的前序遍历leetcode - 94 二叉树的中序遍历leetcode - 145 二叉树的中序遍历剑指 Offer - 40 最小的k个数牛客 - NC119 最小的K个数牛客 - NC88 寻找第K大leetcode - 215 数组中的第K个最大元素leetcode -144 二叉树的前序遍历给你二叉树的根节点 root ,返回它节点值的 前序 遍历。方法1: 递归/** * Definition for a binary tree node. *原创 2021-10-26 20:45:51 · 167 阅读 · 0 评论 -
每周leetcode - leetcode349/232/102/107/70/3 & 牛客NC76/15/68/41
leetcode - 349 两个数组的交集方法1:暴力方法,时间复杂度O(n^2)/** * 给定两个数组,编写一个函数来计算它们的交集。 * 示例 1: * * 输入:nums1 = [1,2,2,1], nums2 = [2,2] * 输出:[2] * 示例 2: * * 输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4] * 输出:[9,4] */class Solution { public int[] intersection(int原创 2021-10-18 09:38:45 · 131 阅读 · 0 评论 -
每周leetcode - leetcode704/34/88/1
leetcode-704 二分查找/** * 704. 二分查找 * 给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。 * * * 示例 1: * * 输入: nums = [-1,0,3,5,9,12], target = 9 * 输出: 4 * 解释: 9 出现在 nums 中并且下标为 4 * 示例 2: * * 输入: nums = [-1,0,3,5原创 2021-10-09 20:57:05 · 118 阅读 · 0 评论 -
每周leetcode - 牛客NC78/4/105
caca原创 2021-09-27 10:29:59 · 139 阅读 · 0 评论 -
每日leetcode - CodeTop
文章目录leetcode-25. K 个一组翻转链表leetcode-146. LRU 缓存机制leetcode - 15. 三数之和leetcode - 1. 两数之和leetcode - 102. 二叉树的层序遍历leetcode - 94. 二叉树的中序遍历leetcode - 141. 环形链表leetcode - 142. 环形链表 IIleetcode-25. K 个一组翻转链表给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表。k 是一个正整数,它的值小于或等于链表的长度。如果原创 2020-11-26 21:48:58 · 415 阅读 · 0 评论 -
每日leetcode - CodeTop
文章目录leetcode-215. 数组中的第K个最大元素leetcode-206. 反转链表leetcode-3. 无重复字符的最长子串leetcode-25. K 个一组翻转链表leetcode-146. LRU 缓存机制leetcode-215. 数组中的第K个最大元素在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。方法1:小顶堆class Solution { public int findKthLarges原创 2020-11-25 22:13:05 · 686 阅读 · 0 评论 -
每日leetcode - CodeTop
文章目录leetcode - 215. 数组中的第K个最大元素leetcode - 206. 反转链表leetcode - 3. 无重复字符的最长子串leetcode - 15. 三数之和leetcode - 94. 二叉树的中序遍历leetcode - 144. 二叉树的前序遍历leetcode - 141. 环形链表leetcode - 142. 环形链表 IIleetcode - 199. 二叉树的右视图leetcode - 160. 相交链表leetcode - 92. 反转链表 IIleetcod原创 2020-11-19 19:57:23 · 1607 阅读 · 0 评论 -
每日leetcode - 剑指 offer
文章目录剑指 Offer 03. 数组中重复的数字剑指 Offer 05. 替换空格剑指 Offer 06. 从尾到头打印链表剑指 Offer 07. 重建二叉树剑指 Offer 09. 用两个栈实现队列剑指 Offer 10- I. 斐波那契数列剑指 Offer 10- II. 青蛙跳台阶问题剑指 Offer 11. 旋转数组的最小数字剑指 Offer 15. 二进制中1的个数剑指 Offer 18. 删除链表的节点剑指 Offer 21. 调整数组顺序使奇数位于偶数前面剑指 Offer 22. 链表中倒原创 2020-11-18 18:54:01 · 244 阅读 · 0 评论