上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 21 下一页
摘要: 剑指 Offer 30. 包含min函数的栈 知识点:栈;单调 题目描述 定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 min、push 及 pop 的时间复杂度都是 O(1)。。 示例 MinStack minStack = new MinStack() 阅读全文
posted @ 2021-08-11 22:26 Curryxin 阅读(32) 评论(0) 推荐(0) 编辑
摘要: 剑指 Offer 59 - II. 队列的最大值 知识点:队列;单调 题目描述 请定义一个队列并实现函数 max_value 得到队列里的最大值,要求函数max_value、push_back 和 pop_front 的均摊时间复杂度都是O(1)。 若队列为空,pop_front 和 max_val 阅读全文
posted @ 2021-08-11 21:58 Curryxin 阅读(50) 评论(0) 推荐(0) 编辑
摘要: 53. 最大子序和(剑指 Offer 42) 知识点:数组;前缀和;哨兵;动态规划;贪心;分治; 题目描述 输入一个整型数组,数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。 要求时间复杂度为O(n)。 示例 输入: nums = [-2,1,-3,4,-1,2,1,-5,4] 阅读全文
posted @ 2021-08-11 19:16 Curryxin 阅读(340) 评论(0) 推荐(0) 编辑
摘要: 【二分查找】35. 搜索插入位置 知识点:数组,二分查找; 题目描述 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 示例 输入: nums = [1,3,5,6], tar 阅读全文
posted @ 2021-08-05 14:08 Curryxin 阅读(336) 评论(0) 推荐(1) 编辑
摘要: 二分查找 1.概念 如果想要在数组中查找一个数,最基本的方法就是暴力解法:一次遍历,这时候时间复杂度是O(N),二分查找就是其中的一种优化,时间复杂度是O(logN);具体做法是一步一步逼近直到找到。前提是数组需要是一个排序数组。 定义:二分查找也称折半查找(Binary Search),是一种在有 阅读全文
posted @ 2021-08-05 14:03 Curryxin 阅读(1237) 评论(0) 推荐(1) 编辑
摘要: 剑指 Offer 53 - II. 0~n-1中缺失的数字 知识点:数组,二分查找; 题目描述 一个长度为n-1的递增排序数组中的所有数字都是唯一的,并且每个数字都在范围0~n-1之内。在范围0~n-1内的n个数字中有且只有一个数字不在该数组中,请找出这个数字。 示例 输入: [0,1,3] 输出: 阅读全文
posted @ 2021-08-05 10:37 Curryxin 阅读(82) 评论(0) 推荐(0) 编辑
摘要: 剑指 Offer 53 - I. 在排序数组中查找数字 I 知识点:数组,二分查找; 题目描述 统计一个数字在排序数组中出现的次数。 示例 输入: nums = [5,7,7,8,8,10], target = 8 输出: 2 输入: nums = [5,7,7,8,8,10], target = 阅读全文
posted @ 2021-08-05 10:26 Curryxin 阅读(98) 评论(0) 推荐(0) 编辑
摘要: 74. 搜索二维矩阵 知识点:数组,二分查找; 题目描述 编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值。该矩阵具有如下特性: 每行中的整数从左到右按升序排列。 每行的第一个整数大于前一行的最后一个整数。 示例 link 输入:matrix = [[1,3,5,7],[10,11, 阅读全文
posted @ 2021-08-05 10:08 Curryxin 阅读(152) 评论(0) 推荐(0) 编辑
摘要: 153. 寻找旋转排序数组中的最小值 知识点:数组,二分查找; 题目描述 已知一个长度为 n 的数组,预先按照升序排列,经由 1 到 n 次 旋转 后,得到输入数组。例如,原数组 nums = [0,1,2,4,5,6,7] 在变化后可能得到: 若旋转 4 次,则可以得到 [4,5,6,7,0,1, 阅读全文
posted @ 2021-08-05 09:59 Curryxin 阅读(109) 评论(0) 推荐(0) 编辑
摘要: 81. 搜索旋转排序数组 II 知识点:数组,二分查找; 题目描述 已知存在一个按非降序排列的整数数组 nums ,数组中的值不必互不相同。 在传递给函数之前,nums 在预先未知的某个下标 k(0 ⇐ k < nums.length)上进行了 旋转 ,使数组变为 [nums[k], nums[k+ 阅读全文
posted @ 2021-08-05 09:29 Curryxin 阅读(77) 评论(0) 推荐(0) 编辑
上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 21 下一页
Live2D