• papamelon 257. 下界 lower_bound(挑战程序设计竞赛)


    地址 https://www.papamelon.com/problem/257

    二分查找模板题
    二分有两个模板
    一个是找到符合查询数字的下边界<=
    一个是找到符合查询数字的上边界>=
    记熟会方便很多.

    本题是查找第一个大于等于k的数字
    是下边界

    #include <iostream>
    
    using namespace std;
    
    const int N = 1000010;
    int arr[N];
    
    int n, k;
    
    int main()
    {
    	cin >> n >> k;
    	for (int i = 0; i < n; i++) { cin >> arr[i]; }
    	int l = 0; int r = n ;
    	while (l < r) {
    		int mid = (l + r) >> 1;
    		if (arr[mid] >= k) { r = mid; }
    		else { l = mid + 1; }
    	}
    	cout << l << endl;
    
    	return 0;
    }
    

    也可以使用stl的二分函数api
    注意 lower_bound和upper_bound 分别等于数组中大于等于查找元素的位置 和数组中第一个大于查找元素的位置.

    #include <iostream>
    
    using namespace std;
    
    const int N = 1000010;
    int arr[N];
    
    int n, k;
    
    int main()
    {
    	cin >> n >> k;
    	for (int i = 0; i < n; i++) { cin >> arr[i]; }
    	int ans = lower_bound(arr,arr+n,k) -arr;
    	cout << ans<<endl;
    
    	return 0;
    }
    

    我的视频题解空间

    作 者: itdef
    欢迎转帖 请保持文本完整并注明出处
    技术博客 http://www.cnblogs.com/itdef/
    B站算法视频题解
    https://space.bilibili.com/18508846
    qq 151435887
    gitee https://gitee.com/def/
    欢迎c c++ 算法爱好者 windows驱动爱好者 服务器程序员沟通交流
    如果觉得不错,欢迎点赞,你的鼓励就是我的动力
    阿里打赏 微信打赏
  • 相关阅读:
    ubuntu 14.04 如何安装nvidia显卡驱动 [转载]
    torch Tensor学习:切片操作
    Graphviz(转载)
    torch 深度学习(5)
    torch 深度学习(4)
    torch 深度学习(3)
    torch 深度学习 (2)
    C# 初识Ref和Out
    Unity发送短信
    Unity 3D 动画帧事件
  • 原文地址:https://www.cnblogs.com/itdef/p/15634747.html
Copyright © 2020-2023  润新知