首页 > 编程语言 >#yyds干货盘点# LeetCode程序员面试金典:部分排序

#yyds干货盘点# LeetCode程序员面试金典:部分排序

时间:2023-02-28 18:03:03浏览次数:63  
标签:yyds right return int 金典 max array LeetCode left

题目:

给定一个整数数组,编写一个函数,找出索引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]

代码实现:

class Solution {
public int[] subSort(int[] array) {
if (array.length <= 1) {
return new int[]{-1, -1};
}
return err(array,0,array.length-1);
}

public static int[] err(int[] a, int left, int right) {
int l = -1;
int r = -1;
int max = a[left];
int min = a[right];
for (int i = left; i <= right; i++) {
if (a[i] >= max) {
max = a[i];
}else {
r = i;
}
}
if(r == -1){
return new int[]{-1, -1};
}
for (int i = right; i>=left; i--){
if (a[i] <= min) {
min = a[i];
}else {
l = i;
}
}
return new int[]{l, r};
}
}

标签:yyds,right,return,int,金典,max,array,LeetCode,left
From: https://blog.51cto.com/u_13321676/6091660

相关文章

  • #yyds干货盘点# LeetCode面试题:搜索旋转排序数组
    1.简述:整数数组nums按升序排列,数组中的值互不相同。在传递给函数之前,nums在预先未知的某个下标k(0<=k<nums.length)上进行了旋转,使数组变为[nums[k],nums[k+1],......
  • #yyds干货盘点# LeetCode面试题:在排序数组中查找元素的第一个和最后一个位置
    1.简述:给你一个按照非递减顺序排列的整数数组nums,和一个目标值target。请你找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值target,返回 [-1,-1]......
  • 【扫描线】LeetCode 253. 会议室 II
    题目链接253.会议室II思路这道题非常类似于坐公交车上下车。样例中intervals=[[0,30],[5,10],[15,20]]可以这么拆解上车:[0,+1],[5,+1],[15,+1]下车:[10,-......
  • 【栈】LeetCode 856. 括号的分数
    题目链接856.括号的分数思路我们通过观察发现,()是唯一贡献分数的结构,外括号只是为该结构添加了一些乘数。所以我们只需要关心()。我们用ddd维护当前括号的深度,对......
  • 【DFS】LeetCode 22. 括号生成
    题目链接22.括号生成思路使用DFS和贪心的思想,如果左括号的数量不够就优先放置左括号,然后再放置右括号。代码classSolution{privateList<String>result=......
  • leetcode之——二分法模板
    classSolution:defsearch(self,nums:List[int],target:int)->int:n=len(nums)left,right=0,n-1whileleft<=right:k=(right-left)//2+left......
  • LeetCode算法训练-回溯 491.递增子序列 46.全排列 47.全排列 II
    欢迎关注个人公众号:爱喝可可牛奶LeetCode算法训练-回溯491.递增子序列46.全排列47.全排列IILeetCode491.递增子序列分析找出并返回所有数组中不同的递增子序列......
  • #yyds干货盘点 react笔记之引入FontAwesome
    前言我是歌谣我有个兄弟巅峰的时候排名c站总榜19叫前端小歌谣曾经我花了三年的时间创作了他现在我要用五年的时间超越他今天又是接近兄弟的一天人生难免坎坷大不了从......
  • LeetCode/2.两数相加
    给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返回一个表示和......
  • LeetCode算法训练 93.复原IP地址 78.子集 90.子集II
    欢迎关注个人公众号:爱喝可可牛奶LeetCode算法训练93.复原IP地址78.子集90.子集IILeetCode93.复原IP地址分析字符串全部由数字组成,ipv4每一段数字不能有前导0,且......