【简单】面试题 08.03. 魔术索引(普通法+二分法)简单题不简单啊

643 篇文章 5 订阅

【题目】
在数组A[0…n-1]中,有所谓的魔术索引,满足条件A[i] = i。给定一个有序整数数组,编写一种方法找出魔术索引,若有的话,在数组A中找出一个魔术索引,如果没有,则返回-1。若有多个魔术索引,返回索引值最小的一个。
来源:leetcode
链接:https://leetcode-cn.com/problems/magic-index-lcci/
【示例】
输入:nums = [0, 2, 3, 4, 5]
输出:0
说明: 0下标的元素为0
【示例2】
输入:nums = [1, 1, 1]
输出:1
【代码】一次遍历

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

【二分法】32ms

class Solution {
private:
    void binary_search(vector<int>& nums, int left, int right, int& ret){
        // 这里做一个剪枝
        if(ret != -1 && ret<left) return;
        if(left <= right){
            int mid = left + (right - left) / 2;
            // 如果找到目标的索引,需要尝试能否找到更小的索引值
            if(nums[mid] == mid){
                if(ret == -1) ret = mid;
                else if(mid < ret) ret = mid;
                binary_search(nums, left, mid - 1, ret);
            // 如果mid不符合要求,则需要在mid两边继续查找
            }else{
                binary_search(nums, left, mid - 1, ret);
                binary_search(nums, mid + 1, right, ret);
            }
        }
    }
public:
    int findMagicIndex(vector<int>& nums) {
        // 2. 二分法
        int ret = -1;
        binary_search(nums, 0, nums.size()-1, ret);
        return ret;
    }
};
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: ps2251-09 (ps2309) - f/w 08.03.5d [2018-05-24] 是一款固件版本为08.03.5d的USB控制器芯片。该固件版本于2018年5月24日发布。 这款固件主要用于控制USB设备的传输和存储。它是一种嵌入式软件,安装在芯片上,以控制USB接口的功能。该固件版本具有08.03.5d的编号,这意味着这是其第五次修订的第一版本。 该固件具有高度的稳定性和可靠性,可以确保数据的安全传输和存储。通过更新固件版本,可能会提高设备的性能和功能。在发布的时间以后,该固件版本可能会进行更新和改进,以解决一些已知问,并增加新的功能。 用户需要将该固件版本下载到USB控制器芯片上,以更新或升级现有的固件。此过程需要使用特定的软件和工具,如USB设备工具。通过将新的固件版本安装到设备上,用户可以获得新功能和修复现有问。 总而言之,ps2251-09 (ps2309) - f/w 08.03.5d [2018-05-24] 是一款用于控制USB设备的固件版本,它具有稳定性和可靠性,并可以改善设备的性能和功能。用户可以通过下载该固件版本来更新设备,并享受新的功能和修复现有问。 ### 回答2: PS2251-09(PS2309)- F/W 08.03.5d [2018-05-24]是一款固件版本为08.03.5d的PS2251-09(也称为PS2309)芯片。这款固件版本于2018年5月24日发布。 PS2251-09(也称为PS2309)是一种常用的USB闪存控制器芯片,用于管理和控制连接到计算机的USB闪存驱动器,包括U盘、移动硬盘等。它具有高性能和稳定性,并支持各种主流操作系统,如Windows和Mac OS。该芯片可以提供高速数据传输和稳定的存储性能。 固件是嵌入式系统的一种软件,用于控制和管理硬件设备的操作。PS2251-09(PS2309)- F/W 08.03.5d [2018-05-24]是该芯片的特定固件版本。固件版本更新可能会修复一些问或添加一些新功能。通过升级芯片固件,用户可以获得更好的性能、稳定性和兼容性。 对于使用这款固件版本的用户来说,他们可能会受益于该版本带来的改进。这可能包括对特定硬件设备的兼容性改进、更快的数据传输速度、更稳定可靠的存储性能等。对于硬件制造商和软件开发人员来说,这款固件版本也提供了更好的控制和管理功能,以便他们能够定制和优化硬件设备的性能。 总之,PS2251-09(PS2309)- F/W 08.03.5d [2018-05-24]是一款常用的USB闪存控制器芯片的固件版本,它为用户提供了更好的性能、稳定性和兼容性,也为硬件制造商和软件开发人员提供了更多的控制和管理功能。 ### 回答3: ps2251-09(或称为ps2309)是一个固件版本为08.03.5d的控制器芯片。这个控制器芯片主要用于USB闪存驱动器和固态硬盘(SSD)等存储设备08.03.5d是该固件的版本号,表明其是在2018年5月24日发布的。这种类型的固件是为了改进和优化USB闪存驱动器和SSD的性能和功能而设计的。通过升级固件,用户可以获得更好的性能和更稳定的操作体验。 在固件升级过程,用户应遵循制造商提供的说明和步骤。通常,升级固件需要从制造商的网站下载固件文件,并将其加载到存储设备的控制芯片。升级完成后,设备将具有新的固件版本,以提供更好的功能和兼容性。 总之,ps2251-09(ps2309) - f/w 08.03.5d [2018-05-24]是用于USB闪存驱动器和固态硬盘的控制器芯片固件的一个版本。这个固件版本通过提供更好的性能和功能,以改善用户的体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值