摘要: 实现一个二叉搜索树迭代器。你将使用二叉搜索树的根节点初始化迭代器。 调用 next() 将返回二叉搜索树中的下一个最小的数。   示例: BSTIterator iterator = new BSTIterator(root); iterator.next(); // 返回 3 itera 阅读全文
posted @ 2021-01-06 18:39 付旭洋 阅读(74) 评论(0) 推荐(0) 编辑
摘要: 给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。 你可以假设数组是非空的,并且给定的数组总是存在多数元素。   示例 1: 输入: [3,2,3] 输出: 3 示例  阅读全文
posted @ 2021-01-06 18:38 付旭洋 阅读(29) 评论(0) 推荐(0) 编辑
摘要: 给你一个 m x n 的整数网格 accounts ,其中 accounts[i][j] 是第 i​​​​​​​​​​​​ 位客户在第 j 家银行托管的资产数量。返回最富有客户所拥有的 资产总量 。 客户的 资产总量 就是他们在各家银行托管的资产数量之和。最富有客户就是 资产总量 最大的客户。 示例 阅读全文
posted @ 2021-01-06 18:37 付旭洋 阅读(125) 评论(0) 推荐(0) 编辑
摘要: 给定一个已按照升序排列 的有序数组,找到两个数使得它们相加之和等于目标数。 函数应该返回这两个下标值 index1 和 index2,其中 index1 必须小于 index2。 说明: 返回的下标值(index1 和 index2)不是从零开始的。 你可以假设每个输入 阅读全文
posted @ 2021-01-06 18:36 付旭洋 阅读(66) 评论(0) 推荐(0) 编辑
摘要: 给定一个无序的数组,找出数组在排序之后,相邻元素之间最大的差值。 如果数组元素个数小于 2,则返回 0。 示例 1: 输入: [3,6,9,1] 输出: 3 解释: 排序后的数组是 [1,3,6,9], 其中相邻元素 (3,6) 和 (6,9) 之间都存在最大差值 3。 示例 2 阅读全文
posted @ 2021-01-06 18:35 付旭洋 阅读(55) 评论(0) 推荐(0) 编辑
摘要: 设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。 push(x) —— 将元素 x 推入栈中。 pop() —— 删除栈顶的元素。 top() —— 获取栈顶元素。 ge 阅读全文
posted @ 2021-01-06 18:34 付旭洋 阅读(61) 评论(0) 推荐(0) 编辑
摘要: 给你一个整数数组 nums ,请你找出数组中乘积最大的连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。   示例 1: 输入: [2,3, 2,4] 输出: 6 解释: 子数组 [2,3] 有最大乘积 6。 示例 2: 输入: [ 2,0, 1] 阅读全文
posted @ 2021-01-06 18:33 付旭洋 阅读(43) 评论(0) 推荐(0) 编辑
摘要: 运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制 。 实现 LRUCache 类: LRUCache(int capacity) 以正整数作为容量 capacity 初始化 LRU 缓存 int get(int key) 如果关键字 key 存在于缓存中,则返回关键字的值, 阅读全文
posted @ 2021-01-06 18:32 付旭洋 阅读(66) 评论(0) 推荐(0) 编辑
摘要: 给定一个二叉树,返回它的 后序 遍历。 示例: 输入: [1,null,2,3] 1 \ 2 / 3 输出: [3,2,1] 进阶: 递归算法很简单,你可以通过迭代算法完成吗? C 代码 阅读全文
posted @ 2021-01-06 18:31 付旭洋 阅读(27) 评论(0) 推荐(0) 编辑
摘要: 给你二叉树的根节点 root ,返回它节点值的 前序 遍历。 示例 1: 输入:root = [1,null,2,3] 输出:[1,2,3] 示例 2: 输入:root = [] 输出:[] 示例 3: 输入:root = [1] 输出:[1] 示例 4: 输入:root = [1,2] 输出:[1 阅读全文
posted @ 2021-01-06 18:30 付旭洋 阅读(47) 评论(0) 推荐(0) 编辑
摘要: 给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 1,则在该链表中没有环。注意,pos 仅仅是用于标识环的情况,并不会作为参数传递到函数中。 说明:不允 阅读全文
posted @ 2021-01-06 18:29 付旭洋 阅读(74) 评论(0) 推荐(0) 编辑
摘要: 给定一个链表,判断链表中是否有环。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 1,则在该链表中没有环。注意:pos 不作为参数进行传递,仅仅是 阅读全文
posted @ 2021-01-06 18:28 付旭洋 阅读(64) 评论(0) 推荐(0) 编辑
摘要: 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 ""。 示例 1: 输入: ["flower","flow","flight"] 输出: "fl" 阅读全文
posted @ 2021-01-06 18:27 付旭洋 阅读(56) 评论(0) 推荐(0) 编辑
摘要: 给定一个链表,每个节点包含一个额外增加的随机指针,该指针可以指向链表中的任何节点或空节点。 要求返回这个链表的 深拷贝。  我们用一个由 n 个节点组成的链表来表示输入/输出中的链表。每个节点用一个 [val, random_index]  阅读全文
posted @ 2021-01-06 18:26 付旭洋 阅读(73) 评论(0) 推荐(0) 编辑
摘要: 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 说明: 你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗? 示例 1: 输入: [2,2,1] 输出: 1 示例 2: 输入: [4,1,2,1,2] 输出: 4 C 代码 阅读全文
posted @ 2021-01-06 18:25 付旭洋 阅读(54) 评论(0) 推荐(0) 编辑
摘要: 给定一个二叉树,它的每个结点都存放一个 0 9 的数字,每条从根到叶子节点的路径都代表一个数字。 例如,从根到叶子节点路径 1 >2 >3 代表数字 123。 计算从根到叶子节点生成的所有数字之和。 说明: 叶子节点是指没有子节点的节点。 示例 1: 输入: 阅读全文
posted @ 2021-01-06 18:24 付旭洋 阅读(86) 评论(0) 推荐(0) 编辑
摘要: 给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。 说明:本题中,我们将空字符串定义为有效的回文串。 示例 1: 输入: "A man, a plan, a canal: Panama" 输出: true 示例 2: 输入: "race a 阅读全文
posted @ 2021-01-06 18:23 付旭洋 阅读(45) 评论(0) 推荐(0) 编辑
摘要: 给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。 如果你最多只允许完成一笔交易(即买入和卖出一支股票一次),设计一个算法来计算你所能获取的最大利润。 注意:你不能在买入股票前卖出股票。   示例 1: 输入: [7,1,5,3,6,4] 输出: 5 解释: 在第 阅读全文
posted @ 2021-01-06 18:22 付旭洋 阅读(64) 评论(0) 推荐(0) 编辑
摘要: 给你一个整数数组 arr,请你帮忙统计数组中每个数的出现次数。 如果每个数的出现次数都是独一无二的,就返回 true;否则返回 false。   示例 1: 输入:arr = [1,2,2,1,1,3] 输出:true 解释:在该数组中,1 出现了 3 次,2 出现了 阅读全文
posted @ 2021-01-06 18:21 付旭洋 阅读(70) 评论(0) 推荐(0) 编辑
摘要: 给出一个字符串 s(仅含有小写英文字母和括号)。 请你按照从括号内到外的顺序,逐层反转每对匹配括号中的字符串,并返回最终的结果。 注意,您的结果中 不应 包含任何括号。   示例 1: 输入:s = "(abcd)" 输出:"dcba" 示 阅读全文
posted @ 2021-01-06 18:20 付旭洋 阅读(85) 评论(0) 推荐(0) 编辑