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;
    }
};
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

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

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

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

题目总结: 1.若没有进行旋转,或者说旋转后的效果跟没有旋转是一样的,那么index1指示的值小于index2指示的值,返回index1的值。 2.若是一般性的旋转,那么最小的值旋转后肯定在中间,那么...

【剑指offer】旋转数组的最小值

现在对算法真的是由衷地热爱啊,总是忍不住想要A题(本科都没这意识,哎,把时间都浪费在了考试拿奖学金和所谓的学生工作上了),而且数学一直以来都是自己的强项,希望在这方面以后能应用好,虽然在ACM方面还只...

剑指offer系列之六:旋转数组的最小值

题目描述把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个非递减序列的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组...

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

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

【剑指offer】旋转数组的最小值

题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个非递减序列的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,...

剑指offer 面试题8 旋转数组的最小值 java版答案

package OfferAnswer; /** * 面试题8 * 旋转数组的最小值 * @author lwk * 时间复杂度O(logn) */ public class Answer0...

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

题目描述一 假设一个旋转排序的数组其起始位置是未知的(比如0 1 2 4 5 6 7 可能变成是4 5 6 7 0 1 2)。 你需要找到其中最小的元素。 你可以假设数组中不存在重复的...

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

题目描述:假设一个旋转排序的数组其起始位置是未知的(比如:0 1 2 4 5 6 7 可能变成是:4 5 6 7 0 1 2)。你需要找到其中最小的元素。你可以假设数组中不存在重复的元素。 样例:...

Lintcode 将数组重新排序以构造最小值

给定一个整数数组,请将其重新排序,以构造最小值。  注意事项 The result may be very large, so you need to return a string ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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