文章目录

  • 题目
  • 思路
  • AC代码
  • 后言

题目

5965. 相同元素的间隔之和

思路

思路是利用前缀、后缀数组来减少计数问题,可惜做的时候TLE了。

AC代码

class Solution {public:vector<long long> getDistances(vector<int>& arr) {unordered_map<int,vector<int> > m;int len=arr.size();for(int i=0;i<len;++i){m[arr[i]].emplace_back(i);//记录每个相同数的下标}//要预先处理数组//用前缀和与后缀和数组来记录与前面数的距离以及与后面数的距离//处理前缀vector<long long> pre(len,0),last(len,0);for(auto it=m.begin();it!=m.end();++it){int length=it->second.size();for(int i=0;i<length;++i){if(i==0) pre[it->second[i]]=0;else pre[it->second[i]]=pre[it->second[i-1]]+i*(it->second[i]-it->second[i-1]);}}for(auto it=m.begin();it!=m.end();++it){int length=it->second.size();for(int i=length-1;i>=0;--i){if(i==length-1) last[it->second[i]]=0;else last[it->second[i]]=last[it->second[i+1]]+(length-i-1)*(it->second[i+1]-it->second[i]);}}vector<long long>res(len);for(int i=0;i<len;++i){res[i]=pre[i]+last[i];}return res;}
};

后言

感觉力扣周赛好喜欢考前缀、后缀。滑动窗口呀!从这个题可以看到,前缀与后缀不再仅限制于和了,还有其他推广的含义。

leetcode 273场周赛 Problem-C相关推荐

  1. LeetCode第 227 场周赛题解

    LeetCode第 227 场周赛题解 检查数组是否经排序和轮转得到 原题链接 https://leetcode-cn.com/problems/check-if-array-is-sorted-an ...

  2. [算法]LeetCode第194场周赛202006021

    第194场周赛 20200621 1486. 数组异或操作 题目描述1 给你两个整数,n 和 start . 数组 nums 定义为:nums[i] = start + 2*i(下标从 0 开始)且 ...

  3. LeetCode 第 194 场周赛

    LeetCode 第 194 场周赛 数组异或操作 思路和代码 保证文件名唯一 思路及代码 避免洪水泛滥 思路及代码 找到最小生成树里的关键边和伪关键边 思路及代码 这次周赛比以往难很多. 数组异或操 ...

  4. LeetCode第 310 场周赛

    文章目录 前言 第86场双周赛情况 题目复盘+题解 题1:6176. 出现最频繁的偶数元素[easy] 题2:6176. 出现最频繁的偶数元素[medium] 题3:6178. 将区间分为最少组数[m ...

  5. C/C++描述 LeetCode 周赛 第199场周赛(阿里云专场)

    C/C++描述 LeetCode 周赛 第199场周赛(阿里云专场)   大家好,我叫亓官劼(qí guān jié ),在CSDN中记录学习的点滴历程,时光荏苒,未来可期,加油~博主目前仅在CSDN ...

  6. leetCode第199场周赛学习

    199场周赛 1528. 重新排列字符串 给你一个字符串 s 和一个 长度相同 的整数数组 indices . 请你重新排列字符串 s ,其中第 i 个字符需要移动到 indices[i] 指示的位置 ...

  7. LeetCode第187场周赛(Weekly Contest 187)解题报告

    差点又要掉分了,还好最后几分钟的时候,绝杀 AK.干巴爹!!! 第一题:思路 + 模拟暴力. 第二题:线性扫描. 第三题:双指针(滑动窗口) + 优先队列. 第四题:暴力每一行最小 k 个 + 优先队 ...

  8. [LeetCode周赛复盘] 第 314 场周赛20221009

    [LeetCode周赛复盘] 第 314 场周赛20221009 一.本周周赛总结 二. [Easy] 6201. 找出前缀异或的原始数组 1. 题目描述 2. 思路分析 3. 代码实现 三.[Eas ...

  9. Acwing第72场周赛+Leetcode第314场周赛

    Acwing第72场周赛 第一题:AcWing 4624. 最小值 分析:向下取整可以用到math.h头文件中的floor()函数,最后输出时套用两个min()函数求三个数的最小值即可. 代码: #i ...

最新文章

  1. Spring Boot 的 10 个核心模块
  2. linux 编译错误 configure: error: no usable python found at /usr/bin/python2.7
  3. 洛谷P4239 【模板】多项式求逆(加强版)(多项式求逆)
  4. java 字体名字_JAVA:获取系统中可用的字体的名字
  5. h3c交换机 查看二层交换机端口ip_【分享】项目中如何选到称心如意的交换机?...
  6. 带字母的计算机在线使用,ASCII,进位制在线转换工具
  7. php正则如何使用 1,PHP正则表达式使用详解(1)
  8. 信阳农林技术学院经纬度_信阳农林学院驻村工作队为扶贫村协调种苗助力美丽乡村建设...
  9. Mac下载eclipse的方法
  10. c语言实现简单俄罗斯方块
  11. python变量名包括_python中变量的命名以及使用
  12. 四川绵阳动感地带学生套餐资费备忘
  13. 10个每个人都用得到的视频下载网站
  14. ORA-01261: Parameter db_recovery_file_dest destination string cannot be translated
  15. bingo卡片js代码_Excel Bingo卡随机数代码
  16. 如果们正预测基本面子
  17. html中怎么写艺术字,用CSS设计艺术字
  18. JAVA 消息队列的使用场景
  19. Visual Odometry Revisited: What Should Be Learnt?(2020.2)
  20. 使用H5中的video标签时,页面中间显示“暂停”图标;点击播放,图标消失;点击暂停,图标出现(play、pause、ended)

热门文章

  1. copy_to_user,copy_from_user,get_user,put_user函数比较
  2. CM3中数据传输对齐/非对齐方式
  3. 【windows核心编程】线程局部存储TLS
  4. 关于用Java写的贪吃蛇游戏的一些感想
  5. archlinux 更新错误 Unrecognized archive format
  6. httpclient 在获取返回值时,使用getResponseBody触发警告的问题
  7. 12、基于yarn的提交模式
  8. LuoguP1402 酒店之王
  9. DllRegisterServer的调用失败的问题解决方法
  10. git与svn, tfs等源代码管理器的协同