美文网首页
面试题53(3):数组中数值和下标相等的元素

面试题53(3):数组中数值和下标相等的元素

作者: 潘雪雯 | 来源:发表于2020-05-08 10:19 被阅读0次

题目

假设一个单调递增的数组里的每个元素都是整数并且唯一。编写函数找出数组中任意一个数值等于其下标的元素。例如:在数组{-3,-1,1,3,5}中,数字3和它的下标相等。

解题思路

  1. 二分查找
  2. 和(2)题很相似,若中间数组的值刚好等于下标,则就找到
    若中间数组的值大于下标,则下一轮找数组的左半边
    若中间数组的值小于下标,则下一轮找数组的右半边

代码

class Solution{
  public:
    int getFirstk(int *sorted_array,int left,int right)
    {
        
        if(left <= right)
        {
            int index = (left + right) >> 1;
            int mid   = sorted_array[index];

            if(sorted_array[index] == index)
            {
                return mid;
            }
            else if(sorted_array[index] > index)
            {
                right  = index - 1;
            }
            else
            {
                left = index +1;
            }
            return getFirstk(sorted_array,left,right);
        }
        else
        {
            return -1;
        }
    }
    
    
};

完整代码见Gtihub

相关文章

  • 面试题53(3):数组中数值和下标相等的元素

    题目 假设一个单调递增的数组里的每个元素都是整数并且唯一。编写函数找出数组中任意一个数值等于其下标的元素。例如:在...

  • 剑指offer第二版-53.3.数组中数值和下标相等的元素

    本系列导航:剑指offer(第二版)java实现导航帖 面试题53.3:数组中数值和下标相等的元素 题目要求:假设...

  • 面试题53_3:数组中数值与下标相等的元素

    数组中数值和下标相等的元素。 假设一个单调递增的数组里的每个元素都是整数并且是唯一的。 找出数组中任意一个数值等于...

  • 剑指offer 57- 数组中数值和下标相等的元素

    假设一个单调递增的数组里的每个元素都是整数并且是唯一的。 请编程实现一个函数找出数组中任意一个数值等于其下标的元素...

  • js实现数组去重

    //借助indexOf()方法判断此元素在该数组中首次出现的位置下标与循环的下标是否相等 方法一: functio...

  • 面试题 16.21. 交换和

    给定两个整数数组,请交换一对数值(每个数组中取一个数值),使得两个数组所有元素的和相等。 返回一个数组,第一个元素...

  • JS数组去重

    借助新数组 通过indexOf方判断当前元素在数组中的索引如果与循环的下标相等则添加到新数组中 var arr =...

  • swift使用小技巧(4.0)

    1.查找元素查找在数组中的下标 例如在 数组a = [1,2,3,4,5] 查找元素3的下标 2.从指定下标遍历数...

  • JavaScript 实现数组去重

    方法一:双重遍历 方法二:借助indexOf()方法判断此元素在该数组中首次出现的位置下标与循环的下标是否相等 方...

  • JS问题记录

    一、数组问题 1、数组添加元素 2、数组删除指定下标元素 3、数组排序

网友评论

      本文标题:面试题53(3):数组中数值和下标相等的元素

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