5561. 获取生成数组中的最大值

问题描述:传送门

思路:

1、vector容器规划大小,通过与运算判断奇偶,递归,最后利用max函数求最值。

代码:

class Solution {public:int getMaximumGenerated(int n) {vector<int> v;v.resize(105);//根据题意,重新规划一下容器大小v[0]=0;v[1]=1;//题意for(int i=2;i<=n;i++){if(i&1){v[i]=v[i/2]+v[(i/2)+1];}else{v[i]=v[i/2];    }}int ans=-1;for(int i=0;i<=n;i++){ans=max(ans,v[i]);}return ans;}
};

1647. 字符频次唯一的最小删除次数

问题描述:传送门

思路:

1、贪心算法+两个map

代码:

class Solution {class Solution {public:int minDeletions(string s) {map<char,int> cnt;//先把每个字母的频数记录一下,example:  abbccdddfor(int i=0;i<s.size();i++){cnt[s[i]]++;//遇到这个字符,频数就++}map<int,int> r;for(auto j:cnt){//j.first统计每个字母,有多少频次,如a=1、bb=2、cc=2,ddd=3;//j.second,有多少个不同字母,符合这个次数,bbcc=2r[j.second]++;//两个不同字母频数相同的+1,r[2]=2;}int ans =0;//统计删除的次数int now=0;//扫数的时候,记录一下当前位置while(r.size()>0){//先保证频次不为nullif(r.rbegin()->second==1){//频次为1,优先出图,如d[3]==1now = r.rbegin()->first;r.erase(r.find(now));//把当前位置,移出去}else{//now代表频次,r[now]代表的是相应频次的,不同字母,数量now =r.rbegin()->first;//形如bb,cc的数,频次now为2,两个频次为2的不同字母,r[2]=2r[now]--;//假如去掉一个字母c,r[2]==1,即bbcif(now!=1){//c侵占了字母a的 r[1]=1;所以r[1]++=2;r[now-1]++;}//直到当前位置频数只剩1时,ans才不用++。如去掉c,只剩a的时候,r[1]=1;ans++;   }}return ans;}
};

2、贪心算法+类似双指针
①先开vector统计每个字母,频数
②频数从大到小排序
③设置当前prt,指向cnt【0】。因为前面从大到小排列了,所以只统计整个字符串里从它往后比他大于等于的数
每次循环时,目前能保留的最大值max给ptr,那么ptr后面的字母,要删除的数,就只能是cnt[i]-ptr。
⑤如果后面的字母都比ptr的频数小,那就让ptr往后面走

参考文献

代码:

class Solution {public:int minDeletions(string s) {vector<int> cnt(26,0);//统计每个字符出现的次数for(auto ch:s){cnt[ch-'a']++;//统计频次}sort(cnt.begin(),cnt.end(),greater<int>());//从大到小排列int ptr =cnt[0];int ans=0;for(int i=1;i<cnt.size()&&cnt[i]>0;i++){//零个数最好不计算进去if(ptr<=cnt[i]){ptr=max(ptr-1,0);//排序到目前,能保留的最大数ans+=cnt[i]-ptr;}else if(ptr>cnt[i]){ptr=cnt[i];//让当前数进位}}return ans;}
};

leetcode 周赛214 学习笔记(5561、1647)相关推荐

  1. Manacher算法学习笔记 | LeetCode#5

    Manacher算法学习笔记 DECLARATION 引用来源:https://www.cnblogs.com/grandyang/p/4475985.html CONTENT 用途:寻找一个字符串的 ...

  2. 【学习笔记】【leetcode分门别类整理】【C++】

    文章目录 参考 一.经典手撕 - 分治 1.1 .原地堆排 1.2 .快排 1.3.归并(逆序对).插入 排序 1.4.并查集. 前缀树 1.5.string类实现 1.6.单例模式 - 懒汉.饿汉 ...

  3. 【学习笔记】【C++】【Leetcode 分门别类讲解】

    目录 概述 一.时间复杂度分析 二.数组问题 1.参考练习题- 双指针-对撞指针 2.双索引技术-滑动窗口 三.查找问题-查找表 1.参考练习题 - 集合与映射 2.set 和 map 2.滑动窗口 ...

  4. 第一次LeetCode周赛心得(力扣-cn周赛,使用python3)

    第一次力扣参赛:第 174 场力扣周赛 第 174 场力扣周赛赛题: https://leetcode-cn.com/circle/discuss/lEfEkb/view/OrAJAh/ 第 174 ...

  5. OpenCV学习笔记(四十六)——FAST特征点检测features2D OpenCV学习笔记(四十七)——VideoWriter生成视频流highgui OpenCV学习笔记(四十八)——PCA算

    OpenCV学习笔记(四十六)--FAST特征点检测features2D 特征点检测和匹配是计算机视觉中一个很有用的技术.在物体检测,视觉跟踪,三维常年关键等领域都有很广泛的应用.这一次先介绍特征点检 ...

  6. python数据分析入门学习笔记儿

    转载: http://www.cnblogs.com/zzhzhao/p/5269217.html 学习利用python进行数据分析的笔记儿&下星期二内部交流会要讲的内容,一并分享给大家.博主 ...

  7. STM32 LCD中英文字符显示学习笔记

    本实验基于STM32 LCD英文字符显示学习笔记. 开发板:野火指南者(STM32F103VE) STM32库版本:STM32F10x_StdPeriph_Lib_V3.5.0 IDE:KEIL5(代 ...

  8. SqlServer学习笔记【暂】

    Sql学习笔记,暂时先保存在着,等不忙了再整理成章节,如果其中有问题的,还请各位大神不吝赐教! 1 --------------------------------------所有的数据基于North ...

  9. ASP.Net MVC开发基础学习笔记(5):区域、模板页与WebAPI初步

    http://blog.jobbole.com/85008/ ASP.Net MVC开发基础学习笔记(5):区域.模板页与WebAPI初步 2015/03/17 · IT技术 · .Net, Asp. ...

最新文章

  1. python中的随机函数怎么用_Python中随机数的使用方法有那些?
  2. Python:Bug 官网不要了,全迁去 GitHub
  3. 计算机和网络历史地位,所谓“运营商的文字游戏”,其实是计算机和网络发展的客观历史导致的...
  4. gz键盘增强小工具_这些不起眼的Mac小工具,能让你的Macbook效率倍增!
  5. QT中事件发送函数sendEvent()、postEvent()详解
  6. gvim for php,转 : Gvim建立IDE编程环境 (Windows篇)
  7. 矩阵论复习-过渡矩阵、生成子空间、表示矩阵、度量矩阵、酉空间、内积
  8. springmvc(4)注解简单了解
  9. redis发布与订阅的实现
  10. 如何在Macbook安装Linux双系统
  11. 爬虫小练(刷访问量)(python+requests(headers+proxy)+Queue+threading)
  12. DirectX11参考资料之美
  13. SOFA原理学习--sofa rpc入门示例
  14. 使用python实现win10系统和arduino usb串口通信
  15. AS01 创建固定资产卡片 BAPI_FIXEDASSET_CREATE1
  16. 认知科学早期的计算机隐喻理论是什么,相对于认知科学,首先我们得从这六个问题着手...
  17. ps4移植android游戏,安卓玩PS4游戏 remote play安装教程
  18. 钣金行业mes解决方案,缩短产品在制周期
  19. opencv以图片名称为索引顺序读取多张图片
  20. python计算利息程序_Python——GUI编程 利息计算器 作业9(python programming)-Go语言中文社区...

热门文章

  1. 这个5.10阿里日不一般!造(躁)起来~淘系的年轻人们!
  2. JavaScript刮奖效果(jquery图片刮奖插件)
  3. 数电实验_时分秒计数器——终极版
  4. 【UEFI基础】UEFI网络框架之概述
  5. 因为你还没有遇到给你三颗痣的人
  6. 基岩版刷铁傀儡机制和Java_我的世界:Java版1.14获得铁傀儡的四种方式,第三种千万别忘记...
  7. 门头沟的《一出好戏》
  8. 提前面试|浙江大学2023年公共管理硕士(MPA)“提前面试”通知
  9. InterValue正式启动主网映射
  10. HAL库开发—基于stm32的智能小家电