刷题
力扣、牛客
青春无敌美少
这个作者很懒,什么都没留下…
展开
-
【java】牛客BM4.合并两个排序的链表 BM5. 合并k个已排序的链表
合并两个排序的链表 合并k个已排序的链表原创 2023-02-10 10:54:03 · 229 阅读 · 0 评论 -
java反转链表
给定一个单链表的头结点pHead(该头节点是有值的,比如在下图,它的val是1),长度为n,反转该链表后,返回新链表的表头。链表的反转中,我们可以用到栈先进后出的特点,将原链表中的结点按顺序放入栈中,之后将栈中的元素取出,连接成链表。要求:空间复杂度 O(1)O(1) ,时间复杂度 O(n)O(n)。经反转后,原链表变为{3,2,1},所以对应的输出为{3,2,1}。我们在原链表中更改结点之间的指向,即可完成对链表的反转。数据范围: 0原创 2022-11-13 10:09:38 · 662 阅读 · 0 评论 -
【java】牛客BM31. 对称的二叉树
给定一棵二叉树,判断其是否是自身的镜像(即:是否对称)原创 2022-06-14 15:21:51 · 146 阅读 · 0 评论 -
【java】leetcode278. 第一个错误的版本
你是产品经理,目前正在带领一个团队开发新的产品。不幸的是,你的产品的最新版本没有通过质量检测。由于每个版本都是基于之前的版本开发的,所以错误的版本之后的所有版本都是错的。假设你有 n 个版本 [1, 2, ..., n],你想找出导致之后所有版本出错的第一个错误的版本。你可以通过调用bool isBadVersion(version)接口来判断版本号 version 是否在单元测试中出错。实现一个函数来查找第一个错误的版本。你应该尽量减少对调用 API 的次数。...原创 2022-06-12 16:40:41 · 99 阅读 · 0 评论 -
【java】牛客BM19. 寻找峰值
给定一个长度为n的数组nums,请你找到峰值并返回其索引。数组可能包含多个峰值,在这种情况下,返回任何一个所在位置即可。1.峰值元素是指其值严格大于左右相邻值的元素。严格大于即不能有等于2.假设 nums[-1] = nums[n] = -\infty−∞3.对于所有有效的 i 都有 nums[i] != nums[i + 1]4.你可以使用O(logN)的时间复杂度实现此问题吗?...原创 2022-06-12 15:22:23 · 455 阅读 · 0 评论 -
【java】牛客BM18. 二维数组中的查找
在一个二维数组array中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。[[1,2,8,9],[2,4,9,12],[4,7,10,13],[6,8,11,15]]给定 target = 7,返回 true。给定 target = 3,返回 false。数据范围:矩阵的长宽满足 0 \le n,m \le 5000≤n,m≤500 , 矩阵中的值满足 0 \.原创 2022-06-10 15:18:53 · 135 阅读 · 0 评论 -
【java】牛客BM1.反转链表
给定一个单链表的头结点pHead(该头节点是有值的,比如在下图,它的val是1),长度为n,反转该链表后,返回新链表的表头。数据范围: 0\leq n\leq10000≤n≤1000要求:空间复杂度 O(1)O(1) ,时间复杂度 O(n)O(n) 。...原创 2022-06-10 11:40:06 · 200 阅读 · 0 评论 -
【java】leetcode914.卡牌分组
给定一副牌,每张牌上都写着一个整数。此时,你需要选定一个数字 X,使我们可以将整副牌按下述规则分成 1 组或更多组:每组都有X张牌。组内所有的牌上都写着相同的整数。仅当你可选的 X >= 2 时返回true。...原创 2022-06-08 15:45:13 · 124 阅读 · 0 评论 -
【java】leetcode234. 回文链表
leetcode234. 回文链表:问题描述解题思路:先通过双指针中的快慢指针来找到链表的中点如果fast指针没有指向null,说明链表长度为奇数,slow还要再前进一步从slow开始反转后面的链表,现在开始比较回文串实现代码:class Solution { public boolean isPalindrome(ListNode head) { ListNode slow,fast; slow=fast=head; while(原创 2022-04-03 15:45:37 · 94 阅读 · 0 评论 -
【java】leetcode1004. 最大连续1的个数 III;2024. 考试的最大困扰度
1004. 最大连续1的个数 III给定一个二进制数组 nums 和一个整数 k,如果可以翻转最多 k 个 0 ,则返回 数组中连续 1 的最大个数一位老师正在出一场由 n道判断题构成的考试,每道题的答案为 true (用 'T' 表示)或者 false (用 'F'表示)。老师想增加学生对自己做出答案的不确定性,方法是最大化有 连续相同结果的题数。(也就是连续出现 true 或者连续出现 false)原创 2022-04-03 15:41:20 · 935 阅读 · 0 评论 -
【java】leetcode206. 反转链表
问题描述leetcode106. 反转链表题目分析:对于递归算法,最重要的就是明确递归函数的定义。具体来说,我们的 reverseList 函数定义是这样的:输入一个节点 head,将以 head 为起点的链表反转,并返回反转之后的头结点。明白了函数的定义,再来看这个问题。比如说我们想反转这个链表:那么输入 reverse(head) 后,会在进行递归:ListNode last = reverseList(head.next);接下来:head.next = null;ret原创 2022-04-01 19:56:57 · 471 阅读 · 0 评论 -
【java】剑指 Offer 36. 二叉搜索树与双向链表
剑指 Offer 36. 二叉搜索树与双向链表原创 2022-04-01 16:04:41 · 850 阅读 · 0 评论 -
【java】leetcode205.同构字符串;290.单词规律
由于205与290题解题思路较为相似,因此总结在一起leetcode205.同构字符串:问题描述解题思路:205.同构字符串是290. 单词规律的简化版,我们可以通过判断 s 和 t 每个位置上的字符是否都一一对应,即 s 的任意一个字符被 t 中唯一的字符对应,同时 t 的任意一个字符被 s 中唯一的字符对应。这也被称为「双射」的关系。我们创建两张哈希表,第一张哈希表 s2t 以 s 中字符为键,映射至 t 的字符为值,第二张哈希表 t2s 以 t 中字符为键,映射至 s 的字符为值。原创 2022-03-30 16:34:07 · 378 阅读 · 0 评论 -
【java】leetcode105.从前序和中序遍历序列构造二叉树
问题描述leetcode105.从前序和中序遍历序列构造二叉树题目分析:构造二叉树,第一件事一定是找根节点,然后想办法构造左右子树。将inorder[]对应关系存入HashMap中,已知preorder[]的第一个元素是二叉树的根节点,那么可根此将inorder[]分为三部分:之后将root.left也可分为三部分,root.right也可分为三部分,通过递归可使问题得到最终解决。代码实现:class Solution { HashMap<Integer,Integer>原创 2022-03-29 15:50:08 · 810 阅读 · 0 评论 -
【java】剑指offer55.平衡二叉树
问题描述力扣101.对称二叉树题目分析:代码实现:原创 2022-03-27 15:16:50 · 620 阅读 · 0 评论 -
【java】leetcode690.员工的重要性
最近写力扣的题,想把自己的思路记录下来:问题描述力扣690.员工的重要性题目分析:我采用的方法是使用map将员工的id和员工对应起来,当输入要查找的id时,对于找到其下属,再将其重要度相加,直至员工无下属为止。代码实现:/*// Definition for Employee.class Employee { public int id; public int importance; public List<Integer> subordinate原创 2022-03-26 09:04:19 · 610 阅读 · 0 评论