news 2026/4/3 7:41:14

leetcode 870. Advantage Shuffle 优势洗牌

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
leetcode 870. Advantage Shuffle 优势洗牌

Problem: 870. Advantage Shuffle 优势洗牌

解题过程

贪心,nums2排序,带上索引的,对nu从小到大遍历的,排序nums1,对每个nu的数字i,从nums1中找到比它大的最小数字,因nu排序了,nums1也排序了,所以两者的索引都只向后移动,并且需要标记nums1的哪些数字被访问过了,最后将nums1中没有被访问过的数字填充到结果数组

Code

class Solution { public: vector<int> advantageCount(vector<int>& nums1, vector<int>& nums2) { sort(nums1.begin(), nums1.end()); vector<pair<int, int>> nu; for(int i = 0; i < nums2.size(); i++) { nu.push_back({nums2[i], i}); } sort(nu.begin(), nu.end()); int n = nums2.size(), j = 0, w; vector<int> ret(n, -1); vector<bool> status(n, false); bool find; for( int i = 0; i < n; i++ ) { find = false; for(w = j; w < n; w++) { if(nu[i].first < nums1[w]) { find = true; break; } } if(find == true) { ret[nu[i].second] = nums1[w]; status[w] = true; j = w + 1; } } vector<int> remain; for( int i = 0; i < n; i++ ) { if(status[i] ==false) { remain.push_back(nums1[i]); } } int cnt = 0; for( int i = 0; i < n; i++ ) { if(ret[i] < 0) { ret[i] = remain[cnt++]; } } return ret; } };
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/3 6:04:35

基于Flexbox的现代化CSS框架:Bulma快速入门指南

Bulma Bulma 是一个基于 Flexbox 的现代化 CSS 框架&#xff0c;专注于提供优雅的 UI 组件和响应式布局解决方案。 功能特性 纯 CSS 框架&#xff1a;项目输出仅为单个 CSS 文件&#xff08;bulma.css&#xff09;&#xff0c;不包含任何 JavaScript&#xff0c;可以与任何 …

作者头像 李华
网站建设 2026/4/1 3:36:41

lemon评测系统在哪下载安全?官方渠道与使用指南

对于想要获取lemon评测系统的用户来说&#xff0c;了解如何安全下载和正确使用这款工具是首要任务。作为一款性能测试软件&#xff0c;它能帮助开发者评估应用程序在不同环境下的运行表现&#xff0c;但在下载和使用过程中需要注意几个关键点。 lemon评测系统是什么软件 lemon评…

作者头像 李华
网站建设 2026/4/1 17:13:29

无缝集成指南,SpringBoot三步接入华为云短信服务

大家好&#xff0c;我是小悟。 华为云短信服务简介 华为云消息&短信服务&#xff08;MSG&SMS&#xff09;为企业提供了稳定、合规的全球短信发送能力。它主要有以下特点&#xff1a; 核心功能&#xff1a;支持发送验证码短信&#xff08;用于登录、注册&#xff09;和通…

作者头像 李华