面试题 08.03. 魔术索引(C++)

  • 1 题目描述
  • 2 示例描述
    • 2.1 示例1
    • 2.2 示例2
  • 3 解题提示
  • 4 解题思路
  • 5 源码详解(C++)

1 题目描述

魔术索引。 在数组A[0…n-1]中,有所谓的魔术索引,满足条件A[i] = i。给定一个有序整数数组,编写一种方法找出魔术索引,若有的话,在数组A中找出一个魔术索引,如果没有,则返回-1。若有多个魔术索引,返回索引值最小的一个。

2 示例描述

2.1 示例1

输入:nums = [0, 2, 3, 4, 5]
输出:0
说明: 0下标的元素为0

2.2 示例2

输入:nums = [1, 1, 1]
输出:1

3 解题提示

nums长度在[1, 1000000]之间
此题为原书中的 Follow-up,即数组中可能包含重复元素的版本

4 解题思路

暴力求解。

5 源码详解(C++)

class Solution {public:int findMagicIndex(vector<int>& nums) {int res = -1  ;for ( int i = 0 ; i < nums.size() ; i ++ ){if ( i == nums[i] ){res = i ;break ;}}return res ;}
};

【LeetCode】面试题 08.03. 魔术索引(C++)相关推荐

  1. leetcode面试题 08.03. 魔术索引(二分)

    魔术索引. 在数组A[0-n-1]中,有所谓的魔术索引,满足条件A[i] = i.给定一个有序整数数组,编写一种方法找出魔术索引,若有的话,在数组A中找出一个魔术索引,如果没有,则返回-1.若有多个魔 ...

  2. 程序员面试金典 - 面试题 08.03. 魔术索引(二分递归)

    1. 题目 魔术索引. 在数组A[0-n-1]中,有所谓的魔术索引,满足条件A[i] = i. 给定一个有序整数数组,编写一种方法找出魔术索引,若有的话,在数组A中找出一个魔术索引,如果没有,则返回- ...

  3. Leetcode 面试题 08.01. 三步问题

    Leetcode 面试题 08.01. 三步问题 1.问题分析 2.问题解决 3.总结 1.问题分析 题目链接:https://leetcode-cn.com/problems/three-steps ...

  4. 面试题 08.03. Magic Index LCCI 魔术索引

    魔术索引. 在数组A[0-n-1]中,有所谓的魔术索引,满足条件A[i] = i.给定一个有序整数数组,编写一种方法找出魔术索引,若有的话,在数组A中找出一个魔术索引,如果没有,则返回-1.若有多个魔 ...

  5. LeetCode 面试题 08.01. 三步问题 (动态规划)

    面试题 08.01. 三步问题 解法1(动态规划) 分析出递推式:f(n) = f(n - 1) + f(n - 2) + f(n - 3) class Solution {public int wa ...

  6. LeetCode 面试题 08.11. 硬币 多种解法 完全背包问题

    面试题 08.11. 硬币   大家好,我叫亓官劼(qí guān jié ),在CSDN中记录学习的点滴历程,时光荏苒,未来可期,加油~博客地址为:亓官劼的博客 本文原创为亓官劼,请大家支持原创,部 ...

  7. [Leetcode] 面试题 08.02. 迷路的机器人

    [面试题 08.02. 迷路的机器人]   设想有个机器人坐在一个网格的左上角,网格 r 行 c 列.机器人只能向下或向右移动,但不能走到一些被禁止的网格(有障碍物).设计一种算法,寻找机器人从左上角 ...

  8. [Leetcode][程序员面试金典][面试题08.03][JAVA][魔术索引][递归][优化]

    [问题描述][简单] [解答思路] 1. 逐个查找 时间复杂度:O(N) 空间复杂度:O(1) public int findMagicIndex(int[] nums) {for (int i = ...

  9. 60. Leetcode 面试题 10.03. 搜索旋转数组 (二分查找-局部有序)

    搜索旋转数组.给定一个排序后的数组,包含n个整数,但这个数组已被旋转过很多次了,次数不详.请编写代码找出数组中的某个元素,假设数组元素原先是按升序排列的.若有多个相同元素,返回索引值最小的一个.示例1 ...

最新文章

  1. linux大文件拷贝,Linux如何提高大文件的拷贝效率
  2. 计算机网络-UDP协议
  3. ARM的cache和写缓冲器(write buffer)
  4. 英特尔cpu发布时间表_10纳米来了:英特尔十一代酷睿上市,性能提升20%,AI算力乘5倍...
  5. Atitit 《摩奴法典》overivew 读后感 不是由国王 颁布的,而是 僧侣编制
  6. 【ML小结12】隐马尔科夫模型HMM
  7. Linux日志管理实验
  8. 别了,AlphaGo之魂——黄士杰
  9. 学神经网络需要什么基础,深度神经网络怎么用
  10. 【思维】Hzy's Rabbit Stick
  11. X86架构PC服务器等硬件设备
  12. 数学分析(2):自然数集的构建
  13. 设置图片和文本框垂直居中
  14. 火狐浏览器httpRequest插件
  15. Python学习笔记——开发图形界面wxPython、PyQt、PySide选哪一个?
  16. 获取元素的绝对位置和相对位置
  17. 半导体器件基础04:稳压二极管和TVS管
  18. 人脸识别---闭集测试评价指标CMC曲线(rank)
  19. 深度linux安装virtualbox,Deepin 20 安装 VirtualBox 6.1
  20. Linux C编程my_ls 的实现

热门文章

  1. 笔记本wifi与台式机、内网服务器共网、共享wifi详细教程
  2. 集成无线收发器8位RISC(精简指令集)MCU SOC芯片Ci2451
  3. 尚硅谷-康师傅-MySQL详细笔记(10-18章)
  4. Linux下基于XScale的USB摄像头图像采集
  5. html css is图片,isbackground
  6. 实用方法 - 解决360Doc文章不能复制的问题(实现不登录直接复制)
  7. 什么是缓冲区溢出以及如何利用漏洞?
  8. suricata 各个线程干的事情 -- FlowManagerThread
  9. 修改@Scheduled注解增加enable参数使其支持在配置文件中打开和关闭
  10. 设计模式原则—里氏替换原则