• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
 






我想听陷阱

 
 

Powered by 博客园
博客园 | 首页 | 新随笔 | 联系 | 订阅 订阅 | 管理

07 2020 档案

 
旋转数组
摘要:给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。 示例 1: 输入: [1,2,3,4,5,6,7] 和 k = 3输出: [5,6,7,1,2,3,4]解释:向右旋转 1 步: [7,1,2,3,4,5,6]向右旋转 2 步: [6,7,1,2,3,4,5]向右旋转 3 步: 阅读全文
posted @ 2020-07-31 21:26 我想听陷阱 阅读(55) 评论(0) 推荐(0)
买卖股票的最佳时机 II
摘要:给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。 设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。 注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。 示例 1: 输入: [7,1,5,3,6,4]输出: 7解释: 在第 2 阅读全文
posted @ 2020-07-31 20:50 我想听陷阱 阅读(122) 评论(0) 推荐(0)
560. 和为K的子数组
摘要:给定一个整数数组和一个整数 k,你需要找到该数组中和为 k 的连续的子数组的个数。 示例 1 : 输入:nums = [1,1,1], k = 2输出: 2 , [1,1] 与 [1,1] 为两种不同的情况。 前缀和 + map class Solution { public int subarra 阅读全文
posted @ 2020-07-31 16:20 我想听陷阱 阅读(116) 评论(0) 推荐(0)
119. 杨辉三角 II
摘要:给定一个非负索引 k,其中 k ≤ 33,返回杨辉三角的第 k 行。 在杨辉三角中,每个数是它左上方和右上方的数的和。 示例: 输入: 3输出: [1,3,3,1] class Solution { public List<Integer> getRow(int rowIndex) { List<L 阅读全文
posted @ 2020-07-31 14:14 我想听陷阱 阅读(142) 评论(0) 推荐(0)
79. 单词搜索
摘要:给定一个二维网格和一个单词,找出该单词是否存在于网格中。 单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。 示例: board =[ ['A','B','C','E'], ['S','F','C','S'] 阅读全文
posted @ 2020-07-31 09:37 我想听陷阱 阅读(75) 评论(0) 推荐(0)
509. 斐波那契数
摘要:斐波那契数,通常用 F(n) 表示,形成的序列称为斐波那契数列。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是: F(0) = 0, F(1) = 1F(N) = F(N - 1) + F(N - 2), 其中 N > 1. 给定 N,计算 F(N)。 示例 1: 输入:2 阅读全文
posted @ 2020-07-31 08:35 我想听陷阱 阅读(73) 评论(0) 推荐(0)
面试题 08.03. 魔术索引
摘要:魔术索引。 在数组A[0...n-1]中,有所谓的魔术索引,满足条件A[i] = i。给定一个有序整数数组,编写一种方法找出魔术索引,若有的话,在数组A中找出一个魔术索引,如果没有,则返回-1。若有多个魔术索引,返回索引值最小的一个。 示例1: 输入:nums = [0, 2, 3, 4, 5] 输 阅读全文
posted @ 2020-07-31 08:27 我想听陷阱 阅读(78) 评论(0) 推荐(0)
238. 除自身以外数组的乘积
摘要:给你一个长度为 n 的整数数组 nums,其中 n > 1,返回输出数组 output ,其中 output[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积。 示例: 输入: [1,2,3,4]输出: [24,12,8,6] class Solution { public int[ 阅读全文
posted @ 2020-07-30 17:18 我想听陷阱 阅读(125) 评论(0) 推荐(0)
217. 存在重复元素
摘要:给定一个整数数组,判断是否存在重复元素。 如果任意一值在数组中出现至少两次,函数返回 true 。如果数组中每个元素都不相同,则返回 false 。 示例 1: 输入: [1,2,3,1]输出: true 示例 2: 输入: [1,2,3,4]输出: false 示例 3: 输入: [1,1,1,3 阅读全文
posted @ 2020-07-30 16:59 我想听陷阱 阅读(84) 评论(0) 推荐(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 class So 阅读全文
posted @ 2020-07-30 16:37 我想听陷阱 阅读(70) 评论(0) 推荐(0)
面试题 01.02. 判定是否互为字符重排
摘要:给定两个字符串 s1 和 s2,请编写一个程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串。 示例 1: 输入: s1 = "abc", s2 = "bca"输出: true 示例 2: 输入: s1 = "abc", s2 = "bad"输出: false class Solutio 阅读全文
posted @ 2020-07-30 09:24 我想听陷阱 阅读(105) 评论(0) 推荐(0)
209. 长度最小的子数组
摘要:给定一个含有 n 个正整数的数组和一个正整数 s ,找出该数组中满足其和 ≥ s 的长度最小的 连续 子数组,并返回其长度。如果不存在符合条件的子数组,返回 0。 示例: 输入:s = 7, nums = [2,3,1,2,4,3]输出:2解释:子数组 [4,3] 是该条件下的长度最小的子数组。 c 阅读全文
posted @ 2020-07-30 09:07 我想听陷阱 阅读(90) 评论(0) 推荐(0)
343. 整数拆分
摘要:给定一个正整数 n,将其拆分为至少两个正整数的和,并使这些整数的乘积最大化。 返回你可以获得的最大乘积。 示例 1: 输入: 2输出: 1解释: 2 = 1 + 1, 1 × 1 = 1。 示例 2: 输入: 10输出: 36解释: 10 = 3 + 3 + 4, 3 × 3 × 4 = 36。 c 阅读全文
posted @ 2020-07-30 08:30 我想听陷阱 阅读(107) 评论(0) 推荐(0)
287. 寻找重复数
摘要:给定一个包含 n + 1 个整数的数组 nums,其数字都在 1 到 n 之间(包括 1 和 n),可知至少存在一个重复的整数。假设只有一个重复的整数,找出这个重复的数。 示例 1: 输入: [1,3,4,2,2]输出: 2 示例 2: 输入: [3,1,3,4,2]输出: 3 说明: 不能更改原数 阅读全文
posted @ 2020-07-29 21:42 我想听陷阱 阅读(82) 评论(0) 推荐(0)
面试题 17.09. 第 k 个数
摘要:有些数的素因子只有 3,5,7,请设计一个算法找出第 k 个数。注意,不是必须有这些素因子,而是必须不包含其他的素因子。例如,前几个数按顺序应该是 1,3,5,7,9,15,21。 示例 1: 输入: k = 5 输出: 9 class Solution { public int getKthMag 阅读全文
posted @ 2020-07-29 21:19 我想听陷阱 阅读(1224) 评论(0) 推荐(0)
621. 任务调度器
摘要:给定一个用字符数组表示的 CPU 需要执行的任务列表。其中包含使用大写的 A - Z 字母表示的26 种不同种类的任务。任务可以以任意顺序执行,并且每个任务都可以在 1 个单位时间内执行完。CPU 在任何一个单位时间内都可以执行一个任务,或者在待命状态。 然而,两个相同种类的任务之间必须有长度为 n 阅读全文
posted @ 2020-07-29 09:17 我想听陷阱 阅读(72) 评论(0) 推荐(0)
933. 最近的请求次数
摘要:写一个 RecentCounter 类来计算最近的请求。 它只有一个方法:ping(int t),其中 t 代表以毫秒为单位的某个时间。 返回从 3000 毫秒前到现在的 ping 数。 任何处于 [t - 3000, t] 时间范围之内的 ping 都将会被计算在内,包括当前(指 t 时刻)的 p 阅读全文
posted @ 2020-07-29 08:53 我想听陷阱 阅读(95) 评论(0) 推荐(0)
剑指 Offer 59 - I. 滑动窗口的最大值
摘要:给定一个数组 nums 和滑动窗口的大小 k,请找出所有滑动窗口里的最大值。 示例: 输入: nums = [1,3,-1,-3,5,3,6,7], 和 k = 3输出: [3,3,5,5,6,7] 解释: 滑动窗口的位置 最大值 [1 3 -1] -3 5 3 6 7 3 1 [3 -1 -3] 阅读全文
posted @ 2020-07-29 08:42 我想听陷阱 阅读(81) 评论(0) 推荐(0)
1003. 检查替换后的词是否有效
摘要:给定有效字符串 "abc"。 对于任何有效的字符串 V,我们可以将 V 分成两个部分 X 和 Y,使得 X + Y(X 与 Y 连接)等于 V。(X 或 Y 可以为空。)那么,X + "abc" + Y 也同样是有效的。 例如,如果 S = "abc",则有效字符串的示例是:"abc","aabcb 阅读全文
posted @ 2020-07-28 21:17 我想听陷阱 阅读(123) 评论(0) 推荐(0)
1209. 删除字符串中的所有相邻重复项 II
摘要:给你一个字符串 s,「k 倍重复项删除操作」将会从 s 中选择 k 个相邻且相等的字母,并删除它们,使被删去的字符串的左侧和右侧连在一起。 你需要对 s 重复进行无限次这样的删除操作,直到无法继续为止。 在执行完所有删除操作后,返回最终得到的字符串。 本题答案保证唯一。 示例 1: 输入:s = " 阅读全文
posted @ 2020-07-28 09:24 我想听陷阱 阅读(154) 评论(0) 推荐(0)
1190. 反转每对括号间的子串
摘要:给出一个字符串 s(仅含有小写英文字母和括号)。 请你按照从括号内到外的顺序,逐层反转每对匹配括号中的字符串,并返回最终的结果。 注意,您的结果中 不应 包含任何括号。 示例 1: 输入:s = "(abcd)"输出:"dcba" 示例 2: 输入:s = "(u(love)i)"输出:"ilove 阅读全文
posted @ 2020-07-28 09:00 我想听陷阱 阅读(216) 评论(0) 推荐(0)
1019. 链表中的下一个更大节点
摘要:给出一个以头节点 head 作为第一个节点的链表。链表中的节点分别编号为:node_1, node_2, node_3, ... 。 每个节点都可能有下一个更大值(next larger value):对于 node_i,如果其 next_larger(node_i) 是 node_j.val,那么 阅读全文
posted @ 2020-07-28 08:37 我想听陷阱 阅读(179) 评论(0) 推荐(0)
1249. 移除无效的括号
摘要:给你一个由 '('、')' 和小写字母组成的字符串 s。 你需要从字符串中删除最少数目的 '(' 或者 ')' (可以删除任意位置的括号),使得剩下的「括号字符串」有效。 请返回任意一个合法字符串。 有效「括号字符串」应当符合以下 任意一条 要求: 空字符串或只包含小写字母的字符串 可以被写作 AB 阅读全文
posted @ 2020-07-27 22:54 我想听陷阱 阅读(182) 评论(0) 推荐(0)
1441. 用栈操作构建数组
摘要:给你一个目标数组 target 和一个整数 n。每次迭代,需要从 list = {1,2,3..., n} 中依序读取一个数字。 请使用下述操作来构建目标数组 target : Push:从 list 中读取一个新元素, 并将其推入数组中。 Pop:删除数组中的最后一个元素。 如果目标数组构建完成, 阅读全文
posted @ 2020-07-27 22:03 我想听陷阱 阅读(100) 评论(0) 推荐(0)
1047. 删除字符串中的所有相邻重复项
摘要:给出由小写字母组成的字符串 S,重复项删除操作会选择两个相邻且相同的字母,并删除它们。 在 S 上反复执行重复项删除操作,直到无法继续删除。 在完成所有重复项删除操作后返回最终的字符串。答案保证唯一。 示例: 输入:"abbaca"输出:"ca"解释:例如,在 "abbaca" 中,我们可以删除 " 阅读全文
posted @ 2020-07-27 21:39 我想听陷阱 阅读(122) 评论(0) 推荐(0)
剑指 Offer 30. 包含min函数的栈
摘要:定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 min、push 及 pop 的时间复杂度都是 O(1)。 示例: MinStack minStack = new MinStack(); minStack.push(-2); minStack.push(0) 阅读全文
posted @ 2020-07-27 16:54 我想听陷阱 阅读(94) 评论(0) 推荐(0)
1021. 删除最外层的括号
摘要:有效括号字符串为空 ("")、"(" + A + ")" 或 A + B,其中 A 和 B 都是有效的括号字符串,+ 代表字符串的连接。例如,"","()","(())()" 和 "(()(()))" 都是有效的括号字符串。 如果有效字符串 S 非空,且不存在将其拆分为 S = A+B 的方法,我们 阅读全文
posted @ 2020-07-27 16:30 我想听陷阱 阅读(90) 评论(0) 推荐(0)
剑指 Offer 09. 用两个栈实现队列
摘要:用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 ) 示例 1: 输入: ["CQueue","appendTail","dele 阅读全文
posted @ 2020-07-27 13:33 我想听陷阱 阅读(84) 评论(0) 推荐(0)
946. 验证栈序列
摘要:给定 pushed 和 popped 两个序列,每个序列中的 值都不重复,只有当它们可能是在最初空栈上进行的推入 push 和弹出 pop 操作序列的结果时,返回 true;否则,返回 false 。 示例 1: 输入:pushed = [1,2,3,4,5], popped = [4,5,3,2, 阅读全文
posted @ 2020-07-27 09:57 我想听陷阱 阅读(159) 评论(0) 推荐(0)
921. 使括号有效的最少添加
摘要:给定一个由 '(' 和 ')' 括号组成的字符串 S,我们需要添加最少的括号( '(' 或是 ')',可以在任何位置),以使得到的括号字符串有效。 从形式上讲,只有满足下面几点之一,括号字符串才是有效的: 它是一个空字符串,或者 它可以被写成 AB (A 与 B 连接), 其中 A 和 B 都是有效 阅读全文
posted @ 2020-07-27 09:46 我想听陷阱 阅读(135) 评论(0) 推荐(0)
392. 判断子序列
摘要:给定字符串 s 和 t ,判断 s 是否为 t 的子序列。 你可以认为 s 和 t 中仅包含英文小写字母。字符串 t 可能会很长(长度 ~= 500,000),而 s 是个短字符串(长度 <=100)。 字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串 阅读全文
posted @ 2020-07-27 09:07 我想听陷阱 阅读(110) 评论(0) 推荐(0)
901. 股票价格跨度
摘要:编写一个 StockSpanner 类,它收集某些股票的每日报价,并返回该股票当日价格的跨度。 今天股票价格的跨度被定义为股票价格小于或等于今天价格的最大连续日数(从今天开始往回数,包括今天)。 例如,如果未来7天股票的价格是 [100, 80, 60, 70, 60, 75, 85],那么股票跨度 阅读全文
posted @ 2020-07-27 08:55 我想听陷阱 阅读(335) 评论(0) 推荐(0)
880. 索引处的解码字符串
摘要:给定一个编码字符串 S。请你找出 解码字符串 并将其写入磁带。解码时,从编码字符串中 每次读取一个字符 ,并采取以下步骤: 如果所读的字符是字母,则将该字母写在磁带上。 如果所读的字符是数字(例如 d),则整个当前磁带总共会被重复写 d-1 次。 现在,对于给定的编码字符串 S 和索引 K,查找并返 阅读全文
posted @ 2020-07-26 23:14 我想听陷阱 阅读(130) 评论(0) 推荐(0)
856. 括号的分数
摘要:给定一个平衡括号字符串 S,按下述规则计算该字符串的分数: () 得 1 分。 AB 得 A + B 分,其中 A 和 B 是平衡括号字符串。 (A) 得 2 * A 分,其中 A 是平衡括号字符串。 示例 1: 输入: "()" 输出: 1 示例 2: 输入: "(())" 输出: 2 示例 3: 阅读全文
posted @ 2020-07-26 22:37 我想听陷阱 阅读(94) 评论(0) 推荐(0)
5473. 灯泡开关 IV
摘要:房间中有 n 个灯泡,编号从 0 到 n-1 ,自左向右排成一行。最开始的时候,所有的灯泡都是 关 着的。 请你设法使得灯泡的开关状态和 target 描述的状态一致,其中 target[i] 等于 1 第 i 个灯泡是开着的,等于 0 意味着第 i 个灯是关着的。 有一个开关可以用于翻转灯泡的状态 阅读全文
posted @ 2020-07-26 15:15 我想听陷阱 阅读(115) 评论(0) 推荐(0)
844. 比较含退格的字符串
摘要:给定 S 和 T 两个字符串,当它们分别被输入到空白的文本编辑器后,判断二者是否相等,并返回结果。 # 代表退格字符。 注意:如果对空文本输入退格字符,文本继续为空。 示例 1: 输入:S = "ab#c", T = "ad#c" 输出:true 解释:S 和 T 都会变成 “ac”。 示例 2: 阅读全文
posted @ 2020-07-26 08:42 我想听陷阱 阅读(80) 评论(0) 推荐(0)
176. 第二高的薪水
摘要:sql Create table If Not Exists Employee (Id int, Salary int) Truncate table Employee insert into Employee (Id, Salary) values ('1', '100') insert into 阅读全文
posted @ 2020-07-26 08:23 我想听陷阱 阅读(76) 评论(0) 推荐(0)
329. 矩阵中的最长递增路径
摘要:给定一个整数矩阵,找出最长递增路径的长度。 对于每个单元格,你可以往上,下,左,右四个方向移动。 你不能在对角线方向上移动或移动到边界外(即不允许环绕)。 示例 1: 输入: nums = [ [9,9,4], [6,6,8], [2,1,1] ] 输出: 4 解释: 最长递增路径为 [1, 2, 阅读全文
posted @ 2020-07-26 08:05 我想听陷阱 阅读(155) 评论(0) 推荐(0)
739. 每日温度
摘要:请根据每日 气温 列表,重新生成一个列表。对应位置的输出为:要想观测到更高的气温,至少需要等待的天数。如果气温在这之后都不会升高,请在该位置用 0 来代替。 例如,给定一个列表 temperatures = [73, 74, 75, 71, 69, 72, 76, 73],你的输出应该是 [1, 1 阅读全文
posted @ 2020-07-25 23:42 我想听陷阱 阅读(99) 评论(0) 推荐(0)
735. 行星碰撞
摘要:给定一个整数数组 asteroids,表示在同一行的行星。 对于数组中的每一个元素,其绝对值表示行星的大小,正负表示行星的移动方向(正表示向右移动,负表示向左移动)。每一颗行星以相同的速度移动。 找出碰撞后剩下的所有行星。碰撞规则:两个行星相互碰撞,较小的行星会爆炸。如果两颗行星大小相同,则两颗行星 阅读全文
posted @ 2020-07-25 08:21 我想听陷阱 阅读(146) 评论(0) 推荐(0)
682. 棒球比赛
摘要:你现在是棒球比赛记录员。给定一个字符串列表,每个字符串可以是以下四种类型之一:1.整数(一轮的得分):直接表示您在本轮中获得的积分数。2. "+"(一轮的得分):表示本轮获得的得分是前两轮有效 回合得分的总和。3. "D"(一轮的得分):表示本轮获得的得分是前一轮有效 回合得分的两倍。4. "C"( 阅读全文
posted @ 2020-07-25 07:37 我想听陷阱 阅读(70) 评论(0) 推荐(0)
636. 函数的独占时间
摘要:给出一个非抢占单线程CPU的 n 个函数运行日志,找到函数的独占时间。 每个函数都有一个唯一的 Id,从 0 到 n-1,函数可能会递归调用或者被其他函数调用。 日志是具有以下格式的字符串:function_id:start_or_end:timestamp。例如:"0:start:0" 表示函数 阅读全文
posted @ 2020-07-24 22:00 我想听陷阱 阅读(243) 评论(0) 推荐(0)
503. 下一个更大元素 II
摘要:给定一个循环数组(最后一个元素的下一个元素是数组的第一个元素),输出每个元素的下一个更大元素。数字 x 的下一个更大的元素是按数组遍历顺序,这个数字之后的第一个比它更大的数,这意味着你应该循环地搜索它的下一个更大的数。如果不存在,则输出 -1。 示例 1: 输入: [1,2,1] 输出: [2,-1 阅读全文
posted @ 2020-07-24 09:44 我想听陷阱 阅读(63) 评论(0) 推荐(0)
496. 下一个更大元素 I
摘要:给定两个 没有重复元素 的数组 nums1 和 nums2 ,其中nums1 是 nums2 的子集。找到 nums1 中每个元素在 nums2 中的下一个比其大的值。 nums1 中数字 x 的下一个更大元素是指 x 在 nums2 中对应位置的右边的第一个比 x 大的元素。如果不存在,对应位置输 阅读全文
posted @ 2020-07-24 09:05 我想听陷阱 阅读(96) 评论(0) 推荐(0)
1025. 除数博弈
摘要:爱丽丝和鲍勃一起玩游戏,他们轮流行动。爱丽丝先手开局。 最初,黑板上有一个数字 N 。在每个玩家的回合,玩家需要执行以下操作: 选出任一 x,满足 0 < x < N 且 N % x == 0 。 用 N - x 替换黑板上的数字 N 。 如果玩家无法执行这些操作,就会输掉游戏。 只有在爱丽丝在游戏 阅读全文
posted @ 2020-07-24 08:29 我想听陷阱 阅读(99) 评论(0) 推荐(0)
456. 132模式
摘要:给定一个整数序列:a1, a2, ..., an,一个132模式的子序列 ai, aj, ak 被定义为:当 i < j < k 时,ai < ak < aj。设计一个算法,当给定有 n 个数字的序列时,验证这个序列中是否含有132模式的子序列。 注意:n 的值小于15000。 示例1: 输入: [ 阅读全文
posted @ 2020-07-23 22:53 我想听陷阱 阅读(74) 评论(0) 推荐(0)
402. 移掉K位数字
摘要:给定一个以字符串表示的非负整数 num,移除这个数中的 k 位数字,使得剩下的数字最小。 注意: num 的长度小于 10002 且 ≥ k。 num 不会包含任何前导零。 示例 1 : 输入: num = "1432219", k = 3 输出: "1219" 解释: 移除掉三个数字 4, 3, 阅读全文
posted @ 2020-07-23 15:19 我想听陷阱 阅读(131) 评论(0) 推荐(0)
341. 扁平化嵌套列表迭代器
摘要:给你一个嵌套的整型列表。请你设计一个迭代器,使其能够遍历这个整型列表中的所有整数。 列表中的每一项或者为一个整数,或者是另一个列表。其中列表的元素也可能是整数或是其他列表。 示例 1: 输入: [[1,1],2,[1,1]] 输出: [1,1,2,1,1] 解释: 通过重复调用 next 直到 ha 阅读全文
posted @ 2020-07-23 13:48 我想听陷阱 阅读(120) 评论(0) 推荐(0)
331. 验证二叉树的前序序列化
摘要:序列化二叉树的一种方法是使用前序遍历。当我们遇到一个非空节点时,我们可以记录下这个节点的值。如果它是一个空节点,我们可以使用一个标记值记录,例如 #。 _9_ / \ 3 2 / \ / \ 4 1 # 6 / \ / \ / \ # # # # # # 例如,上面的二叉树可以被序列化为字符串 "9 阅读全文
posted @ 2020-07-23 08:55 我想听陷阱 阅读(113) 评论(0) 推荐(0)
232. 用栈实现队列
摘要:使用栈实现队列的下列操作: push(x) -- 将一个元素放入队列的尾部。 pop() -- 从队列首部移除元素。 peek() -- 返回队列首部的元素。 empty() -- 返回队列是否为空。 示例: MyQueue queue = new MyQueue(); queue.push(1); 阅读全文
posted @ 2020-07-23 07:27 我想听陷阱 阅读(131) 评论(0) 推荐(0)
64. 最小路径和
摘要:给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。 说明:每次只能向下或者向右移动一步。 示例: 输入: [ [1,3,1], [1,5,1], [4,2,1] ] 输出: 7 解释: 因为路径 1→3→1→1→1 的总和最小。 解题思路: 每次 阅读全文
posted @ 2020-07-23 06:34 我想听陷阱 阅读(127) 评论(0) 推荐(0)
225. 用队列实现栈
摘要:使用队列实现栈的下列操作: push(x) -- 元素 x 入栈 pop() -- 移除栈顶元素 top() -- 获取栈顶元素 empty() -- 返回栈是否为空 注意: 你只能使用队列的基本操作-- 也就是 push to back, peek/pop from front, size, 和 阅读全文
posted @ 2020-07-22 22:18 我想听陷阱 阅读(106) 评论(0) 推荐(0)
175. 组合两个表
摘要:表1: Person + + + | 列名 | 类型 | + + + | PersonId | int | | FirstName | varchar | | LastName | varchar | + + + PersonId 是上表主键 表2: Address + + +| 列名 | 类型 | 阅读全文
posted @ 2020-07-22 16:20 我想听陷阱 阅读(121) 评论(0) 推荐(0)
173. 二叉搜索树迭代器
摘要:实现一个二叉搜索树迭代器。你将使用二叉搜索树的根节点初始化迭代器。 调用 next() 将返回二叉搜索树中的下一个最小的数。 示例: BSTIterator iterator = new BSTIterator(root); iterator.next(); // 返回 3 iterator.nex 阅读全文
posted @ 2020-07-22 15:05 我想听陷阱 阅读(114) 评论(0) 推荐(0)
155. 最小栈
摘要:设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。 push(x) —— 将元素 x 推入栈中。 pop() —— 删除栈顶的元素。 top() —— 获取栈顶元素。 getMin() —— 检索栈中的最小元素。 示例: 输入: ["MinStack","push 阅读全文
posted @ 2020-07-22 14:19 我想听陷阱 阅读(68) 评论(0) 推荐(0)
150. 逆波兰表达式求值
摘要:根据 逆波兰表示法,求表达式的值。 有效的运算符包括 +, -, *, / 。每个运算对象可以是整数,也可以是另一个逆波兰表达式。 说明: 整数除法只保留整数部分。 给定逆波兰表达式总是有效的。换句话说,表达式总会得出有效数值且不存在除数为 0 的情况。 示例 1: 输入: ["2", "1", " 阅读全文
posted @ 2020-07-22 09:30 我想听陷阱 阅读(148) 评论(1) 推荐(0)
剑指 Offer 11. 旋转数组的最小数字
摘要:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如,数组 [3,4,5,1,2] 为 [1,2,3,4,5] 的一个旋转,该数组的最小值为1。 示例 1: 输入:[3,4,5,1,2] 输出:1 示例 2: 输入:[2,2 阅读全文
posted @ 2020-07-22 08:53 我想听陷阱 阅读(94) 评论(0) 推荐(0)
103. 二叉树的锯齿形层次遍历(BFS)
摘要:给定一个二叉树,返回其节点值的锯齿形层次遍历。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。 例如:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回锯齿形层次遍历如下: [ [3], [20,9], [15,7] 阅读全文
posted @ 2020-07-21 23:31 我想听陷阱 阅读(100) 评论(0) 推荐(0)