当前位置: 首页 > news >正文

贪心算法学习——最大数

目录

​编辑

一,题目

二,题目接口

三,解题思路级代码


一,题目

给定一组非负整数 nums,重新排列每个数的顺序(每个数不可拆分)使之组成一个最大的整数。

注意:输出结果可能非常大,所以你需要返回一个字符串而不是整数。

二,题目接口

class Solution {public:string largestNumber(vector<int>& nums) {}};

三,解题思路级代码

这道题其实很好解决,关键步骤如下:

1.将我们的每一个数字转换成string类型的元素(注意不要转换为char类型,因为char类型转换时看的是ASSICA码)。

2.在将我们的数字转换成为字符串以后,我们便可以使用sort函数重写一个比较函数便可以得到答案了。

比较规则:

    首先我们先设两个数:a,b。先组成一个数ab.如果ab>ba那我们便可以不改变字符a和b的位置。如果ab<ba那我们就要改变位置变为ba。对于每一个字符串,sort函数都会使用字典序的方式帮我们排序。

代码如下:

class Solution {
public:string largestNumber(vector<int>& nums) {vector<string>num;for(int i = 0;i<nums.size();i++)//将数字转换成为string类型。{num.push_back(to_string(nums[i])) ;}sort(num.begin(),num.end(),[](const string& s1,const string& s2)//重新实现一个比较规则{return s1+s2>s2+s1;});string str;if(num[0] == "0")//如果第一个数字都是"0"的话那就肯定是一个0或者一串0的字符串。{return "0";//返回0}for(auto e:num)//如果不是那就取出str中的元素,给到str然后返回str。{str+=e;}return str;}
};

当然,在sort函数中重新实现的比较规则可能比较抽象,现在来个正常的:

class Solution {
public:static bool compare(const string& s1,const string s2)//重定义比较函数{return s1+s2>s2+s1;}string largestNumber(vector<int>& nums) {vector<string>ret;for(int i = 0;i<nums.size();i++){ret.push_back(to_string(nums[i]));}sort(ret.begin(),ret.end(), compare);//使用sort实现排序string str;for(auto& x:ret){str+=x;}if(str[0] == '0'){return "0";}return str;}
};

相关文章:

贪心算法学习——最大数

目录 ​编辑 一&#xff0c;题目 二&#xff0c;题目接口 三&#xff0c;解题思路级代码 一&#xff0c;题目 给定一组非负整数 nums&#xff0c;重新排列每个数的顺序&#xff08;每个数不可拆分&#xff09;使之组成一个最大的整数。 注意&#xff1a;输出结果可能非常大…...

next项目部署到云服务器上(手动)

准备环境: 云服务器 ECS,服务器安装好了docker 自己的next项目 开始: 1.在next项目根目录下创建Dockerfile文件 FROM node:18-alpine AS base# Install dependencies only when needed FROM base AS deps # Check https://github.com/nodejs/docker-node/tree/b4117f9333d…...

CG Magic分享3dmax软件安装与打开文件转圈圈怎么办?

大家使用3dmax软件时&#xff0c;尤其&#xff0c;是初学者无论是安装3dmax软件还是打开max文件时&#xff0c;会遇到一类问题&#xff1a; 3dmax一直转圈不动&#xff1f; 3dmax总是转圈怎么办 大家遇到3dmax一直转圈圈是如何解决的呢&#xff1f;小编这里整理了一些3dmax软…...

京东(天猫)数据分析:2023下半年茶饮料市场高速增长,东方树叶一骑绝尘

当前在食品饮料行业中&#xff0c;整体的增长放缓&#xff0c;且各个细分品类上都已经充分竞争。但茶饮料市场例外&#xff0c;近两年呈现高增长的态势&#xff0c;一来取决于行业头部企业也在积极推动茶饮料不断升级&#xff0c;另外是主打更健康、更时尚的茶饮料深受年轻消费…...

软件测试之【单元测试、系统测试、集成测试】

一、单元测试的概念 单元测试&#xff08;Unit Testing&#xff09;是对软件基本组成单元进行的测试&#xff0c;如函数&#xff08;function或procedure&#xff09;或一个类的方法&#xff08;method&#xff09;。当然这里的基本单元不仅仅指的是一个函数或者方法&#xff…...

安装 tensorflow==1.15.2 遇见的问题

一、直接安装 命令&#xff1a;pip install tensorflow1.15.2 二、换 阿里云 镜像源 命令&#xff1a;pip install -i http://mirrors.aliyun.com/pypi/simple tensorflow1.15.2 三、换 豆瓣 镜像源 命令&#xff1a;pip install http://pypi.douban.com/simple tensorflow1…...

OJ刷题 第十八篇(递归篇)

34101 - 全排列问题&#xff08;目前遇到最难的一个递归&#xff09; 时间限制 : 1 秒 内存限制 : 128 MB 输出自然数 1 到 n 所有不重复的排列&#xff0c;即 n 的全排列&#xff0c;要求所产生的任一数字序列中不允许出现重复的数字。 输入 n(1≤n≤9) 输出 由 1&#xf…...

互联网产品说明书指南,附撰写流程与方法

产品说明书&#xff0c;对于普通产品而言&#xff0c;再常见不过。药物、电器、电子产品等产品在正式出售时&#xff0c;往往都会附带一份产品说明书&#xff0c;以此告诉用户这个产品的功能与特性&#xff0c;并指导用户如何来使用这个产品。 产品说明书 那么&#xff0c;对于…...

从JVM方面解释java传递问题

前言&#xff1a; Java传递问题&#xff0c;网上解释的比较多&#xff0c;大多是从代码和传递的规范的层次来解释。前段时间&#xff0c;自己也一直在思考这个问题&#xff0c;大部分的解释让我很难印象深刻&#xff0c;经常忘&#xff0c;刚好看过一点jvm方面的书&#xff0c…...

Oracle查询用户所有表的语句

下面为您介绍的语句用于实现Oracle查询用户所有表&#xff0c;如果您对oracle查询方面感兴趣的话&#xff0c;不妨一看。 -- 查询所有用户的表,视图等 select * from all_tab_comments -- 查询本用户的表,视图等 select * from user_tab_comments --查询所有用户的表的列…...

Python轮廓追踪【OpenCV形态学操作】

文章目录 概要代码运行结果 概要 一些理论知识 OpenCV形态学操作理论1 OpenCV形态学操作理论2 OpenCV轮廓操作|轮廓类似详解 代码 代码如下&#xff0c;可以直接运行 import cv2 as cv# 定义结构元素 kernel cv.getStructuringElement(cv.MORPH_RECT, (3, 3)) # print kern…...

安全狗安装

安装waf 关闭apache程序及httpd.exe进程; 运行cmd&#xff0c;cd进入apache/bin文件夹目录&#xff0c; 执行httpd.exe -k install -n apache2.4.39; 启动apache,启动phpstudy 安全狗安装服务名称填写apache2.4.39; 安装安全狗之后就会提示报错 可以设备黑白名单...

HTTP发起请求与收到响应的大致过程

可以《《透视 HTTP 协议》Windows 10 搭建最小实验环境》搭建环境&#xff0c;之后才能进行下边的操作。 1.鼠标左键点击两下www目录下的start.bat批处理文件。 2.打开Wireshark&#xff0c;然后选择Adapter for loopback traffic capture。 3.然后把tcp.port 80 || udp.…...

c++继承的小细节

子类不会继承父类的构造函数&#xff0c;但是会调用父类无参数的构造函数。调用父类构造方法&#xff0c;可以在子类的构造函数后加冒号和要调用的构造方法。子类转化为父类&#xff0c;或者父类转换为子类后&#xff0c;虚函数列表也被转换。...

【分享】7-Zip压缩包的密码可以取消吗?

7-Zip压缩包设置了“密码保护”&#xff0c;后面又不想要了&#xff0c;可以取消吗&#xff1f; 首先&#xff0c;我们要分两种情况来看&#xff0c;是记得密码&#xff0c;但不想每次打开压缩包都要输入密码&#xff0c;所以想取消密码&#xff0c;还是把密码忘记了所以想取消…...

learning rate

这里写目录标题 learning rate单一固定&#xff08;one-size-fits-all&#xff09;的学习率Model训练到驻点很困难&#xff08;学习率太大不能收敛&#xff0c;学习率太小收敛太慢&#xff09; 如何客制化学习率&#xff1f;- 引入参数σσ常见的计算方式 - Root mean square&a…...

小型气象站数据采集网关准确监测雨量和风速

随着科技的发展&#xff0c;人们对天气信息的需求也愈发增加。天气是每个人生活中不可或缺的一部分&#xff0c;了解准确的天气信息有助于我们做出合理的决策和安排。在小型气象站数据采集中&#xff0c;一个关键的环节是监测雨量和风速。而小型气象站数据采集网关的出现&#…...

C++常见容器实现原理

引言 如果有一天&#xff01;你骄傲离去&#xff01;&#xff08;抱歉搞错了&#xff09;如果有一天&#xff0c;你在简历上写下了这段话&#xff1a; 那么你不得不在面试前实现一下STL常见的容器了。C的常用容器有&#xff1a;vector、string、deque、stack、queue、list、se…...

Mysql数据库 5.SQL语言聚合函数 语言日期-字符串函数

一、聚合函数 SQL中提供了一些可以对查询的记录的列进行计算的函数——聚合函数 1.count&#xff08;&#xff09; 统计函数&#xff0c;统计满足条件的指定字符的值的个数 统计表中rebirth_mood个数 select count(列名) from 表名; #统计表中rebirth_namelcl的个数 select …...

使用Linux JumpServer 堡垒机进行远程访问

文章目录 前言1. 安装Jump server2. 本地访问jump server3. 安装 cpolar内网穿透软件4. 配置Jump server公网访问地址5. 公网远程访问Jump server6. 固定Jump server公网地址 前言 JumpServer 是广受欢迎的开源堡垒机&#xff0c;是符合 4A 规范的专业运维安全审计系统。JumpS…...

终极指南:10分钟掌握SPT-AKI存档编辑器完整使用教程

终极指南&#xff1a;10分钟掌握SPT-AKI存档编辑器完整使用教程 【免费下载链接】SPT-AKI-Profile-Editor Программа для редактирования профиля игрока на сервере SPT-AKI 项目地址: https://gitcode.com/gh_mirrors/sp/…...

Applite:macOS软件管理的最佳图形化方案,告别繁琐命令行

Applite&#xff1a;macOS软件管理的最佳图形化方案&#xff0c;告别繁琐命令行 【免费下载链接】Applite User-friendly GUI macOS application for Homebrew Casks 项目地址: https://gitcode.com/gh_mirrors/ap/Applite 还在为macOS软件安装更新而烦恼吗&#xff1f;…...

基于RP2040与CircuitPython的HDMI倒计时器:RTC与DVI原生输出实践

1. 项目概述与核心价值如果你手头有一块带HDMI输出的微控制器开发板&#xff0c;比如Adafruit的Feather RP2040 DVI&#xff0c;又恰好需要一个能摆在桌面上、精确到秒的倒计时器&#xff0c;那么今天这个项目就是为你量身定做的。它不仅仅是一个简单的“Hello World”式显示应…...

EL线创客工作坊:从零到一的电致发光项目实践指南

1. 项目概述&#xff1a;为什么EL线工作坊是创客入门的绝佳选择如果你正在寻找一个能让新手快速上手、成品炫酷、且能完美融合电子与手工的创客项目&#xff0c;EL线工作坊几乎是一个无可挑剔的答案。EL&#xff0c;即电致发光&#xff0c;它不像LED那样依赖一个个分立的光点&a…...

自托管链接管理平台Linko:Go+React技术栈部署与核心功能解析

1. 项目概述与核心价值最近在折腾一个挺有意思的开源项目&#xff0c;叫monsterxx03/linko。乍一看这个名字&#xff0c;可能有点摸不着头脑&#xff0c;但如果你经常需要管理一堆链接、书签&#xff0c;或者在做内容聚合、个人知识库&#xff0c;那这个工具很可能就是你一直在…...

KMS智能激活终极指南:如何一键永久激活Windows和Office

KMS智能激活终极指南&#xff1a;如何一键永久激活Windows和Office 【免费下载链接】KMS_VL_ALL_AIO Smart Activation Script 项目地址: https://gitcode.com/gh_mirrors/km/KMS_VL_ALL_AIO 还在为Windows系统激活烦恼吗&#xff1f;每次重装系统后都要重新激活Office&…...

云原生安全工具:保护云原生环境

云原生安全工具&#xff1a;保护云原生环境 一、云原生安全工具概述 1.1 云原生安全工具的定义 云原生安全工具是指专为云原生环境设计的安全工具和解决方案。它们用于保护容器、Kubernetes集群、微服务和Serverless应用的安全。 1.2 云原生安全工具的价值 安全防护&#xff1a…...

用Ruby实现RISC-V模拟器:从指令集架构到交互式教学工具

1. 项目概述&#xff1a;一个为Ruby语言量身打造的RISC-V模拟器如果你是一名Ruby开发者&#xff0c;或者对RISC-V这个新兴的指令集架构充满好奇&#xff0c;那么你很可能已经听说过RuriOSS/rurima这个名字。简单来说&#xff0c;这是一个用Ruby语言实现的RISC-V指令集模拟器。但…...

基于容器技术的在线代码沙盒:架构设计与安全实践

1. 项目概述&#xff1a;一个开箱即用的在线代码运行沙盒最近在折腾一些需要快速验证代码片段、或者给团队做技术分享的场景&#xff0c;我发现一个痛点&#xff1a;环境配置太麻烦了。你想让新人跑个Python脚本&#xff0c;他可能得先装Python、配环境变量、装依赖库&#xff…...

Wedecode:全平台微信小程序源代码反编译与安全审计终极指南

Wedecode&#xff1a;全平台微信小程序源代码反编译与安全审计终极指南 【免费下载链接】wedecode 全自动化&#xff0c;微信小程序 wxapkg 包 源代码还原工具, 线上代码安全审计&#xff0c;支持 Windows, Macos, Linux 项目地址: https://gitcode.com/gh_mirrors/we/wedeco…...