Leetcode
May Hacker
无所谓才能无所畏!我会变得更强!
展开
-
leetcode 1619. 删除某些元素后的数组均值
lc 1619原创 2022-09-14 22:00:00 · 571 阅读 · 0 评论 -
Leetcode 1035. 不相交的线
lc 1035原创 2022-09-10 22:10:12 · 1321 阅读 · 0 评论 -
Leetcode 669 修剪二叉树
lc 669原创 2022-09-10 21:38:27 · 1155 阅读 · 0 评论 -
Leetcode 1171. 从链表中删去总和值为零的连续节点
1171. 从链表中删去总和值为零的连续节点原创 2022-09-08 16:58:03 · 559 阅读 · 0 评论 -
Leetcode 652 寻找重复的子树
lc 652 寻找重复的子树原创 2022-09-05 21:04:03 · 497 阅读 · 0 评论 -
Leetcode 34. 在排序数组中查找元素的第一个和最后一个位置
给你一个按照非递减顺序排列的整数数组 nums,和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置。著作权归领扣网络所有。原创 2022-09-05 20:10:32 · 604 阅读 · 0 评论 -
Leetcode 646. 最长数对链
646. 最长数对链原创 2022-09-03 14:13:22 · 465 阅读 · 0 评论 -
剑指 Offer II 066. 单词之和
单词之和原创 2022-09-03 12:34:33 · 509 阅读 · 0 评论 -
Leetcode1961. 检查字符串是否为数组前缀
https://leetcode.cn/problems/check-if-string-is-a-prefix-of-array/原创 2022-07-05 01:03:07 · 484 阅读 · 0 评论 -
Leetcode 208. 实现 Trie (前缀树)
208. 实现 Trie (前缀树)原创 2022-07-05 00:43:38 · 194 阅读 · 0 评论 -
Leetcode 剑指 Offer 59 - II. 队列的最大值
offer 59 队列的最大值原创 2022-07-03 14:23:25 · 229 阅读 · 0 评论 -
数组A中给定可以使用的1~9的数,返回由A数组中的元素组成的小于n的最大数。例如A={1, 2, 4, 9},x=2533,返回2499
题目重述数组A中给定可以使用的1~9的数,返回由A数组中的元素组成的小于n的最大数。例如A={1, 2, 4, 9},x=2533,返回2499回溯法public class Main1 { public static int num = 0; public static int maxLarger = -1; public static int getLargerButLessThanK(int[] nums, int k) { backTrace(nu原创 2022-05-24 20:02:31 · 742 阅读 · 0 评论 -
Leetcode 498. 对角线遍历
题目重述给你一个大小为 m x n 的矩阵 mat ,请以对角线遍历的顺序,用一个数组返回这个矩阵中的所有元素。示例 1:输入:mat = [[1,2,3],[4,5,6],[7,8,9]]输出:[1,2,4,7,5,3,6,8,9]示例 2:输入:mat = [[1,2],[3,4]]输出:[1,2,3,4]提示:m == mat.lengthn == mat[i].length1 <= m, n <= 1041 <= m * n <= 104-10原创 2022-03-19 13:46:19 · 218 阅读 · 0 评论 -
Leetcode 460. LFU 缓存
题目重述请你为 最不经常使用(LFU)缓存算法设计并实现数据结构。实现 LFUCache 类:LFUCache(int capacity) - 用数据结构的容量 capacity 初始化对象int get(int key) - 如果键 key 存在于缓存中,则获取键的值,否则返回 -1 。void put(int key, int value) - 如果键 key 已存在,则变更其值;如果键不存在,请插入键值对。当缓存达到其容量 capacity 时,则应该在插入新项之前,移除最不经常使用的项。原创 2022-03-19 13:44:39 · 681 阅读 · 0 评论 -
Leetcode 279. 完全平方数
题目重述给你一个整数 n ,返回 和为 n 的完全平方数的最少数量 。完全平方数 是一个整数,其值等于另一个整数的平方;换句话说,其值等于一个整数自乘的积。例如,1、4、9 和 16 都是完全平方数,而 3 和 11 不是。示例 1:输入:n = 12输出:3 解释:12 = 4 + 4 + 4示例 2:输入:n = 13输出:2解释:13 = 4 + 9提示:1 <= n <= 104来源:力扣(LeetCode)链接:https://leetcode-cn.原创 2022-03-18 08:33:13 · 331 阅读 · 0 评论 -
Leetcode 4. 寻找两个正序数组的中位数
题目重述给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数 。算法的时间复杂度应该为 O(log (m+n)) 。示例 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 =原创 2022-03-17 20:41:14 · 355 阅读 · 0 评论 -
Leetcode 494. 目标和
题目重述给你一个整数数组 nums 和一个整数 target 。向数组中的每个整数前添加 ‘+’ 或 ‘-’ ,然后串联起所有整数,可以构造一个 表达式 :例如,nums = [2, 1] ,可以在 2 之前添加 ‘+’ ,在 1 之前添加 ‘-’ ,然后串联起来得到表达式 “+2-1” 。返回可以通过上述方法构造的、运算结果等于 target 的不同 表达式 的数目。示例 1:输入:nums = [1,1,1,1,1], target = 3输出:5解释:一共有 5 种方法让最终目标和为原创 2022-03-13 14:49:38 · 138 阅读 · 0 评论 -
Leetcode 530. 二叉搜索树的最小绝对差
题目重述给你一个二叉搜索树的根节点 root ,返回 树中任意两不同节点值之间的最小差值 。差值是一个正数,其数值等于两值之差的绝对值。示例 1:输入:root = [4,2,6,1,3]输出:1示例 2:输入:root = [1,0,48,null,null,12,49]输出:1 提示:树中节点的数目范围是 [2, 104]0 <= Node.val <= 105来源:力扣(LeetCode)链接:https://leetcode-cn.com/probl原创 2022-02-27 17:47:25 · 156 阅读 · 0 评论 -
Leetcode 1287. 有序数组中出现次数超过25%的元素
题目重述给你一个非递减的 有序 整数数组,已知这个数组中恰好有一个整数,它的出现次数超过数组元素总数的 25%。请你找到并返回这个整数示例:输入:arr = [1,2,2,6,6,6,6,7,10]输出:6 提示:1 <= arr.length <= 10^40 <= arr[i] <= 10^5来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/element-appearing-more-than-25-原创 2022-02-27 17:36:51 · 181 阅读 · 0 评论 -
Leetcode 1207. 独一无二的出现次数
题目重述给你一个整数数组 arr,请你帮忙统计数组中每个数的出现次数。如果每个数的出现次数都是独一无二的,就返回 true;否则返回 false。示例 1:输入:arr = [1,2,2,1,1,3]输出:true解释:在该数组中,1 出现了 3 次,2 出现了 2 次,3 只出现了 1 次。没有两个数的出现次数相同。示例 2:输入:arr = [1,2]输出:false示例 3:输入:arr = [-3,0,1,-3,1,1,1,-3,10,0]输出:true提示:1 &原创 2022-02-26 16:53:15 · 160 阅读 · 0 评论 -
Leetcode 461. 汉明距离
题目重述两个整数之间的 汉明距离 指的是这两个数字对应二进制位不同的位置的数目。给你两个整数 x 和 y,计算并返回它们之间的汉明距离。示例 1:输入:x = 1, y = 4输出:2解释:1 (0 0 0 1)4 (0 1 0 0) ↑ ↑上面的箭头指出了对应二进制位不同的位置。示例 2:输入:x = 3, y = 1输出:1 提示:0 <= x, y <= 231 - 1来源:力扣(LeetCode)链接:https://le原创 2022-01-27 09:33:03 · 154 阅读 · 0 评论 -
Leetcode 292. Nim 游戏
题目重述你和你的朋友,两个人一起玩 Nim 游戏:桌子上有一堆石头。你们轮流进行自己的回合, 你作为先手 。每一回合,轮到的人拿掉 1 - 3 块石头。拿掉最后一块石头的人就是获胜者。假设你们每一步都是最优解。请编写一个函数,来判断你是否可以在给定石头数量为 n 的情况下赢得游戏。如果可以赢,返回 true;否则,返回 false 。示例 1:输入:n = 4输出:false 解释:以下是可能的结果:移除1颗石头。你的朋友移走了3块石头,包括最后一块。你的朋友赢了。移除2个石子。原创 2022-01-27 09:24:04 · 1794 阅读 · 0 评论 -
Leetcode 三个线程顺序执行
题目重述题解Java AC1.利用Java提供的原子类class Foo { private AtomicInteger atomicInteger = new AtomicInteger(0); public Foo() { } public void first(Runnable printFirst) throws InterruptedException { // printFirst.run()原创 2022-01-25 18:45:00 · 187 阅读 · 0 评论 -
Leetcode 45. 跳跃游戏 II
题目给你一个非负整数数组 nums ,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。你的目标是使用最少的跳跃次数到达数组的最后一个位置。假设你总是可以到达数组的最后一个位置。示例 1:输入: nums = [2,3,1,1,4]输出: 2解释: 跳到最后一个位置的最小跳跃数是 2。 从下标为 0 跳到下标为 1 的位置,跳 1 步,然后跳 3 步到达数组的最后一个位置。示例 2:输入: nums = [2,3,0,1,4]输出: 2提示:原创 2022-01-21 22:52:41 · 137 阅读 · 0 评论 -
Leetcode 17. 电话号码的字母组合
题目重述给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例 1:输入:digits = "23"输出:["ad","ae","af","bd","be","bf","cd","ce","cf"]示例 2:输入:digits = ""输出:[]示例 3:输入:digits = "2"输出:["a","b","c"] 提示:0 <= digits.leng原创 2022-01-21 22:03:22 · 98 阅读 · 0 评论 -
Leetcode 61. 旋转链表
题目重述给你一个链表的头节点 head ,旋转链表,将链表每个节点向右移动 k 个位置。示例 1:输入:head = [1,2,3,4,5], k = 2输出:[4,5,1,2,3]示例 2:输入:head = [0,1,2], k = 4输出:[2,0,1]提示:链表中节点的数目在范围 [0, 500] 内-100 <= Node.val <= 1000 <= k <= 2 * 109来源:力扣(LeetCode)链接:https://leetcod原创 2022-01-17 22:31:08 · 303 阅读 · 0 评论 -
剑指 Offer 51. 数组中的逆序对
题目重述在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。示例 1:输入: [7,5,6,4]输出: 5 限制:0 <= 数组长度 <= 50000来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/shu-zu-zhong-de-ni-xu-dui-lcof著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。Java ACcla原创 2022-01-09 17:39:15 · 95 阅读 · 0 评论 -
Leetcode 848. 字母移位
题目重述有一个由小写字母组成的字符串 S,和一个整数数组 shifts。我们将字母表中的下一个字母称为原字母的 移位(由于字母表是环绕的, ‘z’ 将会变成 ‘a’)。例如·,shift(‘a’) = ‘b’, shift(‘t’) = ‘u’,, 以及 shift(‘z’) = ‘a’。对于每个 shifts[i] = x , 我们会将 S 中的前 i+1 个字母移位 x 次。返回将所有这些移位都应用到 S 后最终得到的字符串。示例:输入:S = "abc", shifts = [3,5,9原创 2022-01-09 17:17:46 · 196 阅读 · 0 评论 -
数据结构与算法—回顾堆排序
前言知识它忘得太快了,而自己又处于过五关斩六将的状态,冲啊~思路堆排序很经典,这里不追求赘述堆的相关知识点,而是视作已经堆结构有一定了解堆是一种完全二叉树的结构,分为大顶堆和小顶堆,大顶堆就是父节点的值比左右子结点的值大,小顶堆则相反堆排序的时间复杂度是O(n*log2n),最好最坏都是这个堆排序(排序结果从小到大)分为两步,第一步是把给定的一个数组初始化为一个大顶堆,第二步是将第一个元素与最后一个元素交换,因为第一个元素一定是最大的,之后再次进行大顶堆的调整,交换,调整……………………,最后原创 2022-01-09 11:37:11 · 253 阅读 · 0 评论 -
leetcode 390 消除游戏
题目重述列表 arr 由在范围 [1, n] 中的所有整数组成,并按严格递增排序。请你对 arr 应用下述算法:从左到右,删除第一个数字,然后每隔一个数字删除一个,直到到达列表末尾。重复上面的步骤,但这次是从右到左。也就是,删除最右侧的数字,然后剩下的数字每隔一个删除一个。不断重复这两步,从左到右和从右到左交替进行,直到只剩下一个数字。给你整数 n ,返回 arr 最后剩下的数字。示例 1:输入:n = 9输出:6解释:arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]原创 2022-01-02 13:16:55 · 254 阅读 · 0 评论 -
剑指 Offer 15. 二进制中1的个数
题目重述编写一个函数,输入是一个无符号整数(以二进制串的形式),返回其二进制表达式中数字位数为 ‘1’ 的个数(也被称为 汉明重量).)。提示:请注意,在某些语言(如 Java)中,没有无符号整数类型。在这种情况下,输入和输出都将被指定为有符号整数类型,并且不应影响您的实现,因为无论整数是有符号的还是无符号的,其内部的二进制表示形式都是相同的。在 Java 中,编译器使用 二进制补码 记法来表示有符号整数。因此,在上面的 示例 3 中,输入表示有符号整数 -3。示例 1:输入:n = 11 (控原创 2021-12-19 15:24:18 · 95 阅读 · 0 评论 -
剑指 Offer 33. 二叉搜索树的后序遍历序列
题目重述输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历结果。如果是则返回 true,否则返回 false。假设输入的数组的任意两个数字都互不相同。参考以下这颗二叉搜索树: 5/ \2 6/ 1 3示例 1:输入: [1,6,3,2,5]输出: false示例 2:输入: [1,3,2,6,5]输出: true提示:数组长度 <= 1000来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/er原创 2021-12-19 12:10:40 · 97 阅读 · 0 评论 -
记第一次参加Leetcode周赛2021.12.19
前言第一次参加周赛,之前只刷题体验感满满的,希望早日能AK一次!加油加油,无所谓才能无所畏!5956. 找出数组中的第一个回文字符串 AC思路很普通,for循环,对每个字符串判断回文,如果是回文就返回class Solution { public String firstPalindrome(String[] words) { for(int i=0;i<words.length;i++){ if(judge(words[i])==true)原创 2021-12-19 11:35:49 · 797 阅读 · 0 评论 -
剑指 Offer 53 - II. 0~n-1中缺失的数字
题目重述个长度为n-1的递增排序数组中的所有数字都是唯一的,并且每个数字都在范围0~n-1之内。在范围0~n-1内的n个数字中有且只有一个数字不在该数组中,请找出这个数字。示例 1:输入: [0,1,3]输出: 2示例 2:输入: [0,1,2,3,4,5,6,7,9]输出: 8 限制:1 <= 数组长度 <= 10000来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/que-shi-de-shu-zi-lcof原创 2021-12-18 18:41:37 · 137 阅读 · 0 评论 -
Leetcode 946. 验证栈序列(模拟栈的弹出)
题目重述给定 pushed 和 popped 两个序列,每个序列中的 值都不重复,只有当它们可能是在最初空栈上进行的推入 push 和弹出 pop 操作序列的结果时,返回 true;否则,返回 false 。示例 1:输入:pushed = [1,2,3,4,5], popped = [4,5,3,2,1]输出:true解释:我们可以按以下顺序执行:push(1), push(2), push(3), push(4), pop() -> 4,push(5), pop() -> 5,原创 2021-12-18 12:16:27 · 144 阅读 · 0 评论 -
Leetcode 263. 丑数
题目重述给你一个整数 n ,请你判断 n 是否为 丑数 。如果是,返回 true ;否则,返回 false 。丑数 就是只包含质因数 2、3 和/或 5 的正整数。示例 1:输入:n = 6输出:true解释:6 = 2 × 3示例 2:输入:n = 8输出:true解释:8 = 2 × 2 × 2示例 3:输入:n = 14输出:false解释:14 不是丑数,因为它包含了另外一个质因数 7 。示例 4:输入:n = 1输出:true解释:1 通常被视为丑数。提示:原创 2021-12-18 11:56:10 · 3298 阅读 · 0 评论 -
剑指 Offer 49. 丑数(与LC 264相同)
题目重述我们把只包含质因子 2、3 和 5 的数称作丑数(Ugly Number)。求按从小到大的顺序的第 n 个丑数。示例:输入: n = 10输出: 12解释: 1, 2, 3, 4, 5, 6, 8, 9, 10, 12 是前 10 个丑数。说明:1 是丑数。n 不超过1690。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/chou-shu-lcof著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。题解原创 2021-12-18 11:43:39 · 113 阅读 · 0 评论 -
剑指 Offer 26. 树的子结构
题目重述输入两棵二叉树A和B,判断B是不是A的子结构。(约定空树不是任意一个树的子结构)B是A的子结构, 即 A中有出现和B相同的结构和节点值。例如:给定的树 A: 3 / \ 4 5 / \ 1 2给定的树 B: 4 / 1返回 true,因为 B 与 A 的一个子树拥有相同的结构和节点值。示例 1:输入:A = [1,2,3], B = [3,1]输出:false示例 2:输入:A = [3,4,5,1,2], B = [4原创 2021-12-18 11:14:33 · 69 阅读 · 0 评论 -
Leetcode 91. 解码方法
题目重述一条包含字母 A-Z 的消息通过以下映射进行了 编码 :‘A’ -> 1‘B’ -> 2…‘Z’ -> 26要 解码 已编码的消息,所有数字必须基于上述映射的方法,反向映射回字母(可能有多种方法)。例如,“11106” 可以映射为:“AAJF” ,将消息分组为 (1 1 10 6)“KJF” ,将消息分组为 (11 10 6)注意,消息不能分组为 (1 11 06) ,因为 “06” 不能映射为 “F” ,这是由于 “6” 和 “06” 在映射中并不等价。给你原创 2021-12-17 21:29:02 · 163 阅读 · 0 评论 -
Leetcode 670. 最大交换
题目重述给定一个非负整数,你至多可以交换一次数字中的任意两位。返回你能得到的最大值。示例 1 :输入: 2736输出: 7236解释: 交换数字2和数字7。示例 2 :输入: 9973输出: 9973解释: 不需要交换。注意:给定数字的范围是 [0, 108]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/maximum-swap著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。Java ACcla原创 2021-12-16 16:53:54 · 130 阅读 · 0 评论