IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> 二分打卡1 1385. 两个数组间的距离值 -> 正文阅读

[数据结构与算法]二分打卡1 1385. 两个数组间的距离值

最近感觉写的都没啥好记录的,感觉博客空了好久,还是记录一下吧,看他们说要坚持一段时间学一个方面的,才能学好。那就从感觉最简单的二分开始吧。

给你两个整数数组 arr1 , arr2 和一个整数 d ,请你返回两个数组之间的 距离值 。
「距离值」 定义为符合此距离要求的元素数目:对于元素 arr1[i] ,不存在任何元素 arr2[j] 满足 |arr1[i]-arr2[j]| <= d 。
输入:arr1 = [4,5,8], arr2 = [10,9,1,8], d = 2
输出:2

思路
因为这个是二分板块的,,所以很自然想到要用二分,显然是找和arr1[i]最近的那个数,来判断距离。那就把数组二排序,然后进行二分查找。我找到的是第一个比arr1[i]大的数,为了保证数据正确,我还需要比较这个数的前一个数,即小于或等于arr1[i]的第一个数

class Solution {
public:
    int findTheDistanceValue(vector<int>& arr1, vector<int>& arr2, int d) {
        sort(arr2.begin(),arr2.end());
        int count=0;
        
        for(int i=0;i<arr1.size();++i)
        {
            int start=0,end=arr2.size()-1;
            while(start<end)
            {
                int mid=start+(end-start)/2;
                if(arr2[mid]>=arr1[i])
                {
                    end=mid;
                }else
                {
                    start=mid+1;
                }
            }
            
            //怕查找到的那个数是第一个,那么start-1不合法
            if(start!=0)
            {
                if(abs(arr2[start]-arr1[i])>d&&abs(arr2[start-1]-arr1[i])>d)
                {
                    count++;
                }
            }else if(abs(arr2[start]-arr1[i])>d)
            {
                count++;
            }
        }
        return count;
    }
};
  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2022-05-08 08:20:57  更:2022-05-08 08:22:52 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 3:39:39-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码