程序员面试金典 - 面试题 16.16. 部分排序(排序/不排序)

文章目录

    • 1. 题目
    • 2. 解题
      • 2.1 排序
      • 2.2 不排序

1. 题目

给定一个整数数组,编写一个函数,找出索引 m 和 n ,只要将索引区间 [m,n] 的元素排好序,整个数组就是有序的。
注意:n-m 尽量最小,也就是说,找出符合条件的最短序列。
函数返回值为[m,n],若不存在这样的m和n(例如整个数组是有序的),请返回[-1,-1]。

示例:
输入: [1,2,4,7,10,11,7,12,6,7,16,18,19]
输出: [3,9]
提示:
0 <= len(array) <= 1000000

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/sub-sort-lcci
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

2.1 排序

  • 复制一份原数组,对复制数组排序
  • 将两个数组对比,看不同的部分是什么区间即可
class Solution {
public:vector<int> subSort(vector<int>& array) {vector<int> sortArray(array);sort(sortArray.begin(), sortArray.end());vector<int> ans;int i = 0;while(i < array.size() && array[i]==sortArray[i])++i;if(i < array.size())ans.push_back(i);i = array.size()-1;while(i >= 0 && array[i]==sortArray[i])--i;if(i >= 0)ans.push_back(i);if(ans.size()==2)return ans;return {-1,-1};}
};

472 ms 40.4 MB

2.2 不排序

  • 从左往右遍历,左边最大MAX > 当前数,这里肯定需要排序,实时更新MAX,找到需要排序的右端点
  • 从右往左遍历,当前数 > 右边最小MIN,肯定需要排序,实时更新MIN,往左找到左端点
class Solution {
public:vector<int> subSort(vector<int>& array) {if(array.size() < 2)return {-1,-1};int lmax = array[0], rmin = array[array.size()-1];int left = -1, right = -1, n = array.size();for(int i = 1; i < n; ++i){if(array[i] < lmax){right = i;}lmax = max(lmax, array[i]);if(array[n-1-i] > rmin){left = n-i-1;}rmin = min(rmin, array[n-1-i]);}return {left, right};}
};

156 ms 39.1 MB

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

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

相关文章

福州公交车与拖拉机相撞1人死亡

2007年7月3日下午17时许&#xff0c;福州地区大学新校区学园路路段发生一起交通事故。郑久忠(男&#xff0c;35岁&#xff0c;鼓楼区八一七中路734号弄一号)驾驶41路公交车沿学园路由北往南行驶&#xff0c;途经厚庭路和学园路交叉路口&#xff0c;与林亮(男&#xff0c;34岁&a…

综述|视觉Transformer在CV中的现状、趋势和未来方向

文 | 汽车人源 | 自动驾驶之心摘要Transformer&#xff0c;一种基于注意力的编码器-解码器模型&#xff0c;已经彻底改变了自然语言处理&#xff08;NLP&#xff09;领域。受这些重大成就的启发&#xff0c;最近在计算机视觉&#xff08;CV&#xff09;领域采用类似Transformer…

python变量定义问题_python 定义n个变量方法 (变量声明自动化)

python 定义n个变量方法 (变量声明自动化) code&#xff1a; for i in range(100): cmd "t%s 1" % i exec cmd eval("t%s" % i) print t10 输出 1 &#xff0c; 表示我们创建了 t0 - t99 这样的变量 以上这篇python 定义n个变量方法 (变量声明自动化)就是…

CodeFileBaseClass 属性

asp.net 2.0 中&#xff0c;今天遇到了一个错误&#xff1a;Make sure that the class defined in this code file matches the inherits attribute, and that it extends the correct base class (e.g. Page or UserControl)原因是我的 CodeBehind 类继承了自定义的页面基类。…

程序员面试金典 - 面试题 10.03. 搜索旋转数组(二分查找)

1. 题目 搜索旋转数组。给定一个排序后的数组&#xff0c;包含n个整数&#xff0c;但这个数组已被旋转过很多次了&#xff0c;次数不详。 请编写代码找出数组中的某个元素&#xff0c;假设数组元素原先是按升序排列的。若有多个相同元素&#xff0c;返回索引值最小的一个。 示…

强化学习,商业化之路宣告死亡了吗?

文 | Shona继DeepMind推出AlphaGo已过去7年&#xff0c;强化学习在游戏行业有了不少应用&#xff0c;例如游戏陪玩、AI托管等。在这过程中&#xff0c;越来越多的公司 / 研究院所为强化学习的研究投入了大量的资源与精力。随之而来的&#xff0c;也有不少质疑&#xff0c;不少人…

转usb驱动cmw500 ni_支持USB Type-C接口的外置蓝光驱动器IO Data BRP-UT6 / MC2本月发售...

IO Data以其非正统的数据设备闻名&#xff0c;最近IO Data新推出了一款支持USB Type-C接口的外置超薄蓝光驱动器设备 BRP-UT6 / MC2&#xff0c;除了支持USB-C接口&#xff0c;其配置是非常标准的超薄外置蓝光光驱规格&#xff0c;支持最新的BDXL和M-DISC规格&#xff0c;附赠M…

ajax缓存处理

最近写程序是发现,使用ajax的时候,有时候既然不能访问请求页面了,压根就不走后台代码了.........测试了很久,发现应该是缓存的问题:可以在前台异步调用是加上:xmlHTTP.setRequestHeader("If-Modified-Since","0");或者如果你的后台请求页面是一个.aspx页面…

程序员面试金典 - 面试题 16.26. 计算器(栈)

1. 题目 给定一个包含 正整数、加()、减(-)、乘(*)、除(/)的算数表达式(括号除外)&#xff0c;计算其结果。 表达式仅包含非负整数&#xff0c;&#xff0c; - &#xff0c;*&#xff0c;/ 四种运算符和空格 。 整数除法仅保留整数部分。 示例 1: 输入: "32*2" 输…

深度学习撞墙?谷歌:是时候动用钞能力了

文 | 天于刀刀推特上万众瞩目的明星语言大模型比赛项目 Inverse Scaling Prize 终于在近期落下了帷幕&#xff0c;这也是社区中第一次针对 scaling law 反例的探究&#xff0c;各式各样的大模型和 NLP 任务在比赛期间被提出和应用&#xff0c;同样许许多多的成果也在这次比赛中…

python教程输入_python怎么输入一个集合

set()函数创建一个无序不重复元素集&#xff0c;可进行关系测试&#xff0c;删除重复数据&#xff0c;还可以计算交集、差集、并集等。 set 语法&#xff1a; class set([iterable]) 参数说明&#xff1a; iterable -- 可迭代对象对象&#xff1b; 返回值&#xff1a; 返回新的…

来了就不会空着手回去.

如果您需要帮助,可以到我的"文章"去看看,也许对您有帮助....以动手实践为荣 , 以只看不练为耻;以打印日志为荣 , 以单步跟踪为耻;以空格缩进为荣 , 以制表缩进为耻;以单元测试为荣 , 以人工测试为耻;以模块复用为荣 , 以复制粘贴为耻;以多态应用为荣 , 以分支判断为耻…

LeetCode 第 23 场双周赛(970/2044,前47.5%)

文章目录1. 比赛结果2. 题目1. LeetCode 5360. 统计最大组的数目 easy2. LeetCode 5362. 构造 K 个回文字符串 medium3. LeetCode 5361. 圆和矩形是否有重叠 medium4. LeetCode 5363. 做菜顺序 hard1. 比赛结果 做出来了 1、3 两题&#xff0c;继续加油&#xff01; 第二道字符…

杀疯了…4个月发表论文的实操手册来了!

科研的本质&#xff1a;解决问题&#xff0c;创造新事物(新问题、新方法、新发现、新理论)科研论文的关键的体现在于将所得结果详实记录并进行科学分析后&#xff0c;总结成果写成论文由同行评议认可后发表。科研的完整过程那么如何在4-6个月内产出论文呢&#xff0c;这次我和一…

tkinter的可视化拖拽工具_可视化越做越丑?这五个高级图表效果实现流程分享给你...

今天我们来说一说数据可视化&#xff0c;想必很多人在入门数据分析之后&#xff0c;就会经常进行可视化的工作&#xff0c;所谓一图胜千言&#xff0c;图表用的好&#xff0c;真的是会事半功倍的。但现实情况下&#xff0c;很多人遇到的问题是&#xff1a;你做的图表太丑了&…

WinForm的App.config

项目右键&#xff0d;&#xff0d;添加&#xff0d;&#xff0d;添加新项&#xff0d;&#xff0d;选择应用程序配置文件 即出现App.config.打开App.config, 键入&#xff1a; <appSettings></appSettings>然后在 appSettings中就可以定义变量及变量的数值了。比…

LeetCode 1403. 非递增顺序的最小子序列(排序)

1. 题目 给你一个数组 nums&#xff0c;请你从中抽取一个子序列&#xff0c;满足该子序列的元素之和 严格 大于未包含在该子序列中的各元素之和。 如果存在多个解决方案&#xff0c;只需返回 长度最小 的子序列。如果仍然有多个解决方案&#xff0c;则返回 元素之和最大 的子…

独自一人,怒发AI顶会论文

长短作为曾经熬通宵肝论文的过来人&#xff0c;小编要吐槽&#xff0c;论文写久了真的会头秃&#xff0c;尤其是确定选题和找创新点、idea的时候&#xff0c;是薅头发事件的高发阶段。对于那些导师放养、在自己的摸索中磕磕绊绊前行的科研新手们&#xff0c;焦虑总是瞅准时机就…

winform响应时间最长是多少分钟_当詹姆斯退役时,他的总出场时间会达到多少分钟?...

在勒布朗-詹姆斯进入他职业生涯的第17个年头之际&#xff0c;Bleacher Report将目光锁定在了这位四届MVP的身上&#xff0c;在度过即将到来的2019-20赛季以及剩余的名人堂职业生涯之后&#xff0c;他的多项数据在联盟历史中会处于怎样的地位呢&#xff1f;詹姆斯已在历史排行榜…

[转载]WebBrowser知识

WebBrowser知识WebBrowser知识Q: What is WebBrowser?A: The WebBrowser is Microsofts Internet Explorer in the form of an ActiveX control. It can be imported into the Delphi IDE and dropped on a form like any other component. Therefore, you can harness the po…