编程经验分享(寻找map中的max与min)——力扣·百战炼磨(一)

2023-10-31

2021/4/14

力扣第47场双周赛——虚拟竞赛

第三题 所有子字符串美丽值之和

力扣 1781

以下经验来自于对该题目的解决:

一个字符串的 美丽值 定义为:出现频率最高字符与出现频率最低字符的出现次数之差。

比方说,“abaacc” 的美丽值为 3 - 1 = 2 。 给你一个字符串 s ,请你返回它所有子字符串的 美丽值 之和。

示例 1:

输入:s = “aabcb” 输出:5 解释:美丽值不为零的字符串包括
[“aab”,“aabc”,“aabcb”,“abcb”,“bcb”] ,每一个字符串的美丽值都为 1 。 示例 2:

输入:s = “aabcbaa” 输出:17

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/sum-of-beauty-of-all-substrings
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

本体目标在于对每个可能的子字符串进行一次“美丽值”的查找,而所需解决的关键点在于如何优化寻找使其不超时。

以下是我对“美丽值”的查找函数,是一段很弱智的查找方式
是一段很简朴,很入门的查找方式

for(int i=left;i<=right;i++){
	if(hash[s[i]]>Max)Max=hash[s[i]];
	if(hash[s[i]]<Min)Min=hash[s[i]];
}

但很不幸的是我的 弱智 简朴代码没能通过,它超时了。

在这种情况下我前往原题寻找解决方案,发现了力扣用户Hanxin的解题代码。

以下是力扣用户Hanxin的解题代码。

class Solution { public:
int beautySum(string s)
{
int n = s.size();
int res = 0;
for (int L = 0; L < n; L ++)
{
unordered_map<char, int> dic;
for (int R = L; R < n; R ++)
{
dic[s[R]] ++;
if (dic.size() > 0)
{
int min_ = 0x3f3f3f3f;
int max_ = -0x3f3f3f3f;
for (auto [c, freq]: dic)
{
min_ = min(min_, freq);
max_ = max(max_, freq);
}
res += (max_ - min_);
}
}
}
return res;
} };

作者:Hanxin_Hanxin
链接:https://leetcode-cn.com/problems/sum-of-beauty-of-all-substrings/solution/c-python3-ha-xi-zi-dian-tong-ji-bi-jiao-ypqor/
来源:力扣(LeetCode) 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

他的代码和我的代码之间的核心区别在于寻找的方式,他的明显更高效,借此机会我也提升了自己的编程能力(Exp++)

for(auto [c,freq]:hash){
	if(freq>Max)Max=freq;
	if(freq<Min)Min=freq;
}

恭喜看到这里的你掌握了一种map的搜寻方式。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

编程经验分享(寻找map中的max与min)——力扣·百战炼磨(一) 的相关文章

随机推荐

  • 第二十章 Spring5.X bean 的⽣命周期和⼆次处理

    1 Spring bean的 命周期 的init和destroy 法 2 bean的 次加 Spring5 x后置处理器 BeanPostProcessor 什么是BeanPostProcessor 是Spring IOC容器给我们提供的
  • Linux 查看各文件夹大小命令du -h --max-depth=1

    Linux 查看各文件夹大小命令du h max depth 1 du abcDhHklmsSx L lt 符号连接 gt X lt 文件 gt block size exclude lt 目录或文件 gt max depth lt 目录层
  • mysql -n_mysql top n 问题

    日常工作中 经常要查询分组的前几名或查询数据的前几条记录 第5条到第十条 等 TOP N分析法就是通过TOP N算法从研究对象中得到所需的N个数据 并从排序列表中选取最大或最小的N个数据 这就是一个TOP N算法 mysql中用limit
  • (6/300)一阶线性非齐次常微分方程的通解

    一阶线性非齐次常微分方程的通解 首先应该认识方程的形式 dy dx P x y Q x 然后就来思考怎么去解这个方程了 我们最终希望是得到一个y f x 的形式 怎么解呢 先通过线性代数的知识进行引入 求AX b的通解 那么我们先求得A 0
  • MATLAB 信号处理仿真入门实验

    MATLAB 信号处理仿真入门实验 实验目的 熟悉 Matlab 工具的基本用法 掌握 Matlab 代码编写方法 理解序列的离散时间傅里叶变换 理解 DFT 结果的频谱能量泄露 理解 DFT 和 DTFT 的对应关系 理解信号加窗的作用
  • ReactNative入门(一)——环境搭建及第一个RN项目—HelloWorld

    ReactNative入门 本篇以及接下来的几篇有关RN的文章 是默认你对前端相关知识如Node React 以及原生移动端Android可以熟练使用的情况下 最起码达到了解会用的程度 为前提的 不然你就需要先去了学习前端 React为主
  • 图片加载框架-Picasso最详细的使用指南

    写在前面 Android 中有几个比较有名的图片加载框架 Universal ImageLoader Picasso Glide和Fresco 它们各有优点 以前一直用的是ImageLoader 做项目中的图片加载 由于作者宣布ImageL
  • 全国职业技能大赛云计算--高职组赛题卷⑤(容器云)

    全国职业技能大赛云计算 高职组赛题卷 容器云 第二场次题目 容器云平台部署与运维 任务2 基于容器的web应用系统部署任务 15分 任务3 基于容器的持续集成部署任务 15分 任务4 Kubernetes容器云平台部署与运维 15分 本任务
  • 目标检测算法部署网页web端2-点击按钮加载本地图像

    上一篇写了页面的html 目标检测算法部署网页web端1 这篇加个如何点击图像加载按钮 显示在页面上 效果如下 代码如下 b b
  • 【Three.js】第十二章 Materials 材质

    12 Materials 材质 介绍 材质用于为几何体的每个可见像素着色 决定每个像素颜色的算法属于着色器中编写的 编写着色器是 WebGL 和 Three js 最具挑战性的部分之一 但不要担心 Three js 有许多带有预制着色器的内
  • 005 python连接hive

    环境安装 hive hive 安装包配置 python配置hive环境pip install sasl pip install thrift pip install thrift sasl pip install PyHive 注 安装sa
  • CVE-2021-31956提权漏洞分析与利用

    声明 以下内容 来自先知社区的任意门作者原创 由于传播 利用此文所提供的信息而造成的任何直接或间接的后果和损失 均由使用者本人负责 长白山攻防实验室以及文章作者不承担任何责任 漏洞介绍 CVE 2021 31956是发生在NTFS sys中
  • 如何使用Git从网站上拉代码文件

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 前言 一 Github项目 二 复制文件下载链接 三 将文件下载到我们自己的文件夹中 总结 前言 很多时候我们想从Github网站找到一个想要的项目文件 想要下载下
  • antdv + moment DatePicker日期组件默认显示当天、当周、当月

    一 当天 两种形式 1 非表单
  • 黑马程序员Javaweb学习笔记01

    该博客主要记录在学习黑马程序员Javaweb过程的一些笔记 方便复习以及加强记忆 系列文章 JavaWeb学习笔记01 BS架构 Maven Tomcat Servlet JavaWeb学习笔记02 request和response Jav
  • HY2120的保护板和充电方案整套电路图

    HY2102保护板电路和9V 20V输入的锂电池充电芯片PW4203电路 HY2102保护板电路和5VV输入的锂电池充电芯片PL7501C电路
  • 已解决Win11报错 OSError: [WinError 1455] 页面文件太小,无法完成操作。

    作者主页 爱笑的男孩 的博客 CSDN博客 深度学习 活动 python领域博主爱笑的男孩 擅长深度学习 活动 python 等方面的知识 爱笑的男孩 关注算法 python 计算机视觉 图像处理 深度学习 pytorch 神经网络 ope
  • GD32ADC+DMA定时电压采集(备份)

    初始化了一个串口 初始化了一个adc 一个dma 一个定时器 一个led 这一套搞懂算是基本入门了呀 include gd32f4xx h include systick h include
  • 2)Cadence design entry hdl Tutorial原理图入门

    从最基本的步骤 新建项目开始 1 1项目的组成 参考库是包含原理图符号 sym 的库 显示在原理图上的元件 代表实际的器件 包含封装型号 a Local libraries design libraries 本地库 设计库 项目自动生成的
  • 编程经验分享(寻找map中的max与min)——力扣·百战炼磨(一)

    2021 4 14 力扣第47场双周赛 虚拟竞赛 第三题 所有子字符串美丽值之和 力扣 1781 以下经验来自于对该题目的解决 一个字符串的 美丽值 定义为 出现频率最高字符与出现频率最低字符的出现次数之差 比方说 abaacc 的美丽值为