LintCode-剑指Offer-(28)寻找旋转排序数组中的最小值

原创 2015年11月21日 01:24:18
class Solution {
public:
/**
* @param matrix, a list of lists of integers
* @param target, an integer
* @return a boolean, indicate whether matrix contains target
*/
bool searchMatrix(vector<vector<int>> &matrix, int target) {
    if ( matrix.size() == 0 )return false;
    int tmp = matrix.size()*( matrix[0] ).size();
    int i = 0;
    int j = tmp - 1;
    int mid = j / 2;
    if ( matrix.size() != 0 && ( matrix[0] ).size() == 0 )return false;
    int currentpoint = matrix[mid / ( matrix[0].size() )][mid % ( matrix[0] ).size()];
    while ( i <= j ){
        if ( currentpoint<target ){
            i = mid + 1;
            mid = ( i + j ) / 2;
            currentpoint = matrix[mid / ( matrix[0].size() )][mid % ( matrix[0] ).size()];
        }
        else if ( currentpoint>target ){
            j = mid - 1;
            mid = ( i + j ) / 2;
            currentpoint = matrix[mid / ( matrix[0].size() )][mid % ( matrix[0] ).size()];
        }
        else return true;
    }
    return false;
    }
};
版权声明:本文为博主原创文章,未经博主允许不得转载。

剑指offer----旋转数组的最小数字----java实现

把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该...
  • snow_7
  • snow_7
  • 2016年07月14日 15:34
  • 1496

剑指Offer面试题8(java版):旋转数组的最小数字

题目: 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为旋转。 输入一个递增的排序的数组的一个旋转,输出旋转数组的最小元素。  例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转...
  • jsqfengbao
  • jsqfengbao
  • 2015年07月28日 17:26
  • 1925

剑指Offer面试题33(java版):把数组排成最小的数

题目:输入一个正整数数组,把数组里面所有的数字拼接排成一个数,打印能拼接出的所有数字中的一个。例如输入数组{3,32,321},则打印出这3个数字能排成的最小数字321323. 这个题目最直接的做法...
  • jsqfengbao
  • jsqfengbao
  • 2015年08月09日 11:12
  • 2902

lintcode寻找旋转排序数组中的最小值/循环有序数组的查找

问题描述循环有序数组假设一个旋转排序的数组其起始位置是未知的(比如0 1 2 4 5 6 7 可能变成是4 5 6 7 0 1 2)。你需要找到其中最小的元素。你可以假设数组中不存在重复的元素。笔记还...
  • waltonhuang
  • waltonhuang
  • 2016年09月25日 17:33
  • 650

LintCode-寻找旋转排序数组中的最小值

问题:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转,输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素,例如数组{3,4,5,1,2}为数组{1,2,3,4,5}的一个旋转,...
  • u011822516
  • u011822516
  • 2015年11月16日 11:44
  • 776

LintCode 寻找旋转排序数组中的最小值

1 . 寻找旋转排序数组中的最小值假设一个旋转排序的数组其起始位置是未知的(比如0 1 2 4 5 6 7 可能变成是4 5 6 7 0 1 2)。 你需要找到其中最小的元素。 你可以假设数组中不...
  • shinanhualiu
  • shinanhualiu
  • 2015年10月07日 17:56
  • 407

剑指offer--快速排序递归实现,年龄排序O(N)实现,旋转数组最小值查找

快速排序算法的递归实现: void swap(int *a,int *b) { int c; c=*a; *a=*b; *b=c; } int Partition(i...
  • U201017971
  • U201017971
  • 2016年06月15日 21:30
  • 317

剑指offer - 面试题8:旋转数组的最小值

package Chapter2; /** * 面试题8:旋转数组的最小值 * 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 * 输入一个非递减排序的数组的一个旋转,输出...
  • PeersLee
  • PeersLee
  • 2017年11月07日 09:31
  • 87

剑指 offer——面试题8求旋转数组的最小值

题目:将一个非递减序列的某一处切一刀,再把前半段序列放到后半段序列的后面,这样组成的新序列叫做“旋转数组”。要求获取一个旋转数组的最小值。 这本质上是一个求最值的问题,最简单的方法就是顺序遍历数组,从...
  • u010425776
  • u010425776
  • 2016年03月07日 10:25
  • 629

每日AC-剑指Offer -旋转数组查找最小值

旋转数组查找最小值 题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3...
  • wangming520liwei
  • wangming520liwei
  • 2017年05月03日 13:53
  • 147
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:LintCode-剑指Offer-(28)寻找旋转排序数组中的最小值
举报原因:
原因补充:

(最多只允许输入30个字)