1. 程式人生 > 實用技巧 >面試題 08.03. 魔術索引

面試題 08.03. 魔術索引

魔術索引。 在陣列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,即陣列中可能包含重複元素的版本

來源:力扣(LeetCode)
連結:https://leetcode-cn.com/problems/magic-index-lcci


思路:

簡單題,遍歷陣列,因為要返回的是最小值,所以遍歷到第一個f[i] == i 的數就是要返回的數了

class Solution {
    public int findMagicIndex(int[] nums) {
        int magicInedx = -1;
        for(int i =0;i < nums.length; i ++){
            if(nums[i] == i){
                magicInedx = nums[i];
                break;
            }
        }
        
return magicInedx; } }