首页 > 编程语言 >算法学习——同向扫描的双指针

算法学习——同向扫描的双指针

时间:2023-09-28 11:25:00浏览次数:37  
标签:std map cnt le int 扫描 long 算法 指针

考虑到, $ 1 \le N \le 2 \times 10^5 $, $ O(n^2) $ 的暴力判断无法通过此题, 下面给出三种可行的解决方案。

1.哈希

容易想到的一个思路是:用哈希表记录一下 $ a_1 \sim a_n $ 每个数出现了多少次, 然后求出 $ \Sigma_{i = 1}^n cnt_{a_i - c} $ 即可, $ cnt_{a_i} $ 表示 $ a_i $ 在序列中出现的次数。需要注意的是, $ a_i < 2^{30} $, 数组无法开辟如此大的空间, 需要用 std::map 处理, 时间复杂度为 $ O(nlog_2n) $。

点击查看代码
#include <bits/stdc++.h>
#define lint long long
using namespace std;

int main() {
    map<int, int> cnt;
    int n, c;
    scanf("%d%d", &n, &c);
    vector<int> a(n + 1);
    for (int i = 1; i <= n; i++) {
        scanf("%d", &a[i]);
        cnt[a[i]]++;
    }
    lint ans = 0;
    for (int i = 1; i <= n; i++) {
        ans += cnt[a[i] - c];
    }
    printf("%lld\n", ans);
    return 0;
}

标签:std,map,cnt,le,int,扫描,long,算法,指针
From: https://www.cnblogs.com/LDUyanhy/p/17735253.html

相关文章

  • Java之包装类的算法小题的练习
     算法小题练习一:需求:键盘录入一些1~10日之间的整数,并添加到集合中。直到集合中所有数据和超过200为止。代码示例:publicclassTest1{publicstaticvoidmain(String[]args){/*键盘录入一些1~10日之间的整数,并添加到集合中。直到集合中所有数据和超......
  • 水果识别系统Python+TensorFlow+卷积神经网络算法【图像识别】
    引言随着科技的发展,我们生活中的各种便利工具日益增加。例如,你有没有想过,当你在超市里看到一个陌生的水果,却不知道它是什么名字时,有一个工具可以帮你识别出来?今天,我要为大家介绍一种基于Python的水果识别系统。这个系统不仅识别准确,还具有友好的用户界面。下面,让我们一起探索这个......
  • 文心一言 VS 讯飞星火 VS chatgpt (98)-- 算法导论9.3 4题
    四、用go语言,对一个包含n个元素的集合,假设一个算法只使用比较来确定第i小的元素,证明:无需额外的比较操作,它也能找到第i-1小的元素和第n-i大的元素。文心一言:在这个问题中,我们要使用一个称为"QuickSelect"的算法,这是一个用于在未排序的列表中查找第k小元素的算法。该算法基于"Qui......
  • 文心一言 VS 讯飞星火 VS chatgpt (94)-- 算法导论9.2 3题
    三、用go语言,给出RANDOMIZED-SELECT的一个基于循环的版本。文心一言:在循环中实现RANDOMIZED-SELECT的一个版本可以如下所示。这个版本使用Go语言编写,利用随机化来选择一个元素,并在循环中不断地调整选择的元素,直到找到目标元素。packagemainimport("fmt""math/......
  • 音频数据的自定义DataLoader及其AutoEncoder降噪算法
    DataLoader要求每一个Batch里面的数据的shape都一样,但是语音数据显然不可能都是等长的,因为每一条语音长度都不一样,因此在定制DataLoader的时候还要对每一个batch的数据进行剪裁(crop)或者填充(padding)处理。这里采用padding来对齐数据,方法采用PytorchDiscussion的网友Felix......
  • 基于AI算法+视频监控技术的智慧幼儿园解决方案
    在当今社会,为了孩子的健康启蒙教育,很多家长都会选择将孩子托付给幼儿园管理,但是,幼儿有着年龄小、难控制、易发生突发情况等特点,那么,如何能最大限度的保障幼儿在学校的安全呢?TSINGSEE青犀视频融合平台给出了方案。1、安全监控在校园部署监控摄像头并覆盖幼儿园的重要区域,如入口、......
  • 提升技术招聘有效性 | 为什么企业总考算法题?
    前些年技术圈有个经典名梗:广受谷歌员工欢迎的macOS包管理器Homebrew的开发者,技术大佬MaxHowell,去谷歌面试时由于不会做一道非常基础的算法题——翻转二叉树,而被谷歌拒了。当时圈内炸了锅,有人觉得是大佬不屑于去做,有人顺带吐槽了自己的类似经历......  其中一位网友的......
  • 算法训练day22 LeetCode235
    算法训练day22LeetCode235.701.450.235.二叉搜索树的最近公共祖先题目235.二叉搜索树的最近公共祖先-力扣(LeetCode)题解代码随想录(programmercarl.com)对于二叉树,可以用递归回溯的方式对于二叉搜索树,由其根节点大于左右子树中结点,所以当第一次遍历到根节点值......
  • 大模型深挖数据要素价值:算法、算力之后,存储载体价值凸显
    文|智能相对论作者|叶远风18.8万亿美元,这是市场预计2030年AI推动智能经济可产生的价值总和,其中大模型带来的AI能力质变无疑成为重要的推动力量。大模型浪潮下,业界对AI发展的三驾马车——算力、算法、数据任何一个维度的关注都到了全新的高度,避免“木桶效应”成为大模型发展首要......
  • 遗传算法解决01背包问题
    遗传算法解决01背包问题一、问题描述01背包问题是组合优化问题的一个典型例子,它要求在许多可行解中找到一个最优解。01背包问题的一般描述如下:给定一个固定的背包容量和一组物品,每个物品有一个重量和一个价值,要求从这组物品中选择一些放入背包,使得背包中物品的总价值最大,同时不......