摘要: 题目:给定一个包含 n 个整数的排序数组,找出给定目标值 target 的起始和结束位置。 如果目标值不在数组中,则返回[-1, -1] 思路:如果中点等于target就要将数组分为两部分来查找即:0-mid和mid-end,中点的左右部分分别来找第一个和最后一个target值;左边,只考虑mid值 阅读全文
posted @ 2017-07-09 17:04 JunLiu37 阅读(272) 评论(0) 推荐(0) 编辑
摘要: 题目: 写出一个高效的算法来搜索 m × n矩阵中的值。 这个矩阵具有以下特性: 1 每行中的整数从左到右是排序的。 2 每行的第一个数大于上一行的最后一个整数。 考虑下列矩阵: 给出 target = 3,返回 true 解题思路: 首先在第一列上面找到target值所在的行号,可以先找到第一个大 阅读全文
posted @ 2017-07-08 17:28 JunLiu37 阅读(186) 评论(0) 推荐(0) 编辑
摘要: 题目:一个二维数组里面是由1和0构成的,里面所有的1都是相互关联的,有且只有一块由连续1构成的区域,请找出来最小能包括所有1的矩形, 前提:给出一个任意二维数组以及其中的一个1的元素的x和y坐标。 0,1,1,0 例如:int [2][3]a={{0,0,1,0}, 1 这一行含有1,映射到行边上为 阅读全文
posted @ 2017-07-08 11:32 JunLiu37 阅读(308) 评论(0) 推荐(0) 编辑
摘要: 题目:假设一个旋转排序的数组其起始位置是未知的(比如0 1 2 4 5 6 7 可能变成是4 5 6 7 0 1 2)。 你需要找到其中最小的元素。 你可以假设数组中不存在重复的元素。 思路:首先排除三种极端情况,空,只有一个元素,以及整个数组都是顺序排列的。 当顺序的数组随机旋转排列后,就分为两个 阅读全文
posted @ 2017-07-06 22:17 JunLiu37 阅读(134) 评论(0) 推荐(0) 编辑
摘要: 第一个出错的版本号 代码库的版本号是从 1 到 n 的整数。某一天,有人提交了错误版本的代码,因此造成自身及之后版本的代码在单元测试中均出错。请找出第一个错误的版本号。 你可以通过 isBadVersion 的接口来判断版本号 version 是否在单元测试中出错,具体接口详情和调用方法请见代码的注 阅读全文
posted @ 2017-07-06 15:43 JunLiu37 阅读(196) 评论(0) 推荐(0) 编辑
摘要: 用二分法查找顺序数组中key值出现的最后一个位置 基本思路,将顺序数组两边掐,最后掐到只剩下两个元素,前面的那一个就是target值。如果key值等于中间值的话就掐掉中间值的左边一部分,继续往后对比中间值,如果下雨则中间值右边部分...,这样最后会只剩下两个相邻的元素,左边的那个既是。 二分法模板: 阅读全文
posted @ 2017-07-06 11:15 JunLiu37 阅读(371) 评论(0) 推荐(0) 编辑
摘要: 这是我的第一个算法题目,希望通过此方法来要求自己努力进步。 题目 :二分法的实现 前提条件:带操作的数组为一个有序的数组。 基本思想:假设数据是按升序排序的,对于给定值key,从序列的中间位置midlle开始比较, 如果当前位置array[midlle]值等于key,则查找成功; 若key小于当前位 阅读全文
posted @ 2017-07-05 20:55 JunLiu37 阅读(419) 评论(0) 推荐(0) 编辑