leetcode
文章平均质量分 57
情、狠现实
小坤很困,快来写代码提神!
展开
-
15. 三数之和 (排序后遍历 + 双指针 O(n))
三数之和 (排序遍历 + 双指针)原创 2022-02-24 21:11:39 · 92 阅读 · 0 评论 -
剑指Offer专项训练 位运算 001. 整数除法 & 002. 二进制加法 & 003. 前 n 个数字二进制中 1 的个数 & 004. 只出现一次的数字 & 005. 单词长度的最大乘积
位运算剑指 Offer II 001. 整数除法题目给定两个整数 a 和 b ,求它们的除法的商 a/b ,要求不得使用乘号 ‘*’、除号 ‘/’ 以及求余符号 ‘%’ 。(不用乘除实现除法)注意:整数除法的结果应当截去(truncate)其小数部分,例如:truncate(8.345) = 8 以及 truncate(-2.7335) = -2假设我们的环境只能存储 32 位有符号整数,其数值范围是 [−231, 231−1]。本题中,如果除法结果溢出,则返回 231 − 1分析每次原创 2022-01-01 16:51:30 · 299 阅读 · 0 评论 -
全排列[回溯] 力扣Top46全排列1(不重复数字的全排列) 力扣Top47全排列2(重复数字的全排列)
全排列[回溯]全排列[回溯] 力扣Top46全排列1(不重复数字的全排列) 力扣Top47全排列2(重复数字的全排列)提示:1 <= nums.length <= 6-原创 2021-12-15 19:56:02 · 518 阅读 · 0 评论 -
全排列[回溯]
力扣 全排列 (回溯)原创 2021-12-14 22:53:29 · 505 阅读 · 0 评论 -
力扣剑指Offer 第25天模拟(中等)剑指 Offer 29. 顺时针打印矩阵 剑指 Offer 31. 栈的压入、弹出序列
力扣剑指Offer 第25天模拟(中等)剑指 Offer 29. 顺时针打印矩阵 剑指 Offer 31. 栈的压入、弹出序列剑指 Offer 29. 顺时针打印矩阵题目输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。示例 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,1原创 2021-11-23 11:19:46 · 117 阅读 · 0 评论 -
力扣剑指Offer 第24天 数学(中等)剑指 Offer 14- I. 剪绳子 剑指 Offer 57 - II. 和为s的连续正数序列 剑指 Offer 62. 圆圈中最后剩下的数字
力扣剑指Offer 第24天 数学(中等)剑指 Offer 14- I. 剪绳子 剑指 Offer 57 - II. 和为s的连续正数序列 剑指 Offer 62. 圆圈中最后剩下的数字剑指 Offer 14- I. 剪绳子(中等)题目给你一根长度为 n 的绳子,请把绳子剪成整数长度的 m 段(m、n都是整数,n>1并且m>1),每段绳子的长度记为 k[0],k[1]...k[m-1]。请问 k[0]*k[1]*...*k[m-1] 可能的最大乘积是多少?例如,当绳子的长度是8时,我们把它原创 2021-11-21 17:51:11 · 123 阅读 · 0 评论 -
力扣剑指Offer 第23天 数学(简单)剑指 Offer 39. 数组中出现次数超过一半的数字 剑指 Offer 66. 构建乘积数组
力扣剑指Offer 第23天 数学(简单)剑指 Offer 39. 数组中出现次数超过一半的数字 剑指 Offer 66. 构建乘积数组剑指 Offer 39. 数组中出现次数超过一半的数题目题数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。你可以假设数组是非空的,并且给定的数组总是存在多数元素。示例 1:输入: [1, 2, 3, 2, 2, 2, 5, 4, 2]输出: 2限制:1 <= 数组长度 <= 50000题解摩尔投票法如果当前数nums[原创 2021-11-20 18:30:22 · 3922 阅读 · 1 评论 -
力扣剑指Offer 第22天 位运算(中等)剑指 Offer 56 - I. 数组中数字出现的次数剑指 Offer 56 - II. 数组中数字出现的次数 II
力扣剑指Offer 第22天 位运算(中等)剑指 Offer 56 - I. 数组中数字出现的次数剑指 Offer 56 - II. 数组中数字出现的次数 II剑指 Offer 56 - I. 数组中数字出现的次数题目一个整型数组 nums 里除两个数字之外,其他数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1)。示例 1:输入:nums = [4,1,4,6]输出:[1,6] 或 [6,1]示例 2:输入:nums = [1,2,10,4原创 2021-11-20 14:40:54 · 106 阅读 · 0 评论 -
力扣剑指Offer 第21天 位运算(简单)剑指 Offer 15. 二进制中1的个数 剑指 Offer 65. 不用加减乘除做加法
力扣剑指Offer 第21天 位运算(简单)剑指 Offer 15. 二进制中1的个数 剑指 Offer 65. 不用加减乘除做加法剑指 Offer 15. 二进制中1的个数题目编写一个函数,输入是一个无符号整数(以二进制串的形式),返回其二进制表达式中数字位数为 ‘1’ 的个数(也被称为 汉明重量).)。提示:请注意,在某些语言(如 Java)中,没有无符号整数类型。在这种情况下,输入和输出都将被指定为有符号整数类型,并且不应影响您的实现,因为无论整数是有符号的还是无符号的,其内部的二进制表示原创 2021-11-20 11:42:29 · 106 阅读 · 0 评论 -
力扣剑指Offer 第20天 分治算法(中等)剑指 Offer 07. 重建二叉树 剑指 Offer 16. 数值的整数次方 剑指 Offer 33. 二叉搜索树的后序遍历序列
力扣剑指Offer 第20天 分治算法(中等)剑指 Offer 07. 重建二叉树 剑指 Offer 16. 数值的整数次方 剑指 Offer 33. 二叉搜索树的后序遍历序列剑指 Offer 07. 重建二叉树题目输入某二叉树的前序遍历和中序遍历的结果,请构建该二叉树并返回其根节点。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。示例 1:Input: preorder = [3,9,20,15,7], inorder = [9,3,15,20,7]Output: [3,9,20,nu原创 2021-11-16 18:51:57 · 279 阅读 · 0 评论 -
力扣剑指Offer第19天 搜索与回溯算法(中等)剑指 Offer 64. 求1+2+…+n && 68 - I. 二叉搜索树的最近公共祖先 && 68 - II. 二叉树的最近公共祖先
力扣剑指Offer第19天 搜索与回溯算法(中等)剑指 Offer 64. 求1+2+…+n 剑指 Offer 68 - I. 二叉搜索树的最近公共祖先 剑指 Offer 68 - II. 二叉树的最近公共祖先剑指 Offer 64. 求1+2+…+n题目求 1+2+...+n ,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。示例 1:输入: n = 3输出: 6示例 2:输入: n = 9输出: 45限制:1原创 2021-11-15 17:48:32 · 113 阅读 · 0 评论 -
力扣剑指Offer 第18天 搜索与回溯算法(中等)剑指 Offer 55 - I. 二叉树的深度 剑指 Offer 55 - II. 平衡二叉树
力扣剑指Offer 第18天 搜索与回溯算法(中等)剑指 Offer 55 - I. 二叉树的深度 剑指 Offer 55 - II. 平衡二叉树剑指 Offer 55 - I. 二叉树的深度题目输入一棵二叉树的根节点,求该树的深度。从根节点到叶节点依次经过的节点(含根、叶节点)形成树的一条路径,最长路径的长度为树的深度。例如:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回它的最大深度 3 。提示:原创 2021-11-14 21:45:35 · 119 阅读 · 0 评论 -
力扣剑指Offer 第16天 排序(简单)剑指 Offer 45. 把数组排成最小的数 剑指 Offer 61. 扑克牌中的顺子
力扣剑指Offer 第17天 排序(简单)剑指 Offer 45. 把数组排成最小的数 剑指 Offer 61. 扑克牌中的顺子剑指 Offer 45. 把数组排成最小的数题目输入一个非负整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。示例 1:输入: [10,2]输出: "102"示例 2:输入: [3,30,34,5,9]输出: "3033459"提示:0 < nums.length <= 100说明:输出结果可能非常大原创 2021-11-12 12:55:41 · 95 阅读 · 0 评论 -
力扣剑指Offer 第15天 搜索与回溯算法(中等)剑指 Offer 34. 二叉树中和为某一值的路径 剑指 Offer 36. 二叉搜索树与双向链表 剑指 Offer 54. 二叉搜索树的第k大节点
力扣剑指Offer 第15天 搜索与回溯算法(中等)剑指 Offer 34. 二叉树中和为某一值的路径 剑指 Offer 36. 二叉搜索树与双向链表 剑指 Offer 54. 二叉搜索树的第k大节点剑指 Offer 34. 二叉树中和为某一值的路径题目给你二叉树的根节点 root和一个整数目标和 targetSum,找出所有 从根节点到叶子节点 路径总和等于给定目标和的路径。叶子节点 是指没有子节点的节点。示例1输入:root = [5,4,8,11,null,13,4,7,2,null,n原创 2021-11-11 12:42:37 · 116 阅读 · 0 评论 -
力扣剑指Offer 第14天 搜索与回溯算法(中等)剑指 Offer 12. 矩阵中的路径 剑指 Offer 13. 机器人的运动范围
力扣剑指Offer 第14天 搜索与回溯算法(中等)剑指 Offer 12. 矩阵中的路径 剑指 Offer 13. 机器人的运动范围剑指 Offer 12. 矩阵中的路径给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中,返回 true ;否则,返回 false 。单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。例如,在下面的 3×4 的矩阵中包含单原创 2021-11-10 20:05:13 · 137 阅读 · 0 评论 -
力扣剑指Offer 第13天 双指针(简单)剑指 Offer 21. 调整数组顺序使奇数位于偶数前面 剑指 Offer 57. 和为s的两个数字 剑指 Offer 58 - I. 翻转单词顺序
力扣剑指Offer 第13天 双指针(简单)剑指 Offer 21. 调整数组顺序使奇数位于偶数前面 剑指 Offer 57. 和为s的两个数字 剑指 Offer 58 - I. 翻转单词顺序剑指 Offer 21. 调整数组顺序使奇数位于偶题目输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数在数组的前半部分,所有偶数在数组的后半部分。示例 :输入:nums = [1,2,3,4]输出:[1,3,2,4] 注:[3,1,2,4] 也是正确的答案之一。0 <=原创 2021-11-09 21:30:26 · 124 阅读 · 0 评论 -
力扣剑指Offer 第12天 双指针(简单)剑指 Offer 25. 合并两个排序的链表 剑指 Offer 52. 两个链表的第一个公共节点
力扣剑指Offer 第12天 双指针(简单)剑指 Offer 25. 合并两个排序的链表 剑指 Offer 52. 两个链表的第一个公共节点剑指 Offer 25. 合并两个排序的链表题目输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的。示例 1:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4题解直接遍历两个链表 每次放入最小的即可/** * Definition for sin原创 2021-11-09 17:34:11 · 89 阅读 · 0 评论 -
力扣剑指Offer 第11天 双指针(简单)剑指 Offer 18. 删除链表的节点 剑指 Offer 22. 链表中倒数第k个节点
力扣剑指Offer 第11天 双指针(简单)剑指 Offer 18. 删除链表的节点 剑指 Offer 22. 链表中倒数第k个节点剑指 Offer 18. 删除链表的节点题目给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。返回删除后的链表的头节点。示例 1:输入: head = [4,5,1,9], val = 5输出: [4,1,9]解释: 给定你链表中值为 5 的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 ->原创 2021-11-09 17:04:57 · 94 阅读 · 0 评论 -
力扣剑指Offer 第10天 动态规划(中等) 剑指 Offer 46. 把数字翻译成字符串 剑指 Offer 48. 最长不含重复字符的子字符串
力扣剑指Offer 第10天 动态规划(中等) 剑指 Offer 46. 把数字翻译成字符串 剑指 Offer 48. 最长不含重复字符的子字符串剑指 Offer 46. 把数字翻译成字符串题目给定一个数字,我们按照如下规则把它翻译为字符串:0 翻译成 “a” ,1 翻译成 “b”,……,11 翻译成 “l”,……,25 翻译成 “z”。一个数字可能有多个翻译。请编程实现一个函数,用来计算一个数字有多少种不同的翻译方法。示例 1:输入: 12258输出: 5解释: 12258有5种不同的翻译,原创 2021-11-06 13:12:08 · 74 阅读 · 0 评论 -
力扣剑指offer 第3天 字符串(简单) 剑指 Offer 05. 替换空格 剑指 Offer 58 - II. 左旋转字符串
力扣剑指offer 第3天 字符串(简单) 剑指 Offer 05. 替换空格 剑指 Offer 58 - II. 左旋转字符串剑指 Offer 05. 替换空格思路使用StringBuilder字符串构造器 效率高遍历字符串如果遇见空格就添加“%20”否则添加该字符返回buider.toString()代码class Solution { public String replaceSpace(String s) {// return s.repla原创 2021-10-30 14:49:26 · 101 阅读 · 0 评论 -
力扣剑指Offer 第9天 动态规划(中等) 剑指 Offer 42. 连续子数组的最大和 剑指 Offer 47. 礼物的最大价值
力扣剑指Offer 第9天 动态规划(中等) 剑指 Offer 42. 连续子数组的最大和 剑指 Offer 47. 礼物的最大价值剑指 Offer 42. 连续子数组的最大和题目输入一个整型数组,数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。要求时间复杂度为O(n)。示例 1:输入: nums = [-2,1,-3,4,-1,2,1,-5,4]输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。提示 :1 <= arr.length &l原创 2021-11-05 20:02:12 · 76 阅读 · 0 评论 -
力扣剑指Offer 第8天 动态规划(简单)剑指 Offer 10- I. 斐波那契数列 剑指 Offer 10- II. 青蛙跳台阶问题 剑指 Offer 63. 股票的最大利润
力扣剑指Offer 第8天 动态规划(简单)剑指 Offer 10- I. 斐波那契数列 剑指 Offer 10- II. 青蛙跳台阶问题 剑指 Offer 63. 股票的最大利润剑指 Offer 10- I. 斐波那契数列题目写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项(即 F(N))。斐波那契数列的定义如下:F(0) = 0, F(1) = 1F(N) = F(N - 1) + F(N - 2), 其中 N > 1.斐波那契数列由 0 和 1 开始,之原创 2021-11-04 14:09:13 · 156 阅读 · 0 评论 -
剑指Offer 第7天 搜索与回溯算法(简单)剑指 Offer 26. 树的子结构剑指 Offer 27. 二叉树的镜像 剑指 Offer 28. 对称的二叉树
力扣剑指Offer 第7天 搜索与回溯算法(简单)剑指 Offer 26. 树的子结构剑指 Offer 27. 二叉树的镜像 剑指 Offer 28. 对称的二叉树剑指 Offer 26. 树的子结构题目输入两棵二叉树A和B,判断B是不是A的子结构。(约定空树不是任意一个树的子结构)B是A的子结构, 即 A中有出现和B相同的结构和节点值。例如:给定的树 A: 3 / \ 4 5 / \ 1 2给定的树 B: 4 / 1返回 true,因原创 2021-11-03 12:41:23 · 3329 阅读 · 0 评论 -
力扣剑指Offer 第6天 搜索与回溯算法(简单)32 - I. 从上到下打印二叉树 & 32 - II. 从上到下打印二叉树 II & 32 - III. 从上到下打印二叉树 III
力扣剑指Offer 第6天 搜索与回溯算法(简单)剑指 Offer 32 - I. 从上到下打印二叉树 剑指 Offer 32 - II. 从上到下打印二叉树 II 剑指 Offer 32 - III. 从上到下打印二叉树 III剑指 Offer 32 - I. 从上到下打印二叉树题目从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印。例如:给定二叉树: [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7原创 2021-11-02 14:51:20 · 75 阅读 · 0 评论 -
力扣剑指Offer 第5天 查找算法(中等) 剑指 Offer 04. 二维数组中的查找 剑指 Offer 11. 旋转数组的最小数字 剑指 Offer 50. 第一个只出现一次的字符
力扣剑指Offer 第5天 查找算法(中等) 剑指 Offer 04. 二维数组中的查找 剑指 Offer 11. 旋转数组的最小数字 剑指 Offer 50. 第一个只出现一次的字符剑指 Offer 04. 二维数组中的查找题目在一个n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个高效的函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。示例:现有矩阵 matrix 如下:[ [1, 4, 7, 11, 15]原创 2021-11-01 22:40:14 · 4385 阅读 · 0 评论 -
力扣剑指offer 第4天 查找算法(简单) 03. 数组中重复的数字 LCOF && 53 - I. 在排序数组中查找数字 LCOF && 53 - II. 缺失的数字 LCOF
力扣剑指offer 第4天 查找算法(简单) 剑指 Offer 03. 数组中重复的数字 LCOF 剑指 Offer 53 - I. 在排序数组中查找数字 LCOF 剑指 Offer 53 - II. 缺失的数字 LCOF剑指 Offer 03. 数组中重复的数字 LCOF//这题可以用set简单判断是否已经有存在的值 提高效率可以用一个数组对应放置值如果冲突则输出即可class Solution { public int findRepeatNumber(int[] nums) {原创 2021-10-31 19:34:20 · 97 阅读 · 0 评论 -
力扣剑指offer 第2天 链表(简单) 剑指 Offer 06. 从尾到头打印链表 剑指 Offer 24. 反转链表 剑指 Offer 35. 复杂链表的复制
力扣剑指offer 第2天 链表(简单) 剑指 Offer 06. 从尾到头打印链表 剑指 Offer 24. 反转链表 剑指 Offer 35. 复杂链表的复制剑指 Offer 06. 从尾到头打印链表思路用链表存储每一个节点,然后逆序放入数组中注意这一题会传入 [] 空数组数据,因此需要判断head是否为null,如果为null则返回空数组[]代码/** * Definition for singly-linked list. * public class ListNo原创 2021-10-29 22:12:54 · 112 阅读 · 0 评论 -
力扣剑指offer 第1天 栈与队列(简单)剑指 Offer 09. 用两个栈实现队列 剑指 Offer 30. 包含min函数的栈
力扣剑指offer 第1天 栈与队列(简单)剑指 Offer 09. 用两个栈实现队列思路创建两个栈调用appendTail的时候 进栈1调用deleteHead的时候如果栈2中有元素 则直接将栈2栈顶元素出栈 返回如果栈2无元素如果栈1有元素 则栈1全部出栈到栈2中,最后将栈2的栈顶元素出栈 返回如果栈1无元素 则返回-1备注第9题和第30题都使用了LinkedList而没有用Stack,因为Java中的Stack已经过时,效率低下。我们按照题意只使用栈的操作即可。原创 2021-10-28 20:18:15 · 1204 阅读 · 0 评论