LeetCode(java)+算法+数据结构
数据结构+算法
only-qi
好好学习,努力向前。
展开
-
Leetcode9. 回文数(双指针-对撞)
从左向右读, 为 -121。从右向左读, 为 121-。因此它不是一个回文数。好久好久没写算法了,最近开始写,先从最简单的开始。希望自己可以坚持下去。是指正序(从左向右)和倒序(从右向左)读都是一样的整数。从右向左读, 为 01。因此它不是一个回文数。你能不将整数转为字符串来解决这个问题吗?是一个回文整数,返回。原创 2024-08-21 09:31:18 · 394 阅读 · 0 评论 -
Leetcode344. 反转字符串(双指针-对撞)
好久好久没写算法了,最近开始写,先从最简单的开始。希望自己可以坚持下去。编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组。、使用 O(1) 的额外空间解决这一问题。不要给另外的数组分配额外的空间,你必须。原创 2024-08-21 09:09:29 · 350 阅读 · 0 评论 -
Leetcode26. 删除有序数组中的重复项(双指针)
/ 长度正确的期望答案。好久好久没写算法了,最近开始写,先从最简单的开始。希望自己可以坚持下去。如果所有断言都通过,那么您的题解将被。,返回删除后数组的新长度。删除重复出现的元素,使每个元素。原创 2024-08-20 22:32:47 · 284 阅读 · 0 评论 -
Leetcode876. 链表的中间结点(双指针)
好久好久没写算法了,最近开始写,先从最简单的开始。希望自己可以坚持下去。该链表有两个中间结点,值分别为 3 和 4 ,返回第二个结点。如果有两个中间结点,则返回第二个中间结点。,请你找出并返回链表的中间结点。链表只有一个中间结点,值为 3。原创 2024-08-20 21:57:09 · 187 阅读 · 0 评论 -
Leetcode128. 最长连续序列(不得不会呀)
好久好久没写算法了,最近开始写,先从最简单的开始。希望自己可以坚持下去。,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。最长数字连续序列是 [1, 2, 3, 4]。请你设计并实现时间复杂度为。给定一个未排序的整数数组。原创 2024-08-19 22:19:23 · 159 阅读 · 0 评论 -
leetcode 49. 字母异位词分组(Java)
给你一个字符串数组,请你将组合在一起。可以按任意顺序返回结果列表。是由重新排列源单词的所有字母得到的一个新单词。原创 2024-08-18 22:51:28 · 117 阅读 · 0 评论 -
Leetcode509. 斐波那契数(递归和常规两种写法)
好久好久没写算法了,最近开始写,先从最简单的开始。希望自己可以坚持下去。F(n) = F(n - 1) + F(n - 2),其中 n > 1。开始,后面的每一项数字都是前面两项数字的和。表示)形成的序列称为。原创 2024-07-21 16:57:53 · 378 阅读 · 0 评论 -
Leetcode2427. 公因子的数目和Leetcode.728. 自除数
给你两个正整数a和b,返回a和b的因子的数目。如果x可以同时整除a和b,则认为x是a和b的一个。412 和 6 的公因子是 1、2、3、6。225 和 30 的公因子是 1、5。是指可以被它包含的每一位数整除的数。128不允许包含 0。给定两个整数left和right,返回一个列表,列表的元素是范围内所有的。原创 2024-07-21 12:49:49 · 513 阅读 · 0 评论 -
Leetcode1688. 比赛中的配对次数
第 3 轮:队伍数 = 2 ,配对次数 = 1 ,决出 1 支获胜队伍。- 第 4 轮:队伍数 = 2 ,配对次数 = 1 ,决出 1 支获胜队伍。- 第 1 轮:队伍数 = 14 ,配对次数 = 7 ,7 支队伍晋级。- 第 2 轮:队伍数 = 7 ,配对次数 = 3 ,4 支队伍晋级。- 第 1 轮:队伍数 = 7 ,配对次数 = 3 ,4 支队伍晋级。- 第 2 轮:队伍数 = 4 ,配对次数 = 2 ,2 支队伍晋级。- 第 3 轮:队伍数 = 4 ,配对次数 = 2 ,2 支队伍晋级。原创 2024-07-21 11:56:41 · 281 阅读 · 0 评论 -
Leetcode 2520. 统计能整除数字的位数
121 可以被 1 整除,但无法被 2 整除。由于 1 出现两次,所以返回 2。好久好久没写算法了,今天开始写,先从最简单的开始。希望自己可以坚持下去。1248 可以被它每一位上的数字整除,因此答案是 4。7 被自己整除,因此答案是 1。原创 2024-07-20 23:08:39 · 169 阅读 · 0 评论 -
Leetcode2160. 拆分数位后四位数字的最小和:
比方说,给你 num = 2932 ,你拥有的数位包括:两个 2 ,一个 9 和一个 3。一些可能的 [new1, new2] 数对为 [22, 93],[23, 92],[223, 9] 和 [2, 329]。可行的 [new1, new2] 数对为 [29, 23] ,[223, 9] 等等。可行的 [new1, new2] 数对为 [0, 49] ,[490, 0] 等等。最小和为数对 [29, 23] 的和:29 + 23 = 52。最小和为数对 [4, 9] 的和:4 + 9 = 13。原创 2024-07-20 22:46:20 · 230 阅读 · 0 评论 -
Leetcode1929. 数组串联
好久好久没写算法了,今天开始写,先从最简单的开始。希望自己可以坚持下去。原创 2024-07-18 22:29:39 · 205 阅读 · 0 评论 -
Leetcode 2011. 执行操作后的变量值
-X:X 减 1 ,X = 0 - 1 = -1。X++:X 加 1 ,X = -1 + 1 = 0。X++:X 加 1 ,X = 0 + 1 = 1。,这是由操作组成的一个列表,返回执行所有操作后,++X:X 加 1 ,X = 0 + 1 = 1。++X:X 加 1 ,X = 1 + 1 = 2。X++:X 加 1 ,X = 0 + 1 = 1。++X:X 加 1 ,X = 1 + 1 = 2。--X:X 减 1 ,X = 2 - 1 = 1。X--:X 减 1 ,X = 1 - 1 = 0。原创 2024-07-18 22:14:06 · 201 阅读 · 0 评论 -
389. 找不同(简单不一定知道)
给定两个字符串 s 和 t ,它们只包含小写字母。字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。请找出在 t 中被添加的字母。原创 2022-11-17 10:39:51 · 472 阅读 · 0 评论 -
剑指offer22链表中倒数第k个节点(必会)
输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。例如,一个链表有6个节点,从头节点开始,它们的值依次是1、2、3、4、5、6。这个链表的倒数第3个节点是值为4的节点。思路:快指针先走k步,然后快慢指针一起走到快指针到头为止,这时慢指针就是答案。给定一个链表: 1->2->3->4->5, 和 k = 2.返回链表 4->5.原创 2022-10-24 23:44:12 · 742 阅读 · 0 评论 -
196. 删除重复的电子邮箱
john@example.com重复两次。我们保留最小的Id=1。该表的每一行包含一封电子邮件。电子邮件将不包含大写字母。所有重复的电子邮件,只保留一个id最小的唯一电子邮件。通过次数153,609提交次数226,963。仅需要写删除语句,将自动对剩余结果进行查询)查询结果格式如下所示。id是该表的主键列。...原创 2022-07-25 17:02:32 · 562 阅读 · 0 评论 -
185. 部门工资前三高的所有员工(必会)
公司的主管们感兴趣的是公司每个部门中谁赚的钱最多。一个部门的高收入者是指一个员工的工资在该部门的不同工资中排名前三。该表的每一行都表示员工的ID、姓名和工资。departmentId是Department表中ID的外键。编写一个SQL查询,找出每个部门中收入高的员工。-没有第三高的工资,因为只有两名员工。-兰迪和乔都赚取第二高的独特的薪水。该表的每一行表示部门ID和部门名。-威尔的薪水是第三高的。提交次数186,076。Id是该表的主键列。Id是该表的主键列。-山姆的薪水第二高。...原创 2022-07-25 16:41:05 · 261 阅读 · 0 评论 -
175. 组合两个表(非常简单)
表: Person+-------------+---------+| 列名 | 类型 |+-------------+---------+| PersonId | int || FirstName | varchar || LastName | varchar |+-------------+---------+personId 是该表的主键列。该表包含一些人的 ID 和他们的姓和名的信息。表: Address+-------------+-原创 2022-07-25 16:08:26 · 215 阅读 · 0 评论 -
177. 第N高的薪水(简单)
编写一个SQL查询来报告Employee表中第n高的工资。如果没有第n个最高工资,查询应该报告为null。该表的每一行都包含有关员工工资的信息。表Employee。查询结果格式如下所示。通过次数169,071。提交次数362,608。Id是该表的主键列。...原创 2022-07-25 15:21:34 · 292 阅读 · 0 评论 -
leetcode 222. 完全二叉树的节点个数(必会)
给出一个完全二叉树,求出该树的节点个数。说明:完全二叉树的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。若最底层为第 h 层,则该层包含 1~ 2h 个节点。输入: 1 / \ 2 3 / \ /4 5 6输出: 6求完全二叉树的结点个数运行结果:我要刷300道算法题,第106道...原创 2022-07-14 11:26:12 · 192 阅读 · 0 评论 -
leetcode162. 寻找峰值
峰值元素是指其值严格大于左右相邻值的元素。给你一个整数数组 nums,找到峰值元素并返回其索引。数组可能包含多个峰值,在这种情况下,返回 任何一个峰值 所在位置即可。你可以假设 nums[-1] = nums[n] = -∞ 。你必须实现时间复杂度为 O(log n) 的算法来解决此问题。示例 1:输入:nums = [1,2,3,1]输出:2解释:3 是峰值元素,你的函数应该返回其索引 2。示例 2:输入:nums = [1,2,1,3,5,6,4]输出:1 或 5解释:你的函数可以返回索引 1,原创 2022-07-12 10:47:32 · 152 阅读 · 0 评论 -
367. 有效的完全平方数(入门必会)
367. 有效的完全平方数给定一个 正整数 num ,编写一个函数,如果 num 是一个完全平方数,则返回 true ,否则返回 false 。进阶:不要 使用任何内置的库函数,如 sqrt 。示例 1:输入:num = 16输出:true示例 2:输入:num = 14输出:false提示: 1 ......原创 2022-07-11 19:57:23 · 173 阅读 · 0 评论 -
374. 猜数字大小(入门 必会)
374. 猜数字大小猜数字游戏的规则如下: 每轮游戏,我都会从 1 到 n 随机选择一个数字。 请你猜选出的是哪个数字。 如果你猜错了,我会告诉你,你猜测的数字比我选出的数字是大了还是小了。你可以通过调用一个预先定义好的接口 int guess(int num) 来获取猜测结果,返回值一共有 3 种可能的情况(-1,1 或 0): -1:我选出的数字比你猜的数字小 pick < num 1:我选出的数字比你猜的数字大 pick > num 0:我选出的数字和你猜的数字一样原创 2022-07-11 19:39:43 · 661 阅读 · 0 评论 -
二分查找(leetcode704.很简单必会的)
给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。输入: nums = [-1,0,3,5,9,12], target = 9输出: 4解释: 9 出现在 nums 中并且下标为 4示例 2:输入: nums = [-1,0,3,5,9,12], target = 2输出: -1解释: 2 不存在 nums 中因此返回 -1我要刷300道算法题,第102道...原创 2022-07-11 18:38:13 · 123 阅读 · 0 评论 -
(多线程) 按序打印 (leetcode1114)
题目描述:我们提供了一个类:public class Foo { public void one() { print("one"); } public void two() { print("two"); } public void three() { print("three"); }}三个不同的线程将会共用一个 Foo 实例。线程 A 将会调用 one() 方法线程 B 将会调用 two() 方法线程 C 将会调用 three() 方法请设计修改程序,以确保 tw原创 2022-05-31 18:17:53 · 100 阅读 · 0 评论 -
leetcode104 二叉树的最大深度(java实现)
问题描述:给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回它的最大深度 3 。代码实现,拿去即可运行package com.onlyqi.upup01.leetcode;public class Test05 ...原创 2022-01-21 18:08:00 · 207 阅读 · 0 评论 -
leetcode102 二叉树的层次遍历(每层在一起输出)
问题描述:给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。例如:给定二叉树: [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回其层次遍历结果:[ [3], [9,20], [15,7]]上代码,拿去即可运行:@Data@AllArgsConstructor@NoArgsConstructorpublic class TreeNode .原创 2022-01-19 17:03:25 · 452 阅读 · 0 评论 -
leetcode101 对称二叉树(镜像对称)
问题描述:给定一个二叉树,检查它是否是镜像对称的。例如,二叉树 [1,2,2,3,4,4,3] 是对称的。 1 / \ 2 2 / \ / \3 4 4 3但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的: 1 / \ 2 2 \ \ 3 3上代码,拿去即可运行:@Data@AllArgsConstructor@NoArgsConstructorpublic class原创 2022-01-19 16:17:01 · 324 阅读 · 0 评论 -
leetcode98 验证二叉搜索树(简单必会)
问题描述:给定一个二叉树,判断其是否是一个有效的二叉搜索树。假设一个二叉搜索树具有如下特征:节点的左子树只包含小于当前节点的数。节点的右子树只包含大于当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。示例 1:输入: 2 / \ 1 3输出: true示例 2:输入: 5 / \ 1 4 / \ 3 6输出: false思路:二叉排序树,中序遍历都是升序的上代码,拿去即可运行:@Da原创 2022-01-19 15:34:44 · 92 阅读 · 0 评论 -
leetcode404. 左叶子之和(必会-java)
问题描述:计算给定二叉树的所有左叶子之和。示例: 3 / \9 20 / \ 15 7在这个二叉树中,有两个左叶子,分别是 9 和 15,所以返回 24上代码,拿去即可运行:@Data@AllArgsConstructor@NoArgsConstructorpublic class TreeNode { private Integer val; private TreeNode left; private...原创 2022-01-18 15:12:30 · 416 阅读 · 0 评论 -
leetcode1084. 销售分析III(简单)
问题描述:Table: Product+--------------+---------+| Column Name | Type |+--------------+---------+| product_id | int || product_name | varchar || unit_price | int |+--------------+---------+product_id 是这个表的主键Table: Sales+----------...原创 2022-01-12 21:41:17 · 303 阅读 · 0 评论 -
leetcode1083. 销售分析 II(SQL必会呀)
问题描述:Table: Product+--------------+---------+| Column Name | Type |+--------------+---------+| product_id | int || product_name | varchar || unit_price | int |+--------------+---------+product_id 是这张表的主键Table: Sales+----------...原创 2022-01-12 18:18:37 · 377 阅读 · 0 评论 -
leetcode1075. 项目员工 I(简单)
问题描述:项目表 Project:+-------------+---------+| Column Name | Type |+-------------+---------+| project_id | int || employee_id | int |+-------------+---------+主键为 (project_id, employee_id)。employee_id 是员工表 Employee 表的外键。员工表 Employee:+...原创 2022-01-12 17:03:07 · 193 阅读 · 0 评论 -
leetcode597. 好友申请 I :总体通过率(必会)
问题描述:在 Facebook 或者 Twitter 这样的社交应用中,人们经常会发好友申请也会收到其他人的好友申请。现在给如下两个表:表: friend_request| sender_id | send_to_id |request_date||-----------|------------|------------|| 1 | 2 | 2016_06-01 || 1 | 3 | 2016_06-01 || 1...原创 2022-01-12 15:06:14 · 184 阅读 · 0 评论 -
leetcode586. 订单最多的客户(必会)
问题描述:在表 orders 中找到订单数最多客户对应的 customer_number 。数据保证订单数最多的顾客恰好只有一位。表 orders 定义如下:| Column | Type ||-------------------|-----------|| order_number (PK) | int || customer_number | int || order_date | date |...原创 2022-01-12 10:45:02 · 480 阅读 · 0 评论 -
leetcode585. 2016年的投资(必会的)
问题描述:写一个查询语句,将 2016 年 (TIV_2016) 所有成功投资的金额加起来,保留 2 位小数。对于一个投保人,他在 2016 年成功投资的条件是: 1.他在 2015 年的投保额 (TIV_2015) 至少跟一个其他投保人在 2015 年的投保额相同。 2.他所在的城市必须与其他投保人都不同(也就是说维度和经度不能跟其他任何一个投保人完全相同)。表 insurance 格式如下:| Column Name | Type...原创 2022-01-12 10:22:31 · 222 阅读 · 0 评论 -
科学家发现病毒感染细胞和染色体密切相关,提取出这些染色体的最大相似之处
问题描述: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 package com.armon.test.exam;原创 2021-12-26 18:30:08 · 196 阅读 · 0 评论 -
leetcode1050. 合作过至少三次的演员和导演(SQL)
问题描述:ActorDirector 表:+-------------+---------+| Column Name | Type |+-------------+---------+| actor_id | int || director_id | int || timestamp | int |+-------------+---------+timestamp 是这张表的主键.写一条SQL查询语句获取合作过至少三次的演员和导演的 ...原创 2021-11-03 15:32:31 · 176 阅读 · 7 评论 -
leetcode580. 统计各专业学生人数(SQL)
问题描述:一所大学有 2 个数据表,分别是 student 和 department ,这两个表保存着每个专业的学生数据和院系数据。写一个查询语句,查询 department 表中每个专业的学生人数 (即使没有学生的专业也需列出)。将你的查询结果按照学生人数降序排列。 如果有两个或两个以上专业有相同的学生数目,将这些部门按照部门名字的字典序从小到大排列。student 表格如下:| Column Name | Type ||--------------|----------...原创 2021-11-03 14:55:35 · 2621 阅读 · 0 评论 -
113. 路径总和 II(java)
问题描述:给你二叉树的根节点 root 和一个整数目标和 targetSum ,找出所有 从根节点到叶子节点 路径总和等于给定目标和的路径。叶子节点 是指没有子节点的节点。示例:输入: targetSum = 22输出:[[5,4,11,2],[5,8,4,5]]示例2输入:root = [1,2], targetSum = 0输出:[]上代码,拿去即运行:package com.onlyqi.upup01.tree;publ...原创 2021-10-31 22:48:32 · 171 阅读 · 0 评论