179最大数(贪心算法)分析+源码+证明

server/2025/1/31 17:54:13/

文章目录

  • 题目
    • 题目分析
    • 源码
    • 证明
  • 思考

题目

给定一组非负整数 nums,重新排列每个数的顺序(每个数不可拆分)使之组成一个最大的整数。
注意:输出结果可能非常大,所以你需要返回一个字符串而不是整数。
在这里插入图片描述

题目分析

首先这道题的意思是把数组内数组拼接在一起成为最大值。
在这里插入图片描述

算法原理

正常排序的本质:确定元素先后顺序:谁在前,谁在后。
在这里插入图片描述
本题的排序
根据正常排序,和本道题相似。
在这里插入图片描述
思考:1.贪心在哪体现:体现在比较,确定谁前谁后这个过程。
2.这个排序规则,为啥能排序:具有传递性。
eg:
在这里插入图片描述
3.优化:(1)把数转化为字符串,然后拼接字符串,比较字典序。
(2)字符串第一个数为0,结果一定为零
优化如下图:

在这里插入图片描述
在这里插入图片描述

源码

class Solution {
public:string largestNumber(vector<int>& nums) {//优化:把所有的数转换成字符串vector<string> strs;for(int x : nums) strs.push_back(to_string(x));//排序sort(strs.begin(),strs.end(),[](const string& s1,const string& s2 ){return s1 + s2 > s2 + s1;});//提取结果string ret;for(auto& s:strs) ret+=s;if(ret[0]=='0') return "0";return ret;}
};

证明

证明方法:数学知识(离散数学)
补充知识:全序关系(要满足:1.完全性2.反对称性3.传递关系)
在这里插入图片描述

要满足:
1.完全性(能比较大小)
在这里插入图片描述

2.反对称性
在这里插入图片描述

3.传递关系
在这里插入图片描述
证明本道题:
证明出这道题满足:1.完全性2.反对称性3.传递关系。过程如下图:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

思考

以上就是179最大数(算法>贪心算法)分析+源码+证明的全部内容了,非常详细。有啥问题可在评论区留言。喜欢博主的内容,可以一键三连。


http://www.ppmy.cn/server/163848.html

相关文章

探索JavaScript前端开发:开启交互之门的神奇钥匙(二)

目录 引言 四、事件处理 4.1 事件类型 4.2 事件监听器 五、实战案例&#xff1a;打造简易待办事项列表 5.1 HTML 结构搭建 5.2 JavaScript 功能实现 六、进阶拓展&#xff1a;异步编程与 Ajax 6.1 异步编程概念 6.2 Ajax 原理与使用 七、前沿框架&#xff1a;Vue.js …

大数据治理实战:架构、方法与最佳实践

&#x1f4dd;个人主页&#x1f339;&#xff1a;一ge科研小菜鸡-CSDN博客 &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339; 1. 引言 大数据治理是确保数据质量、合规性和安全性的重要手段&#xff0c;尤其在数据驱动决策和人工智能应用日益普及的背景下&…

1、云计算

云是一种基于互联网的计算技术和服务模式&#xff0c;它可以将计算资源、存储资源、软件资源等进行整合和虚拟化&#xff0c;以按需使用、可灵活扩展的方式提供给用户&#xff0c;就像把传统的本地计算资源和服务放到了一个庞大的 “云端”&#xff0c;用户可以通过网络随时随地…

RK3568 opencv播放视频

文章目录 一、opencv相关视频播放类1. cv::VideoCapture 类主要构造方法&#xff1a;主要方法&#xff1a; 2. 视频播放基本流程代码示例&#xff1a; 3. 获取和设置视频属性4. 结合 FFmpeg 使用5. OpenCV 视频播放的局限性6. 结合 Qt 实现更高级的视频播放总结 二、QT中的代码…

动态规划DP 最长上升子序列模型 总览

最长上升子序列模型 1. 最长上升子序列 1.1 怪盗基德的滑翔伞 1.1.1 登山 1.1.2 合唱队形 1.2 友好城市 1.3 最长上升子序列和 1.4 导弹拦截

Dest1ny漏洞库:用友 U8-CRM 系统 ajaxgetborrowdata.php 存在 SQL 注入漏洞

用友U8-CRM系统ajaxgetborrowdata.php存在SQL注入漏洞&#xff0c;文件多个方法存在SQL注入漏洞&#xff0c;未经身份验证的攻击者通过漏洞执行任意SQL语句&#xff0c;调用xp_cmdshell写入后门文件&#xff0c;执行任意代码&#xff0c;从而获取到服务器权限。 hunter app.n…

CISCO路由基础全集

第一章&#xff1a;交换机的工作原理和基本技能_交换机有操作系统吗-CSDN博客文章浏览阅读1.1k次&#xff0c;点赞24次&#xff0c;收藏24次。交换机可看成是一台特殊的计算机&#xff0c;同样有CPU、存储介质和操作系统&#xff0c;只是与计算机的稍有不同。作为数据交换设备&…

Java 生成 PDF 文档 如此简单

嘿&#xff0c;朋友&#xff01;在 Java 里实现 PDF 文档生成那可真是个挺有意思的事儿&#xff0c;今儿个就来好好唠唠这个。咱有不少好用的库可以选择&#xff0c;下面就给你详细讲讲其中两个超实用的库&#xff0c;一个是 iText&#xff0c;另一个是 Apache PDFBox。 用 iTe…