美文网首页LintCode解题思路LintCode解题思路
OJ:lintcode 经典二分查找问题

OJ:lintcode 经典二分查找问题

作者: DayDayUpppppp | 来源:发表于2017-02-18 16:05 被阅读46次

在一个排序数组中找一个数,返回该数出现的任意位置,如果不存在,返回-1
您在真实的面试中是否遇到过这个题?
Yes
样例
�给出数组 [1, 2, 2, 4, 5, 5].
对于 target = 2, �返回 1 或者 2.
对于 target = 5, �返回 4 或者 5.
对于 target = 6, �返回 -1.

class Solution{
public:
    /**
    * @param A an integer array sorted in ascending order
    * @param target an integer
    * @return an integer
    */


    int findPosition(vector<int>& A, int target) {
        // Write your code here

        if (A.size() == 0) {
            return -1;
        }
        int begin = 0;
        int end = A.size() - 1;
        while (begin < end) {
            int mid = begin + (end - begin) / 2;
            if (A[mid] == target) {
                return mid;
            }
            else if (A[mid] < target) {
                begin = mid + 1;
                end = end;
                continue;
            }
            else {
                end= mid - 1;
                begin = begin;
                continue;
            }
        }

        if (A[begin] == target) {
            return begin;
        }

        if (A[end] == target) {
            return end;
        }

        return -1;


    }
};

相关文章

  • OJ:lintcode 经典二分查找问题

    在一个排序数组中找一个数,返回该数出现的任意位置,如果不存在,返回-1您在真实的面试中是否遇到过这个题?Yes样例...

  • OJ lintcode 二分查找

    给定一个排序的整数数组(升序)和一个要查找的整数target,用O(logn)的时间查找到target第一次出现的...

  • 算法-查找-二分查找变形

    经典的二分查找很好理解,也很好实现,那一起来看下二分查找的变形问题。常见的二分查找变形问题有: 查找第一个等于待查...

  • OJ:lintcode A + B 问题

    给出两个整数a和b, 求他们的和, 但不能使用 + 等数学运算符。注意事项你不需要从输入流读入数据,只需要根据ap...

  • lintcode 二分查找

    给定一个排序的整数数组(升序)和一个要查找的整数target,用O(logn)的时间查找到target第一次出现的...

  • OJ lintcode Fizz Buzz 问题

    给你一个整数n. 从 1 到 n 按照下面的规则打印每个数:如果这个数被3整除,打印fizz.如果这个数被5整除,...

  • [老实李] 算法初探:二分查找法 Binary Search

    二分查找法主要用来解决查找的问题 1、二分查找法Binary Search (注)对于有序数列才能使用二分查找法。...

  • 0.1例:二分查找

    0.算法解决的问题 二分查找是一个经典的查找算法;查找算法所解决的问题是:如何在一个 排列好的一堆数 (数组)内找...

  • SearchInRotatedAry

    其实这个问题,是基于二分查找(BinarySearch)来解决的。所以这里需要先理解一下二分查找。 1. 二分查找...

  • js刷林扣 lintcode(2017年1月)

    题目前的数字是对应的lintcode的题目序号 14.二分查找 给定一个排序的整数数组(升序)和一个要查找的整数t...

网友评论

    本文标题:OJ:lintcode 经典二分查找问题

    本文链接:https://www.haomeiwen.com/subject/kbzrwttx.html