《程序员面试金典(第6版)》面试题 08.03. 魔术索引

news/2024/10/28 21:31:22/

题目描述

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

示例1:

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

示例2:

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

说明:

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

解题思路与代码

说实话,我看了这道题,在咋说,我感觉都该拿for循环去做,为何要二分呢?直接for不好吗?这题都说了,如果有重复的,选择最小的。你还跑去二分,嘚瑟什么呢?

我就直接写暴力破解,不管其他,hhh。

暴力破解

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

在这里插入图片描述

复杂度分析

时间复杂度:O(n),n为元素的个数
空间复杂度:O(1),没有用到额外的存储空间。

总结

这道题就用暴力破解,别想有的没的,多花点时间做做别的题不好吗?


http://www.ppmy.cn/news/37959.html

相关文章

力推美团企业版 美团究竟意欲何为?

已经拥有930万活跃商家的美团公司&#xff0c;正在充分整合自身的“供应链”优势&#xff0c;冲向B端市场。 3月31日&#xff0c;据36氪消息显示&#xff0c;美团将于近期正式上线面向To B市场的业务“美团企业版”&#xff0c;定位企业消费赛道。美团企业版会为企业客户提供消…

线段树简介

1、线段树是什么&#xff1f; 线段树&#xff08;Segment Tree&#xff09;是一种经典的数据结构&#xff0c;它是一颗二叉树&#xff0c;每个节点都代表区间。线段树用于解决静态区间问题和动态区间问题。 它的主要思想是将区间划分成若干个小区间&#xff0c;每个节点代表一…

Leveldb源码解读------Memtable(跳表)详解

在leveldb中的memtable实际上是对核心数据结构skipList做了一个包装&#xff0c;并对外提供了接口。 使用让我们一起来研究一下跳表 为什么使用跳表 因为memtable为了更快的查询&#xff0c;是一个sortmap要求。一般会采用红黑树&#xff0c;不过LevelDB采用的是Skiplist。S…

30行python代码就可以调用ChatGPT API总结论文的主要内容

阅读论文可以说是我们的日常工作之一&#xff0c;论文的数量太多&#xff0c;我们如何快速阅读归纳呢&#xff1f;自从ChatGPT出现以后&#xff0c;有很多阅读论文的服务可以使用。其实使用ChatGPT API非常简单&#xff0c;我们只用30行python代码就可以在本地搭建一个自己的应…

VUE 跳转链接去掉中间#号

问题原因&#xff1a; Vue 的 router 默认是 hash 模式&#xff0c;在 hash 模式下&#xff0c;是会有#号在URL上&#xff1b; 例如如你访问&#xff1a; https://www.baidu.com&#xff0c;实际跳转 https://www.baidu.com/#/index 即它在路由时&#xff0c;在每个路径前面…

《安富莱嵌入式周报》第306期:开源独轮车,Cortex-M85修订版r1发布,Terathon图形数学库,不断变革的IDE开发环境,各个厂家总动员

往期周报汇总地址&#xff1a;嵌入式周报 - uCOS & uCGUI & emWin & embOS & TouchGFX & ThreadX - 硬汉嵌入式论坛 - Powered by Discuz! 视频版&#xff1a; https://www.bilibili.com/video/BV1TT411Y7fq 《安富莱嵌入式周报》第306期&#xff1a;开源…

陈刚:大管家健康产业有限公司的联合创始人兼CEO

与其被创业者坑&#xff0c;还不如自己“坑”自己&#xff0c;看投资人为何成为操刀者&#xff01; 想找人来投资自己的项目&#xff01; 那你知道什么样的人才最容易拿到投资吗&#xff1f; 想要在现有的发展状态下有些新的尝试&#xff01; 那你如何稳抓良机&#xff0c;成功…

echarts——实现中国地图+世界地图的切换——技能提升

之前写过一篇文章&#xff0c;是关于中国地图的展示。 vueecharts.js 实现中国地图——根据数值表示省份的深浅——技能提升&#xff1a;http://t.csdn.cn/rfQGl 最后实现的效果如下图所示&#xff1a; 今天遇到一个需求&#xff0c;就是实现中国地图和世界地图的切换。 话不…