查找与排序
FiveWords
努力变强!
展开
-
leetcode34-在排序数组中查找元素的第一个和最后一个位置
题目描述 给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。 你的算法时间复杂度必须是 O(log n) 级别。 如果数组中不存在目标值,返回 [-1, -1]。 题目代码 public int[] searchRange(int [] array , int k) { int start = 0; i...原创 2020-03-31 17:32:49 · 123 阅读 · 0 评论 -
剑指offer 数字在排序数组中出现的次数
题目描述 统计一个数字在排序数组中出现的次数。 题目分析 使用两次折半查找,第一次找第一个k,第二次找最后一个k Java代码 public int GetNumberOfK(int [] array , int k) { int start = 0; int end = array.length - 1; int first = GetFirstK...原创 2020-02-07 22:11:26 · 52 阅读 · 0 评论 -
剑指offer 二维数组中的查找
题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 题目分析 分析1 看到这个题目,我们首先的反应是折半查找,因为这是一个有序数组,那么可以在每一个分量上面进行折半查找,那么这样的时间复杂度为O(nlogn). 分析2 在上面的分析上面,显然...原创 2020-02-01 14:51:50 · 110 阅读 · 0 评论 -
剑指offer旋转数组的最小数字
题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。 题目分析 分析1 首先我们可以很简单的想到,遍历一遍,O(n)的时间复杂度,但是显然,这应该是不是这道题目想...原创 2020-02-01 14:49:59 · 71 阅读 · 1 评论