贪心算法----最大数

今日题目:leetcode179------点击跳转题目

分析:

要把这些数组组成最大的数,首先我们把数字转化为字符串,根据自定义的排序规则把这些字符串字数排列,再用一个字符串接受这些字符串数字拼接成最大的字符串数字

排序规则:

对于两个字符串数字s1和s2,有两种拼接方式:s1+s2 或 s2+s1,如果前者更大,那么就让s1在s2的前面,如果后者更大,就让s2在s1的前面

代码:

class Solution {
public:static bool cmp(string s1, string s2){return s1 + s2 > s2 + s1;}string largestNumber(vector<int>& nums) {vector<string> v_str;for(auto x : nums) {string str = to_string(x);v_str.push_back(str);}sort(v_str.begin(),v_str.end(),cmp);string ans;for(auto& x : v_str){ans += x;}//特判:如果第一个就是0,说明后面的也都是0,只用输出一个0才符合数字特征if(ans[0] == '0') ans = "0";return ans;}
};

tips1:关于sort的自定义排序

bool cmp(T a,T b);
sort(左区间,右区间,cmp);

在自定义排序时,cmp函数的返回值用于判断两个元素是否需要交换顺序。如果cmp函数返回true,则表示两个元素a、b的顺序不变,不需要交换;如果cmp函数返回false,则表示两个元素a、b的顺序需要交换,sort函数会将它们交换位置。

我们只需根据想要的排序规则,来判断两个元素如果满足排序规则,就返回true,反之false

本题中,如果s1+s2 > s2+s1 ,则说明满足排序规则,返回true,故而我们可以直接返回这个表达式的bool值即可

tips2:为什么cmp函数要设置成静态函数?

在 C++ 中,sort函数需要一个普通的函数指针(或者可调用对象,比如 lambda 表达式、函数对象等),而不是类成员函数指针。

类成员函数(非静态)与普通函数有一个重要的区别:类成员函数隐式地传递了一个指向调用对象的指针(通常称为this指针)。因此,成员函数的签名与普通函数的签名不同,不能直接作为一个普通函数指针传递。

静态成员函数不依赖于特定对象,它们不需要this指针。因此,它们的签名与普通函数相同,可以作为普通函数指针传递。这就是为什么在这个例子中,cmp函数需要声明为静态成员函数的原因。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/838113.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

秋招算法复习——5/15——三数之和

文章目录 问题描述思路分析实现代码分析与总结 问题描述 思路分析 三个之和为零&#xff0c;即a b c 0 &#xff0c;将这个拆解为b c -a &#xff0c;那就变成了两数之和问题。两重指针的模版来解决。 虽然列表中存在重复的数字&#xff0c;但是结果不允许存在重复的组合…

Find My OBD|苹果Find My技术与OBD结合,智能防丢,全球定位

OBD是英文On-Board Diagnostics的缩写&#xff0c;中文翻译为“车载自动诊断系统”。这个系统将从发动机的运行状况随时监控汽车是否尾气超标&#xff0c;一旦超标&#xff0c;会马上发出警示。当系统出现故障时&#xff0c;故障(MIL)灯或检查发动机(Check Engine)警告灯亮&…

电脑压缩图片怎么压缩?简单高效的压缩技巧

当我们将一些图片上传到各大网站的时候&#xff0c;经常会被提示图片大小超过网站的限制而被禁止上传&#xff0c;其实这是网站的一种防御措施&#xff0c;防止大量体积太大的图片占用了网站服务器的存储空间&#xff0c;从而影响用户体验&#xff0c;所以为了解决这个问题&…

vivo上下而求索

为一台手机&#xff0c;消费者能期待一整年。今天&#xff0c;在数码圈能有这种待遇的品牌&#xff0c;也许只有两个&#xff1a;苹果&#xff0c;以及vivo。 5月13日晚&#xff0c;vivo召开“影像新蓝图暨X系列新品发布会”&#xff0c;正式带来vivo X100s、vivo X100s Pro和v…

纯血鸿蒙APP实战开发——阅读翻页方式案例

介绍 本示例展示手机阅读时左右翻页&#xff0c;上下翻页&#xff0c;覆盖翻页的功能。 效果图预览 使用说明 进入模块即是左右翻页模式。点击屏幕中间区域弹出上下菜单。点击设置按钮&#xff0c;弹出翻页方式切换按钮&#xff0c;点击可切换翻页方式。左右翻页方式可点击翻…

python高级爱心代码

python高级爱心代码实现&#xff1a; import turtle import random # 设置画布 screen turtle.Screen() screen.bgcolor("black") # 创建画笔 pen turtle.Turtle() pen.speed(0) pen.color("red") pen.penup() # 移动画笔到起始位置 pen.goto(0, -20…

构建企业的多分支网络,你可以有这些选择

为企业构建稳定、灵活的网络&#xff0c;是企业IT人员非常重要的基础工作之一。对于多分支企业而言&#xff0c;总部与各分支之间需要进行数据互联和监管&#xff0c;所以大多面临组网需求。多分支企业组网是指企业总部与分公司、工厂、门店等多点之间的网络组建&#xff0c;不…

白鹿以前的短视频:四川京之华锦信息技术公司

白鹿以前的短视频&#xff1a;时光剪影中的创意火花与成长轨迹 在短视频风起云涌的互联网时代&#xff0c;每一位创作者的早期作品都如同时间胶囊&#xff0c;封存着最初的创意与梦想。提及“白鹿”这一名字&#xff0c;不少人心中会立刻浮现出那个凭借独特风格和不懈努力&…

AI 一键生成高清短视频,视频 UP 主们卷起来...

现在短视频越来越火&#xff0c;据统计&#xff0c;2023年全球短视频用户数量已达 10 亿&#xff0c;预计到2027年将突破 24 亿。对于产品展示和用户营销来说&#xff0c;短视频已经成为重要阵地&#xff0c;不管你喜不喜欢它&#xff0c;你都得面对它&#xff0c;学会使用它。…

这些网站我愿称之为做答辩PPT的神

很多快要毕业的同学在做答辩PPT的时候总是感觉毫无思路&#xff0c;一窍不通。但这并不是你们的错&#xff0c;对于平时没接触过相关方面&#xff0c;第一次搞答辩PPT的人来说&#xff0c;这是很正常的一件事。一个好的答辩PPT可以根据以下分为以下几部分来写。 1.研究的背景和…

安防视频汇聚/智能分析云平台EasyCVR调用localfile接口会返回日志的问题该如何解决?

视频汇聚/安防视频融合云平台EasyCVR视频监控系统支持多协议接入、兼容多类型设备&#xff0c;平台能在复杂的网络环境中&#xff08;专网、局域网、广域网、VPN、公网等&#xff09;将前端海量的设备进行统一集中接入与视频汇聚管理。视频监控/集中存储系统EasyCVR平台可支持国…

DBeaver配置离线驱动

因为部署的服务器为无网环境&#xff0c;所以在服务器上使用DBeaver需要配置离线驱动 我们在有网的环境下&#xff0c;安装DBeaver。把驱动下载下来&#xff0c;然后再拷贝到没网的设备上 一、下载驱动 1.在有网的设备上&#xff0c;打开DBeaver 2.找到窗口&#xff0c;选择…

使用 Gin-Docs 自动生成 API 文档

该插件移植自 Python 的 Flask-Docs&#xff0c;可以根据代码注释生成文档页面&#xff0c;支持离线文档下载和生成&#xff0c;支持在线调试&#xff0c;支持密码认证。 Gin-Docs Gin API 文档自动生成插件 特性 根据代码注释自动生成 Markdown 文档支持离线 Markdown 文档下…

SAP BSEG VS ACDOCA 差异

温习一下 ACDOCA VS BSEG matinal&#xff1a;S4 HANA 详解ACDOCA与BSEG的区别都在这了_sap acdoca-CSDN博客

【PDF技巧】PDF如何解密?

PDF文件设置了加密&#xff0c;需要密码才能够打开文件或者编辑文件&#xff0c;那么如何解密PDF密码&#xff1f;今天我们来一起学习一下。 首先是在已知密码的情况下&#xff0c;PDF文件中的打开密码或者是限制编辑&#xff0c;想要解密PDF密码&#xff0c;我们只需要在PDF编…

网站DDoS攻击应对策略:全面防护与恢复指南

随着互联网的发展&#xff0c;网络安全问题日益凸显&#xff0c;其中DDoS&#xff08;分布式拒绝服务&#xff09;攻击成为了网站安全的主要威胁之一。当网站遭受DDoS攻击时&#xff0c;可能会面临服务中断、性能下降、数据泄露等严重后果。因此&#xff0c;了解并掌握DDoS攻击…

达梦(DM) SQL查询及联合查询

达梦DM SQL查询及联合查询 查询结果排序多表联合查询 这里继续讲解DM数据库的Sql查询操作 查询结果排序 为提高查询结果可读性&#xff0c;我们可以对查询结果按照一定顺序排列&#xff0c;或者也可以将列名替换成数字&#xff0c;例如 ORDER BY 1 DESC&#xff0c;意思是按第…

搭建域环境

文章目录 配置域控网络安装DNS服务安装域控新建用户新建域内机器 windows server 2008是基于windows vista开发的&#xff0c;windows server 2008 r2是基于Win 7开发的。域控为windows server 2008. 配置域控网络 在网络共享中心配置域控IP&#xff0c;这里设置域控IP为&…

【WEB前端2024】开源智体世界:乔布斯3D纪念馆-第22课-烟花插件的制作

【WEB前端2024】开源智体世界&#xff1a;乔布斯3D纪念馆-第22课-烟花插件的制作 使用dtns.network德塔世界&#xff08;开源的智体世界引擎&#xff09;&#xff0c;策划和设计《乔布斯超大型的开源3D纪念馆》的系列教程。dtns.network是一款主要由JavaScript编写的智体世界引…