全部评论 1

  • 可以用二分查找

    #include <bits/stdc++.h>
    using namespace std;
    int search(int a[], int len, int target)
    {
        int left = 0, right = len - 1;
        while(left <= right)
            {
                int middle = left + (right - left) / 2;
                if(target == a[middle])
                    return middle + 1;            
                if(target > a[middle])
                    left = middle + 1;
                else if(target < a[middle])
                    right = middle - 1;
            }
        return -1;
    }
    int main()
    {
        int n, m, arr[1000000];
        cin >> n >> m;
        for(int i = 0; i < n; i++)
            cin >> arr[i];
        for(int i = 0; i < m; i++)
            {
                int x;
                cin >> x;
                cout << search(arr, n, x) << endl;
            }
        return 0;
    }
    

    2025-08-14 来自 江西

    1

热门讨论