LeetCode练习day4-链表干系

源码 2024-9-30 03:53:21 84 0 来自 中国
LeetCode25 K个一组翻转链表

标题详情

给你链表的头节点 head ,每 k 个节点一组举行翻转,请你返回修改后的链表。
k 是一个正整数,它的值小于或即是链表的长度。假如节点总数不是 k 的整数倍,那么请将末了剩余的节点保持原有序次。
你不能只是单纯的改反叛点内部的值,而是需要实际举行节点交换。
示例 1:

1.png
输入:head = [1,2,3,4,5], k = 2
输出:[2,1,4,3,5]
示例 2:
2.png 输入:head = [1,2,3,4,5], k = 3
输出:[3,2,1,4,5]
提示:
链表中的节点数目为 n
1 <= k <= n <= 5000
0 <= Node.val <= 1000
进阶:你可以筹划一个只用 O(1) 额外内存空间的算法办理此问题吗?
代码

LeetCode28 实现strStr()

标题详情

实现 strStr() 函数。
给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串出现的第一个位置(下标从 0 开始)。假如不存在,则返回  -1 。
分析:
当 needle 是空字符串时,我们应当返回什么值呢?这是一个在口试中很好的问题。
对于本题而言,当 needle 是空字符串时我们应当返回 0 。这与 C 语言的 strstr() 以及 Java 的 indexOf() 界说符合。
示例 1:
输入:haystack = "hello", needle = "ll"
输出:2
示例 2:
输入:haystack = "aaaaa", needle = "bba"
输出:-1
提示:
1 <= haystack.length, needle.length <= 104
haystack 和 needle 仅由小写英笔墨符构成
代码

LeetCode29 两数相除

标题详情

给定两个整数,被除数 dividend 和除数 divisor。将两数相除,要求不利用乘法、除法和 mod 运算符。
返回被除数 dividend 除以除数 divisor 得到的商。
整数除法的效果应当截去(truncate)其小数部分,比方:truncate(8.345) = 8 以及 truncate(-2.7335) = -2
示例 1:
输入: dividend = 10, divisor = 3
输出: 3
表明: 10/3 = truncate(3.33333..) = truncate(3) = 3
示例 2:
输入: dividend = 7, divisor = -3
输出: -2
表明: 7/-3 = truncate(-2.33333..) = -2
提示:
被除数和除数均为 32 位有符号整数。
除数不为 0。
假设我们的情况只能存储 32 位有符号整数,其数值范围是 [−231,  231 − 1]。本题中,假如除法效果溢出,则返回 231 − 1。
代码

LeetCode77 组合

标题详情

给定两个整数 n 和 k,返回范围 [1, n] 中全部大概的 k 个数的组合。
你可以按 任何序次 返回答案。
示例 1:
输入:n = 4, k = 2
输出:
[
[2,4],
[3,4],
[2,3],
[1,2],
[1,3],
[1,4],
]
示例 2:
输入:n = 1, k = 1
输出:[[1]]
提示:
1 <= n <= 20
1 <= k <= n
代码

LeetCode171 Excel表列序号

标题详情

给你一个字符串 columnTitle ,表现 Excel 表格中的列名称。返回 该列名称对应的列序号 。
比方:
A -> 1
B -> 2
C -> 3
...
Z -> 26
AA -> 27
AB -> 28
...
示例 1:
输入: columnTitle = "A"
输出: 1
示例 2:
输入: columnTitle = "AB"
输出: 28
示例 3:
输入: columnTitle = "ZY"
输出: 701
提示:
1 <= columnTitle.length <= 7
columnTitle 仅由大写英文构成
columnTitle 在范围 ["A", "FXSHRXW"] 内
代码

LeetCode202 快乐数

标题详情

编写一个算法来判定一个数 n 是不是快乐数。
「快乐数」 界说为:

  • 对于一个正整数,每一次将该数更换为它每个位置上的数字的平方和。
  • 然后重复这个过程直到这个数变为 1,也大概是 无穷循环 但始终变不到 1。
  • 假如这个过程 效果为 1,那么这个数就是快乐数。
假如 n 是 快乐数 就返回 true ;不是,则返回 false 。
示例 1:
输入:n = 19
输出:true
表明:
12 + 92 = 82
82 + 22 = 68
62 + 82 = 100
12 + 02 + 02 = 1
示例 2:
输入:n = 2
输出:false
提示:
1 <= n <= 231 - 1
代码

LeetCode278 第一个错误版本

标题详情

你是产物司理,现在正在向导一个团队开发新的产物。不幸的是,你的产物的最新版本没有通过质量检测。由于每个版本都是基于之前的版本开发的,以是错误的版本之后的全部版本都是错的。
假设你有 n 个版本 [1, 2, ..., n],你想找出导致之后全部版本堕落的第一个错误的版本。
你可以通过调用 bool isBadVersion(version) 接口来判定版本号 version 是否在单元测试中堕落。实现一个函数来查找第一个错误的版本。你应该只管镌汰对调用 API 的次数。
示例 1:
输入:n = 5, bad = 4
输出:4
表明:
调用 isBadVersion(3) -> false
调用 isBadVersion(5) -> true
调用 isBadVersion(4) -> true
以是,4 是第一个错误的版本。
示例 2:
输入:n = 1, bad = 1
输出:1
提示:
1 <= bad <= n <= 231 - 1
代码

LeetCode371 两整数之和

标题详情

给你两个整数 a 和 b ,不利用 运算符 + 和 - ,盘算并返回两整数之和。
示例 1:
输入:a = 1, b = 2
输出:3
示例 2:
输入:a = 2, b = 3
输出:5
提示:
-1000 <= a, b <= 1000
代码

LeetCode743 网络延长时间

标题详情

有 n 个网络节点,标记为 1 到 n。
给你一个列表 times,表现信号颠末 有向 边的通报时间。 times = (ui, vi, wi),其中 ui 是源节点,vi 是目的节点, wi 是一个信号从源节点通报到目的节点的时间。
现在,从某个节点 K 发出一个信号。需要多久才气使全部节点都收到信号?假如不能使全部节点收到信号,返回 -1 。
示例 1:


输入:times = [[2,1,1],[2,3,1],[3,4,1]], n = 4, k = 2
输出:2
示例 2:
输入:times = [[1,2,1]], n = 2, k = 1
输出:1
示例 3:
输入:times = [[1,2,1]], n = 2, k = 2
输出:-1
提示:
1 <= k <= n <= 100
1 <= times.length <= 6000
times.length == 3
1 <= ui, vi <= n
ui != vi
0 <= wi <= 100
全部 (ui, vi) 对都 互不雷同(即,不含重复边)
代码
您需要登录后才可以回帖 登录 | 立即注册

Powered by CangBaoKu v1.0 小黑屋藏宝库It社区( 冀ICP备14008649号 )

GMT+8, 2024-10-18 16:49, Processed in 0.114756 second(s), 35 queries.© 2003-2025 cbk Team.

快速回复 返回顶部 返回列表