文章分类 - 剑指Offer
摘要:乘积最大子数组 题目描述 给你一个整数数组 nums ,请你找出数组中乘积最大的非空连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。 测试用例的答案是一个 32-位 整数。 子数组 是数组的连续子序列 示例1: 输入: nums = [2,3,-2,4] 输出: 6 解释: 子
阅读全文
摘要:验证回文串 题目描述 给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。 本题中,我们将空字符串定义为有效的回文串。 示例1: 输入: "A man, a plan, a canal: Panama" 输出: true 解释:"amanaplanacanalpanama
阅读全文
摘要:240. 搜索二维矩阵 II 题目描述 编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性: 每行的元素从左到右升序排列。 每列的元素从上到下升序排列。 示例1: 输入:matrix = [[1,4,7,11,15],[2,5,8,12,19
阅读全文
摘要:多数元素 题目描述 给定一个大小为 n 的数组 nums ,返回其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。 你可以假设数组是非空的,并且给定的数组总是存在多数元素。 示例1: 输入:nums = [3,2,3] 输出:3 示例2: 输入:nums = [2,2,1,
阅读全文
摘要:只出现一次的数字 题目描述 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 示例1: 输入: 输入: [2,2,1] 输出: 1 示例2: 输入: 输入: [4,1,2,1,2] 输出: 4 说明 你的算法应该具有线性时间复杂度。 你可以不使用
阅读全文
摘要:30 包含min函数的栈 题目描述 定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 min、push 及 pop 的时间复杂度都是 O(1) 示例: 输入: MinStack minStack = new MinStack(); minStack.push(
阅读全文
摘要:09 用两个栈实现队列 题目描述 用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 ) 示例1: 输入: ["CQueue","a
阅读全文