题目:排序疑惑

问题描述:


解题思路:

        做的时候没想到,其实这是以贪心题。我们可以每次排最大的区间(小于n,即n-1大的区间),再判断是否有序 。因此只需要分别判断排(1~n-1)和(2~n)这两个区间时整个数组是否能非降序。

        注意点:1.非降序是指等于和升序两种情况。

                       2.每次判断要注意恢复原来数组,避免继承(AC代码一)


AC代码:

        1:手动判断

#include<bits/stdc++.h>
using namespace std;
const int N = 1e6 + 9;
int a[N];
int b[N];void slove(){int n;cin >> n;for(int i = 1; i <= n; i++)cin >> a[i];for(int i = 1; i <= n; i++)b[i] = a[i];  // 复制一份原数组if (n == 1){cout << "YES" << '\n';return ;}int k = 2;while(k > 0){for(int i = 1; i <= n; i++)b[i] = a[i];  // 恢复原数组状态sort(b + k, b + k + n - 1);for(int i = 1; i < n; i++){if(b[i] > b[i + 1])break;if(i == (n-1)){cout << "YES" << '\n';return ;	} }k--;}	cout << "NO" << '\n';return ;
}int main()
{int t;cin >> t;while(t--){slove();}return 0;
}

        2:利用*max_element,*min_element

#include<bits/stdc++.h>
using namespace std;
const int N = 1e6;
int a[N];void slove()
{int n;cin >> n;for(int i = 1; i <= n; i++)cin >> a[i];for(int i = 1; i <= 2; i++){if(i == 1 && a[n] >= *max_element(a + 1, a + n))  // 等价于给1~n-1排序,这段区间的最大值小于等于a[n]就表明其为非降序{cout << "YES" << '\n'; return ;} if(i == 2 && a[1] <= *min_element(a + 2, a + n + 1))  // 同理{cout << "YES" << '\n';return ;}}cout << "NO" << "\n";
}
int main()
{int t;cin >> t;while(t--){slove();}return 0;
}

知识点:贪心

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/7027.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

我独自升级崛起下载教程 我独自升级崛起一键下载

动作RPG游戏基于广大喜爱的动画和在线漫画《我独自升级崛起》在5月8日&#xff0c;这款新的游戏首次在全球亮相&#xff0c;意在给那些对游戏情有独钟的玩家带来更加丰富和多种多样的游戏体验。这个网络武侠题材的游戏设计非常具有创意&#xff0c;其主要故事围绕着“独孤求败”…

商业银行业务文件归档范围和档案保管期限

商业银行业务文件归档范围和档案保管期限 对公信贷业务文件归档范围和档案保管期限表 序号 归档范围 保管期限 备注 1 借款人、担保人基本资料 1.1 营业执照或事业法人证书 10年 1.2 法人授权委托证明书 10年 1.3 法定代表人身份证明 10年 1.4 特殊…

Dataframe数据类型相关问题汇总及处理方法

1. dataframe结构下有一列数据&#xff0c;有一部分是int类型&#xff0c;另一部分是object类型。当数据是int类型时&#xff0c;返回其本身&#xff0c;当是object类型时&#xff0c;采用其他处理方式&#xff1b; 使用lambda 和isinstance来实现&#xff1a; isinstance(x,…

数据分析——业务指标分析

业务指标分析 前言一、业务指标分析的定义二、业务问题构建问题构建的要求 三、业务问题的识别在识别问题的阶段对于企业内部收益者的补充 四、竞争者分析竞争者分析的内容竞争者分析目的案例 五、市场机会识别好的市场机会必须满足的条件市场机会案例 六、风险控制数据分析师常…

微信小程序开发:揭秘路由与页面跳转的艺术

微信小程序开发&#xff1a;揭秘路由与页面跳转的艺术 引言 在微信小程序的开发过程中&#xff0c;页面间的路由与跳转是构建用户交互体验的关键一环。不同于传统的Web开发&#xff0c;微信小程序的路由系统有其独特之处。本文将深入探讨微信小程序中路由的基本概念、作用以及…

【字符串】Leetcode 二进制求和

题目讲解 67. 二进制求和 算法讲解 为了方便计算&#xff0c;我们将两个字符串的长度弄成一样的&#xff0c;在短的字符串前面添加字符0&#xff1b;我们从后往前计算&#xff0c;当遇到当前计算出来的字符是> 2’的&#xff0c;那么就需要往前面进位和求余 注意&#xf…

【个人博客搭建】(18)使用Quartz.NET 定时备份数据库

Quartz.NET在系统主要承担的一些关键功能&#xff1a; 任务调度&#xff1a;Quartz.NET 允许开发人员创建、调度和管理定时任务&#xff0c;支持简单触发器和Cron表达式等多样化的触发策略。灵活性&#xff1a;Quartz.NET 提供了灵活的任务安排机制&#xff0c;不仅支持基于时间…

在企业中软件产品测试报告可以运用的场景

在企业应用场景中&#xff0c;测试报告的应用场景十分广泛且重要。以下是几个主要的应用场景&#xff1a; 产品质量评估与保证&#xff1a;测试报告是企业评估软件或产品质量的重要依据。通过测试报告&#xff0c;企业可以了解产品在不同场景下的性能表现、安全性、稳定性以及…

1.4 初探JdbcTemplate操作

实战目的 掌握Spring框架中JdbcTemplate的使用&#xff0c;实现对数据库的基本操作。理解数据库连接池的工作原理及其在实际开发中的重要性。通过实际操作&#xff0c;加深对Spring框架中ORM&#xff08;对象关系映射&#xff09;的理解。 关键技术点 JdbcTemplate操作&…

辐射类案例分析

辐射类案例分析 1.1 接地对辐射实验的影响 金属外壳接地已经成为了一种共识&#xff0c;很多人可能会认为金属外壳就该接地&#xff0c;接地可以改善EMC性能&#xff0c;对于抗干扰类实验&#xff0c;情况可能是这样&#xff0c;但是对于辐射类实验而言&#xff0c;有时候会有…

Java八股文系列之五(分布式事务)

什么是分布式事务 事务是一个程序执行单元&#xff0c;里面的所有操作要么全部执行成功&#xff0c;要么全部执行失败。在分布式系统中&#xff0c;这些操作可能是位于不同的服务中&#xff0c;那么如果也能保证这些操作要么全部执行成功要么全部执行失败呢&#xff1f;这便是…

直播预告|第一批 Vision Pro 开发者开始弃坑了吗? 本周六一起听听三位 XR 开发者的真实想法!

随着技术的进步&#xff0c;扩展现实&#xff08;XR&#xff09;行业正在迅速发展&#xff0c;成为连接现实与虚拟世界的桥梁。XR 技术&#xff0c;包括虚拟现实&#xff08;VR&#xff09;、增强现实&#xff08;AR&#xff09;和混合现实&#xff08;MR&#xff09;&#xff…

Netty实现TCP代理

netty实现TCP代理通信 最近基于netty写了一个通信项目,发现netty还是很强的,就是API用的比较繁琐,当然熟练了之后就好了,实现了一个TCP代理的功能,其实原理比较简单,基本步骤: netty监听服务端口接受来自客户端的连接创建客户端连接代理服务器将连接、断开、接受消息、…

Web测试需要测试什么

Web测试可以涵盖以下方面的测试&#xff1a; 1.功能测试&#xff1a;确保Web应用的各项功能按照需求规格说明书的要求正常工作。测试包括用户注册、登录、搜索、数据提交、页面导航等功能。 2.用户界面测试&#xff1a;验证Web应用的用户界面是否符合设计和用户体验要求。测试…

C++中的函数签名

前言&#xff1a; 很多C初学者会发现函数签名这一概念在C的学习过程中经常出现&#xff0c;然而很多人往往不太了解函数签名包括些什么&#xff0c;本文章将从一个初学者的角度出发&#xff0c;详细解释函数签名这一概念。 在C中&#xff0c;函数签名用于唯一地识别函数重载。…

【0day】湖南建研工程质量检测系统InstrumentUsageRecordExport接口处存在任意文件读取漏洞

免责声明&#xff1a;文章来源互联网收集整理&#xff0c;请勿利用文章内的相关技术从事非法测试&#xff0c;由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失&#xff0c;均由使用者本人负责&#xff0c;所产生的一切不良后果与文章作者无关。该…

MySQL Binlog:解锁数据库变更的时间之门

MySQL Binlog&#xff08;Binary Log&#xff09;是 MySQL 数据库的一项重要功能&#xff0c;用于记录数据库的变更操作&#xff0c;包括对数据的插入、更新和删除等操作。 Binlog 不仅可以用于数据恢复和备份&#xff0c;还可以用于实现数据库的闪回&#xff08;rollback&…

2024-05-06 问AI: 介绍一下深度学习中的LSTM网络

文心一言 当谈到深度学习中的LSTM&#xff08;Long Short-Term Memory&#xff09;网络时&#xff0c;它是一种特殊的循环神经网络&#xff08;RNN&#xff09;架构&#xff0c;旨在解决传统RNN在处理长序列时遇到的梯度消失和梯度爆炸问题。LSTM网络因其能够捕捉序列数据中的…

Leetcode编程练习

面试题-消失的数字 . - 力扣&#xff08;LeetCode&#xff09; class Solution { public:void reverse(vector<int>& nums, int start, int end) {while (start < end) {swap(nums[start], nums[end]);start 1;end - 1;}}void rotate(vector<int>& …

Rust语言系统编程实战(小北学习笔记)

前言 进入大学以来&#xff08;计算机应用技术——大数据方向&#xff09;&#xff0c;就像很多程序猿&#x1f412;一样&#xff0c;小北开始每学期学习一种新的编程语言。通过学习另一个编程语言&#xff0c;可以了解很多规范和规则&#xff0c;并得到了一些想法&#xff0c;…