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

devtools/2025/1/21 13:46:21/

文章目录

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

题目

给定一组非负整数 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/devtools/152360.html

相关文章

SpringBoot2 + Flowable(UI)

文章目录 引言I 技术栈软件架构基于 Vue.js 和 Element UI 的后台管理系统工程结构II 依赖rest,logic,conf 的依赖工作流flowable jar包flowable-ui所需jar包III 配置jdbc 配置 nullCatalogMeansCurrent = true引言 I 技术栈 软件架构 前端基于vue 、element-ui框架分模块设…

Web开发 -前端部分-CSS-2

一 长度单位 代码实现&#xff1a; <!DOCTYPE html> <html lang"zh-CN"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document<…

计算机毕业设计Django+LSTM模型弹幕情感分析 B站视频数据可视化 B站爬虫 机器学习 深度学习 NLP自然语言处理 大数据毕业设计

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 作者简介&#xff1a;Java领…

完美解决phpstudy安装后mysql无法启动

phpstudy数据库无法启动有以下几个原因。 **一、**自己在电脑上安装了MySQL数据库,MySQL的服务名为MySQL,这会与phpstudy的数据库的服务名发生冲突&#xff0c;从而造成phpstudy中的数据库无法启动&#xff0c;这时我们只需要将自己安装的MySQL的服务名改掉就行。 但是&#…

【Linux】gawk编辑器二

一、变量 gawk编程语言支持两种变量&#xff1a;内建变量和自定义变量。 1、内建变量 gawk使用内建变量来引用一些特殊的功能。 字段和记录分隔符变量 数据字段变量 此变量允许使用美元符号&#xff08;$&#xff09;和字段在记录中的位置值来引用对应的字段。要引用记录…

string底层实现细节

一、部分代码展示 #pragma once #include<cstring> #include<cassert> #include<iostream> using namespace std; namespace bit {class string{public:// 迭代器类指针// 范围for就是在编译时替换成迭代器遍历&#xff0c;*it返回给chtypedef char* iterat…

B站评论系统的多级存储架构

以下文章来源于哔哩哔哩技术 &#xff0c;作者业务 哔哩哔哩技术. 提供B站相关技术的介绍和讲解 1. 背景 评论是 B站生态的重要组成部分&#xff0c;涵盖了 UP 主与用户的互动、平台内容的推荐与优化、社区文化建设以及用户情感满足。B站的评论区不仅是用户互动的核心场所&…

Unity2021.3.13崩溃的一种情况

如果出现如下的报错&#xff0c;可能是软件冲突的原因。自己的原因是使用f.lux这款软件似乎和Unity相互冲突&#xff0c;出现下面报错。 错误信息如上图