1 条题解

  • 0
    @ 2024-12-24 10:06:05

    C :

    #include <stdio.h>
    const int MAXN = 1000;
    
    int main() {
            int a[MAXN];
            int n, k, query, l, r, mid;
            scanf("%d%d", &n, &k);
            for (int i = 0;i < n;i++) {
                    scanf("%d", &a[i]);
            }
            for (int i = 0;i < k;i++) {
                    scanf("%d", &query);
                    l = 0;
                    r = n;
                    while (l < r) {
                            mid = (l + r) / 2;
                            if (a[mid] < query)
                                    l = mid + 1;
                            else
                                    r = mid;
                    }
                    if (a[l] == query)
                            printf("%d ", l);
                    else
                            printf("-1 ");
            }
            puts("");
            return 0;
    }
    

    C++ :

    #include <cstdio>
    #include <cstdlib>
    #include <stack>
    #include <algorithm>
    using namespace std;
    const int MAXN = 1000;
    int val[MAXN];
    int main() {
    	int n, k, query, l, r, mid;
    	scanf("%d%d", &n, &k);
    	for (int i = 0;i < n;i++) {
    		scanf("%d", &val[i]);
    	}
    	for (int i = 0;i < k;i++) {
    		scanf("%d", &query);
    		l = 0;
    		r = n;
    		while (l < r) {
    			mid = (l + r) / 2;
    			if (val[mid] < query)
    				l = mid + 1;
    			else
    				r = mid;
    		}
    		if (val[l] == query)
    			printf("%d ", l);
    		else
    			printf("-1 ");
    	}
    	puts("");
    	return 0;
    }
    

    Java :

    
    
    import java.util.Scanner;
    
    public class Main{
      public static void main(String[] args) {
    	  Scanner s = new Scanner(System.in) ;
    	  
    	  int n = s.nextInt() ;
    	  int k = s.nextInt() ;
    	  
    	  if(n<=1000&&k<=1000){
    		  int a[] = new int[n];
    		  int b[] = new int[k];
    		  for (int i = 0; i < a.length; i++) {
    			  a[i] = s.nextInt() ;
    		  }
    		  for (int i = 0; i < b.length; i++) {
    			  b[i] = s.nextInt() ;
    		  }
    		  
    		  for (int i = 0; i < b.length; i++) {
    			 for (int j = 0; j < a.length; j++) {
    				if(b[i]==a[j]){
    					System.out.print(j+" ") ;
    					break ;
    				}
    				if(j==a.length-1){
    					System.out.print(-1+ " ") ;
    				}
    			}
    		  }
    		  System.out.println() ;
    	  }
      }
    }
    
    
    • 1

    信息

    ID
    1899
    时间
    1000ms
    内存
    32MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者