OJ_二分查找

题干

在这里插入图片描述

C++实现

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<vector>
#include<algorithm>
using namespace std;



int main() {
   
	int n;
	scanf("%d", &n);
	vector<int> a(n);
	for (int i = 0; i < n; i++) {
   
		scanf("%d", &a[i]);
	}
	sort(a.begin(), a.end());
	int m;
	scanf("%d", &m);
	int b;
	for (int i = 0; i < m; i++)
	{
   
		scanf("%d", &b);
		int left = 0;
		int right = n - 1;
		//左闭右闭区间,while循环条件是小于等于
		while (left <= right) {
   
			int mid = (left + right) / 2;
			if (b == a[mid]) {
   
				printf("YES\n");
				break;
			}
			else if (b < a[mid]) {
   
				right = mid - 1;
			}
			else {
   
				left = mid + 1;
			}
		}
		if (left > right) {
   
			printf("NO\n");
		}
	}
}

用map代替二分查找

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<vector>
#include<algorithm>
#include<map>
using namespace std;



int main() {
   
	int n;
	scanf("%d", &n);
	vector<int> a(n);
	for (int i = 0; i < n; i++) {
   
		scanf("%d", &a[i]);
	}
	map<int, int> findA;
	for (int i = 0; i < n; i++)
	{
   
		findA.insert({
    a[i],i });
	}
	int m;
	scanf("%d", &m);
	int b;
	for (int i = 0; i < m; i++)
	{
   
		scanf("%d", &b);
		if (findA.find(b) == findA.end()) {
   
			printf("NO\n");
		}
		else {
   
			printf("YES\n");
		}
	}
}

相关推荐

  1. 每日OJ题_算法_二分查找①_力扣704. 二分查找

    2024-02-09 14:04:03       58 阅读
  2. 二分查找.

    2024-02-09 14:04:03       29 阅读
  3. 每日OJ题_算法_二分查找③_力扣69. x 的平方根

    2024-02-09 14:04:03       58 阅读
  4. 每日OJ题_算法_二分查找⑥_力扣162. 寻找峰值

    2024-02-09 14:04:03       56 阅读
  5. 每日OJ题_算法_二分查找⑧_力扣LCR 173. 点名

    2024-02-09 14:04:03       56 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-09 14:04:03       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-09 14:04:03       106 阅读
  3. 在Django里面运行非项目文件

    2024-02-09 14:04:03       87 阅读
  4. Python语言-面向对象

    2024-02-09 14:04:03       96 阅读

热门阅读

  1. 侵入式智能指针和非侵入式智能指针

    2024-02-09 14:04:03       45 阅读
  2. 动态规划C语言

    2024-02-09 14:04:03       39 阅读
  3. Jetpack Room使用

    2024-02-09 14:04:03       49 阅读
  4. 开源软件:引领技术创新与商业模式转型

    2024-02-09 14:04:03       51 阅读
  5. 2024年GPT如何发展?

    2024-02-09 14:04:03       51 阅读
  6. 开源软件的未来发展趋势与应对新挑战和机遇

    2024-02-09 14:04:03       59 阅读
  7. 问题 | 开源软件的影响力

    2024-02-09 14:04:03       42 阅读
  8. Git学习

    Git学习

    2024-02-09 14:04:03      50 阅读
  9. FastAPI使用异步motor实现对mongodb的增删改查

    2024-02-09 14:04:03       57 阅读