- 博客(136)
- 收藏
- 关注
原创 Leetcode69 x的平方根
注意:不允许使用任何内置指数函数和算符,例如 pow(x, 0.5) 或者 x ** 0.5。解释:8 的算术平方根是 2.82842…, 由于返回类型是整数,小数部分将被舍去。由于返回类型是整数,结果只保留 整数部分 ,小数部分将被 舍去。给你一个非负整数 x ,计算并返回 x 的 算术平方根。
2023-12-13 23:03:32 524
原创 Leetcode415 字符串相加
你不能使用任何內建的用于处理大整数的库(比如。), 也不能直接将输入的字符串转换为整数形式。给定两个字符串形式的非负整数。,计算它们的和并同样。
2023-12-11 15:20:22 462
原创 Leetcode93 复原IP地址
例如:“0.1.2.201” 和 “192.168.1.1” 是 有效 IP 地址,但是 “0.011.255.245”、“192.168.1.312” 和 “192.168@1.1” 是 无效 IP 地址。,这些地址可以通过在 s 中插入 ‘.’ 来形成。你 不能 重新排序或删除 s 中的任何数字。你可以按 任何 顺序返回答案。正好由四个整数(每个整数位于 0 到 255 之间组成,且不能含有前导 0),整数之间用 ‘.’ 分隔。的字符串 s ,用以表示一个 IP 地址,返回。
2023-12-11 14:49:01 433
原创 Leetcode88 合并两个有序数组
注意,因为 m = 0 ,所以 nums1 中没有元素。nums1 中仅存的 0 仅仅是为了确保合并结果可以顺利存放到 nums1 中。合并结果是 [1,2,2,3,5,6] ,其中斜体加粗标注的为 nums1 中的元素。注意:最终,合并后数组不应由函数返回,而是存储在数组。解释:需要合并 [1,2,3] 和 [2,5,6]。中,使合并后的数组同样按 非递减顺序 排列。解释:需要合并的数组是 [] 和 [1]。解释:需要合并 [1] 和 []。个元素表示应合并的元素,后。合并结果是 [1]。
2023-11-16 20:21:26 167
原创 100 寻找重复数
范围内(包括 1 和 n),可知至少存在一个重复的整数。「Floyd 判圈算法」时间复杂度为线性的时间复杂度。你设计的解决方案必须 不修改 数组。
2023-11-10 17:52:32 129
原创 99 颜色分类
原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。给定一个包含红色、白色和蓝色、共。输出:[0,0,1,1,2,2]输出:[0,1,2]
2023-11-10 15:37:52 95
原创 98 多数元素
返回其中的多数元素。多数元素是指在数组中出现次数 大于。你可以假设数组是非空的,并且给定的数组总是存在多数元素。进阶:尝试设计时间复杂度为。
2023-11-10 08:17:29 78
原创 96 前缀树Trie
(发音类似 “try”)或者说 前缀树 是一种树形数据结构,用于高效地存储和检索字符串数据集中的键。这一数据结构有相当多的应用情景,例如自动补完和拼写检查。
2023-11-10 08:01:43 237
原创 95 课程表
方法一: BFS从入度思考(从前往后排序), 入度为0的节点在拓扑排序中一定排在前面, 然后删除和该节点对应的边, 迭代寻找入度为0的节点。方法二: DFS从出度思考(从后往前排序), 出度为0的节点在拓扑排序中一定排在后面, 然后删除和该节点对应的边, 迭代寻找出度为0的节点。解释:总共有 2 门课程。学习课程 1 之前,你需要先完成课程 0;并且学习课程 0 之前,你还应先完成课程 1。在选修某些课程之前需要一些先修课程。解释:总共有 2 门课程。学习课程 1 之前,你需要完成课程 0。
2023-11-10 07:31:25 147
原创 【并查集】93 岛屿数量
给你一个由 ‘1’(陆地)和 ‘0’(水)组成的的二维网格,请你计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。此外,你可以假设该网格的四条边均被水包围。
2023-11-03 11:53:45 74
原创 92 数据流中的中位数
是有序整数列表中的中间值。如果列表的大小是偶数,则没有中间值,中位数是两个中间值的平均值。返回到目前为止所有元素的中位数。与实际答案相差 10-5 以内的答案将被接受。的中位数是 (2 + 3) / 2 = 2.5。
2023-11-02 12:38:16 80
原创 90 数组中的第K个最大元素
大根堆就是根节点是整棵树的最大值(根节点大于等于左右子树的最大值),对于他的任意子树,根节点也是最大值。请注意,你需要找的是数组排序后的第。你必须设计并实现时间复杂度为。个最大的元素,而不是第。
2023-11-02 11:40:46 344
原创 89 柱状图中最大的矩形
个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1。求在该柱状图中,能够勾勒出来的矩形的最大面积。
2023-11-01 12:06:10 161
原创 88 每日温度
天,下一个更高温度出现在几天后。如果气温在这之后都不会升高,请在该位置用。输出: [1,1,4,2,1,1,0,0],表示每天的温度,返回一个数组。输出: [1,1,1,0]输出: [1,1,0]
2023-10-31 21:56:33 138
原创 【经典面试】87 字符串解码
输入字符串中没有额外的空格,且输入的方括号总是符合格式要求的。此外,你可以认为原始数据不包含数字,所有的数字只表示重复的次数。给定一个经过编码的字符串,返回它解码后的字符串。,例如不会出现像 3a 或 2[4] 的输入。输入:s = “2[abc]3[cd]ef”输入:s = “abc3[cd]xyz”输出:“abcabccdcdcdef”输入:s = “3[a]2[bc]”输入:s = “3[a2[c]]”输出:“abccdcdcdxyz”输出:“accaccacc”输出:“aaabcbc”
2023-10-30 17:03:17 217
原创 86 最小栈
-> 返回 -3.minStack.getMin();--> 返回 -2.minStack.top();操作,并能在常数时间内检索到最小元素的栈。
2023-10-30 15:16:32 75
原创 82 N皇后
皇后问题 的棋子放置方案,该方案中 ‘Q’ 和 ‘.’ 分别代表了皇后和空位。的棋盘上,并且使皇后彼此之间不能相互攻击。按照国际象棋的规则,皇后可以攻击与之处在。皇后问题 研究的是如何将。每一种解法包含一个不同的。皇后问题 的解决方案。
2023-10-29 20:47:03 107
原创 81 分割回文串
输出:[[“a”,“a”,“b”],[“aa”,“b”]]返回 s 所有可能的分割方案。是正着读和反着读都一样的字符串。输出:[[“a”]]
2023-10-29 20:28:22 98
原创 【需要理解】80 单词搜索
单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。
2023-10-29 16:52:04 193
原创 79 电话号码的字母组合
输出:[“ad”,“ae”,“af”,“bd”,“be”,“bf”,“cd”,“ce”,“cf”]的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下(与电话按键相同)。输出:[“a”,“b”,“c”]
2023-10-29 12:53:37 109
原创 75 寻找旋转排序数组中的最小值
它原来是一个升序排列的数组,并按上述情形进行了多次旋转。请你找出并返回数组中的 最小元素。解释:原数组为 [0,1,2,4,5,6,7] ,旋转 4 次得到输入数组。解释:原数组为 [11,13,15,17] ,旋转 4 次得到输入数组。解释:原数组为 [1,2,3,4,5] ,旋转 3 次得到输入数组。次 旋转 后,得到输入数组。给你一个元素值 互不相同 的数组。若旋转 4 次,则可以得到。若旋转 7 次,则可以得到。旋转一次 的结果为数组。你必须设计一个时间复杂度为。
2023-10-28 09:41:41 98
原创 69 划分字母区间
划分结果为 “ababcbaca”、“defegde”、“hijhklij”。每次都在找当前字符所在的最大下标k,可以保证该片段的最小长度n>k-begin。我们要把这个字符串划分为尽可能多的片段,同一字母最多出现在一个片段中。注意,划分结果需要满足:将所有划分结果按顺序连接,得到的字符串仍然是。每个字母最多出现在一个片段中。返回一个表示每个字符串片段的。输出:[9,7,8]
2023-10-26 11:59:41 106
原创 68 买卖股票的最佳时机
解释:在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5。买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。注意利润不能是 7-1 = 6, 因为卖出价格需要大于买入价格;同时,你不能在买入前卖出股票。返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0。解释:在这种情况下, 没有交易完成, 所以最大利润为 0。表示一支给定股票第 i 天的价格。
2023-10-25 11:38:18 103
原创 67 跳跃游戏 II
直观上来看,我们可以「贪心」地选择距离最后一个位置最远的那个位置,也就是对应下标最小的那个位置。从下标为 0 跳到下标为 1 的位置,跳 1 步,然后跳 3 步到达数组的最后一个位置。如果有多个位置通过跳跃都能够到达最后一个位置,那么我们应该如何进行选择呢?因此,我们可以从左到右遍历数组,选择第一个满足要求的位置。解释: 跳到最后一个位置的最小跳跃数是 2。向前跳转的最大长度。处,你可以跳转到任意。
2023-10-25 11:05:59 154
原创 66 跳跃游戏
解释:无论怎样,总会到达下标为 3 的位置。但该下标的最大跳跃长度是 0 , 所以永远不可能到达最后一个下标。解释:可以先跳 1 步,从下标 0 到达下标 1, 然后再从下标 1 跳 3 步到达最后一个下标。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个下标,如果可以,返回。给你一个非负整数数组。
2023-10-25 11:05:13 379 1
原创 65 编辑距离
inention -> enention (将 ‘i’ 替换为 ‘e’)enention -> exention (将 ‘n’ 替换为 ‘x’)exention -> exection (将 ‘n’ 替换为 ‘c’)horse -> rorse (将 ‘h’ 替换为 ‘r’)intention -> inention (删除 ‘t’)exection -> execution (插入 ‘u’)rorse -> rose (删除 ‘r’)rose -> ros (删除 ‘e’)所使用的最少操作数。
2023-10-24 09:59:36 51
原创 64 最长公共子序列
例如,“ace” 是 “abcde” 的子序列,但 “aec” 不是 “abcde” 的子序列。的情况下删除某些字符(也可以不删除任何字符)后组成的新字符串。一个字符串的子序列是指这样一个新的字符串:它是由原字符串在。解释:最长公共子序列是 “ace” ,它的长度为 3。解释:最长公共子序列是 “abc” ,它的长度为 3。解释:两个字符串没有公共子序列,返回 0。,返回这两个字符串的。
2023-10-23 22:01:14 304
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人