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

贪心算法学习------优势洗牌

目录

一,题目

二,题目接口

三,解题思路和代码

全部代码: 


一,题目

给定两个数组nums1和nums2,nums1相对于nums2的优势可以用满足nums1[i]>nums2[i]的索引i的数目来描述。 返回nums1的任意排序,使其优势最大化。

示例 1:

输入:nums1 = [2,7,11,15], nums2 = [1,10,4,11]
输出:[2,11,7,15]

示例 2:

输入:nums1 = [12,24,8,32], nums2 = [13,25,32,11]
输出:[24,32,8,12]

二,题目接口

class Solution {
public:vector<int> advantageCount(vector<int>& nums1, vector<int>& nums2) {}
};

三,解题思路和代码

 这道题运用的思想其实就是一种博弈思想,在历史上便是有名的田忌赛马问题的思想。

这个田忌赛马思想是这样的:

    1. 首先将田忌的马分为上,中,下等,王上的马分为上,中,下等。

     2.然后再来一个赛马,赛马的思路是这样的:

     我的下等马肯定比不过王上的下等马,所以我的下等马比不过王上的任何一匹马。 这个时候我便用我这条马把王上的上等马拖死。然后我再用我的上等马和王上的中等马赛马,再用我的中等马和王上的下等马赛马。这样我们便可以赢两场,取得赛马的总胜利。

将这个思想运用到我们这道题里面便是这样的一个步骤:

    首先以下面的示例为例:

输入:nums1 = [12,24,8,32],

           nums2 = [13,25,32,11]

输出:[24,32,8,12]

首先,我们先把nums2的下标给插入到数组Index当中。插入后是这样子的:

Index[0,1,2,3]。

 然后,根据nums2的元素大小来对这个下标数组中的元素进行排序。

排序后便成了这个样子:

Index[3,0,1,2]。

然后,我们再定义一个pos指向nums1的元素,left指向Index的最左元素,right指向Index的最右元素。

然后便是如下的在ret数组中的插入逻辑:

 while(pos<nums1.size())//pos代表nums1的下标{if(nums1[pos]<=nums2[index[left]])//当nums1中选择的元素比nums2[]中的元素小的时候,就插入到ret[index[right]]的位置,这个下标处存放的是nums2的最大值。{ret[index[right]] = nums1[pos++];right--;//指向nums2的次大值下标}else{ret[index[left]] = nums1[pos++];//能赢便放在和nums2相对的下标处left++;//指向次小值的下标}}

全部代码: 

class Solution {
public:vector<int> advantageCount(vector<int>& nums1, vector<int>& nums2) {vector<int>index;//下标数组vector<int>ret(nums1.size());//结果数组for(int i = 0;i<nums2.size();i++){index.push_back(i);//将nums2的下标依次插入}sort(index.begin(),index.end(),[&](int i,int j)//并且根据nums数组中的元素的大小比较规则将这个下标数组中的元素排序。{return nums2[i]<nums2[j];});sort(nums1.begin(),nums1.end());//将nums1排序int left = 0,right = nums1.size()-1;//指向index数组的左右两端的元素int pos = 0;//指向排序后的nums的下标while(pos<nums1.size()){if(nums1[pos]<=nums2[index[left]])//在ret中找到合适的位置插入nums1[pos]{ret[index[right]] = nums1[pos++];right--;}else{ret[index[left]] = nums1[pos++];left++;}}return ret;//返回结果}
};

相关文章:

贪心算法学习------优势洗牌

目录 一&#xff0c;题目 二&#xff0c;题目接口 三&#xff0c;解题思路和代码 全部代码&#xff1a; 一&#xff0c;题目 给定两个数组nums1和nums2,nums1相对于nums2的优势可以用满足nums1[i]>nums2[i]的索引i的数目来描述。 返回nums1的任意排序&#xff0c;使其优…...

音视频rtsp rtmp gb28181在浏览器上的按需拉流

按需拉流是从客户视角来看待音视频的产品功能&#xff0c;直观&#xff0c;好用&#xff0c;为啥hls flv大行其道也是这个原因&#xff0c;不过上述存在的问题是延迟没法降到实时毫秒级延迟&#xff0c;也不能随心所欲的控制。通过一段时间的努力&#xff0c;结合自己闭环技术栈…...

Java 算法篇-深入了解二分查找法

&#x1f525;博客主页&#xff1a; 小扳_-CSDN博客 ❤感谢大家点赞&#x1f44d;收藏⭐评论✍ 目录 1.0 二分查找法的说明 2.0 二分查找实现的多种版本 2.1 二分查找的基础版本 2.2 二分查找的改动版本 2.3 二分查找的平衡版本 2.4 二分查找的官方版本 3.0 二分查找的应用 1…...

Data-Centric Financial Large Language Models

本文是LLM系列文章&#xff0c;针对《Data-Centric Financial Large Language Models》的翻译。 以数据为中心的大语言金融模型 摘要1 引言2 背景3 方法4 实验5 结论和未来工作 摘要 大型语言模型&#xff08;LLM&#xff09;有望用于自然语言任务&#xff0c;但在直接应用于…...

【HarmonyOS】服务卡片 API6 JSUI跳转不同页面并携带参数

【关键字】 服务卡片、卡片跳转不同页面、卡片跳转页面携带参数 【写在前面】 本篇文章主要介绍开发服务卡片时&#xff0c;如何实现卡片点击跳转不同页面&#xff0c;并携带动态参数到js页面。在此篇文章“服务卡片 API6 JSUI跳转不同页面”中说明了如果跳转不同页面&#xf…...

SQL server数据库端口访问法

最近数据库连接&#xff0c;也是无意中发现了这个问题&#xff0c;数据库可根据端口来连接 网址:yii666.com< 我用的是sql2014测试的&#xff0c;在安装其他程序是默认安装了sql(sql的tcp/ip端口为xxx)&#xff0c;服务也不相同&#xff0c;但是由于比较不全&#xff0c;我…...

深孔枪钻厂家,科研管理系统思路

序号 名称 参数及技术指标 &#xff08;一&#xff09;系统性能要求 1&#xff0e;系统界面&#xff1a;支持中英文界面自由切换。 2. 系统兼容性&#xff1a;支持主流浏览器&#xff0c;如&#xff1a;IE11 以上、 360 安全浏览器、Firefox、Google Ch…...

【论文阅读笔记】GLM-130B: AN OPEN BILINGUAL PRE-TRAINEDMODEL

Glm-130b:开放式双语预训练模型 摘要 我们介绍了GLM-130B&#xff0c;一个具有1300亿个参数的双语(英语和汉语)预训练语言模型。这是一个至少与GPT-3(达芬奇)一样好的100b规模模型的开源尝试&#xff0c;并揭示了如何成功地对这种规模的模型进行预训练。在这一过程中&#xff0…...

Object常用方法

Object常用方法目录 1. equals(Object obj)&#xff1a; 2. toString()&#xff1a; 3. hashCode()&#xff1a; 4. getClass()&#xff1a; 5. notify() 和 notifyAll()&#xff1a; 6. wait() 和 wait(long timeout)&#xff1a; 7. clone()&#xff1a; 8. fina…...

【VR开发】【Unity】【VRTK】2-关于VR的基础知识

【概述】 在VRTK的实操讲解之前&#xff0c;本篇先介绍几个重要的VR认识。 【VR对各个行业的颠覆】 如果互联网几乎把所有行业都重做了一遍&#xff0c;VR在接下来的几年很可能再把现有的行业都重做一遍&#xff0c;包括但不限于教育&#xff0c;房地产&#xff0c;零售&…...

jeecg-uniapp 转成小程序的过程 以及报错 uniapp点击事件

uniapp 点击事件 tap: 单击事件 confirm: 回车事件 blur:失去焦点事件 touchstart: 触摸开始事件 touchmove: 触摸移动事件。 touchend: 触摸结束事件。 longpress: 长按事件。 input: 输入框内容变化事件。 change: 表单元素值变化事件。 submit: 表单提交事件。 scroll: 滚动…...

Django的静态文件目录(路径)如何配置?

通常用下面的三条语句配置Django的静态文件目录 STATICFILES_DIRS [os.path.join(BASE_DIR, static)] STATIC_URL /static/ STATIC_ROOT os.path.join(BASE_DIR, /static)那么这三条语句分别的作用是什么呢&#xff1f; 请参考博文 https://blog.csdn.net/wenhao_ir/articl…...

函数应用(MySQL)

--数值类函数 --绝对值 select abs(-1) --seiling ceil 向上取整 select ceil(1.1) --floor 向下取整 select floor(1.9); --四舍五入 select round(1.17, 1); --rand 随机数 select rand(rand()*1000); --字符串函数 utf8mb3 utfmb4 select length(小三) --查找字符数…...

数据分析过程中,发现数值缺失,怎么办?

按照数据缺失机制&#xff0c;数据分析过程中&#xff0c;我们可以将其分为以下几类&#xff1a; &#xff08;1&#xff09;完全随机缺失&#xff08;MCAR&#xff09;&#xff1a;所缺失的数据发生的概率既与已观察到的数据无关&#xff0c;也与未观察到的数据无关。 &#x…...

Vue3.0 toRef toRefs :VCA模式

简介 作用&#xff1a; 创建一个ref对象&#xff0c;其value值指向另一个对象中的某个属性 语法&#xff1a; const name toRef(person, name) 应用&#xff1a; 要将响应式对象中的某个属性单独供应给外部使用时 扩展&#xff1a; toRefs与toRef功能一致&#xff0c;但可…...

VS Code提取扩展时出错。XHR failed

需求&#xff1a;想要在扩展中心下载插件&#xff0c;发现报错 原因&#xff1a;vs code之前设置了代理&#xff0c;需要删除即可...

大模型需要哪类服务器

大模型需要高性能的服务器&#xff0c;以支持大规模的计算和存储需求。一般来说&#xff0c;大模型需要以下类型的服务器&#xff1a; 大型机&#xff1a;大型机可以提供强大的计算能力&#xff0c;适合处理大规模的数据和复杂的计算任务。 GPU服务器&#xff1a;GPU服务器可以…...

Java进阶(List)——面试时List常见问题解读 结合源码分析

前言 List、Set、HashMap作为Java中常用的集合&#xff0c;需要深入认识其原理和特性。 本篇博客介绍常见的关于Java中List集合的面试问题&#xff0c;结合源码分析题目背后的知识点。 关于的Set的博客文章如下&#xff1a; Java进阶&#xff08;Set&#xff09;——面试时…...

0基础学习PyFlink——个数滑动窗口(Sliding Count Windows)

大纲 滑动&#xff08;Sliding&#xff09;和滚动&#xff08;Tumbling&#xff09;的区别样例窗口为2&#xff0c;滑动距离为1窗口为3&#xff0c;滑动距离为1窗口为3&#xff0c;滑动距离为2窗口为3&#xff0c;滑动距离为3 完整代码参考资料 在 《0基础学习PyFlink——个数…...

vue3+ts 提取公共方法

因为好多页面都会使用到这个效验规则&#xff0c;封装一个校检规则&#xff0c;方便维护 封装前 封装后...

告别烧录失败!深度解析迪文T5L串口屏(DMG80480T070_05WTR)工程配置与文件系统的那些‘潜规则’

告别烧录失败&#xff01;深度解析迪文T5L串口屏工程配置与文件系统的那些‘潜规则’ 当你第一次拿到DMG80480T070_05WTR这款迪文T5L串口屏时&#xff0c;可能会被它强大的功能所吸引——200MHz双核CPU、24bit真彩色显示、支持多种UI元素和二次开发能力。但很快&#xff0c;你就…...

ipa 覆盖算法参数调优实战:从理论到可视化验证

1. IPA覆盖算法核心参数解析 在机器人路径规划领域&#xff0c;IPA覆盖算法因其高效性和适应性被广泛应用。这个算法的核心在于几个关键参数的协同作用&#xff0c;它们直接影响着机器人的覆盖路径质量和执行效率。让我们先来认识这些"幕后操控者"&#xff1a; cover…...

OFA-VQA镜像可解释性增强:Grad-CAM热力图可视化答案依据区域

OFA-VQA镜像可解释性增强&#xff1a;Grad-CAM热力图可视化答案依据区域 1. 引言&#xff1a;为什么需要可视化VQA模型的决策依据&#xff1f; 当我们使用视觉问答&#xff08;VQA&#xff09;模型时&#xff0c;经常会遇到一个关键问题&#xff1a;模型给出的答案真的可靠吗…...

Phi-3-mini-4k-instruct-gguf代码实例:curl健康检查与supervisor服务管理实操

Phi-3-mini-4k-instruct-gguf代码实例&#xff1a;curl健康检查与supervisor服务管理实操 1. 模型简介与部署准备 Phi-3-mini-4k-instruct-gguf是微软Phi-3系列中的轻量级文本生成模型GGUF版本&#xff0c;特别适合问答、文本改写、摘要整理和简短创作等场景。这个经过优化的…...

京东 SPU/SKU 数据接口全解读:商品详情 API 文档(2026 最新版)

京东商品详情 API 体系以SPU&#xff08;标准产品单元&#xff09;聚合、SKU&#xff08;库存单元&#xff09;明细为核心设计&#xff0c;覆盖商家开放平台&#xff08;JOS&#xff09;、京东联盟两大核心场景&#xff0c;支持单品 / 批量查询、全字段 / 指定字段返回&#xf…...

Qwen2.5-14B-Instruct部署优化:像素剧本圣殿FlashAttention-2加速实测

Qwen2.5-14B-Instruct部署优化&#xff1a;像素剧本圣殿FlashAttention-2加速实测 1. 项目背景与优化目标 像素剧本圣殿是一款基于Qwen2.5-14B-Instruct深度微调的专业剧本创作工具。这款工具将AI推理能力与8-Bit复古美学相结合&#xff0c;为创作者提供沉浸式的剧本开发体验…...

3个核心方案:开源工具ncmdumpGUI如何让网易云音乐文件自由播放

3个核心方案&#xff1a;开源工具ncmdumpGUI如何让网易云音乐文件自由播放 【免费下载链接】ncmdumpGUI C#版本网易云音乐ncm文件格式转换&#xff0c;Windows图形界面版本 项目地址: https://gitcode.com/gh_mirrors/nc/ncmdumpGUI 当我们下载了心爱的音乐&#xff0c…...

第三方软件测评机构中CMA与CNAS资质对软件验收的重要性

CMA与CNAS资质的重要性 在软件项目验收过程中&#xff0c;第三方软件测评机构的CMA&#xff08;中国计量认证&#xff09;与CNAS&#xff08;中国合格评定国家认可委员会&#xff09;资质至关重要。这些资质不仅是机构专业能力的体现&#xff0c;更是确保测试结果公正、准确、可…...

94吨黄金“上链搬家”,手续费仅0.0016%!黄金RWA正在改写跨境资产流动

传统金融数百万美元的物流成本vs区块链毫厘之间的链上费用&#xff0c;资产数字化的未来已来。近日&#xff0c;Tether首席执行官Paolo Ardoino在X平台发文称&#xff1a;过去6个月内&#xff0c;共有价值约94吨黄金的代币化黄金XAUT在链上完成转移&#xff0c;合计手续费仅约0…...

Flink的反压机制

目录 1. 什么是反压? 2. Flink 反压机制的演变 第一代:基于 TCP 的传播(Flink 1.5 之前) 第二代:基于信用制的反压(Flink 1.5+,当前版本) 3. 基于信用制的反压详解 核心组件 工作流程(对应上图) 优势 4. 如何识别和处理反压? 识别(通过 Flink Web UI) …...