美文网首页
2_19最短子数组

2_19最短子数组

作者: X_Y | 来源:发表于2017-09-06 17:06 被阅读15次

对于一个数组,请设计一个高效算法计算需要排序的最短子数组的长度。

给定一个int数组A和数组的大小n,请返回一个二元组,代表所求序列的长度。(原序列位置从0开始标号,若原序列有序,返回0)。保证A中元素均为正整数。

测试样例:
输入:[1,4,6,5,9,10],6
返回:2

class Subsequence {
public:
    int shortestSubsequence(vector<int> A, int n) {
        // write code here
       int max = A[0], r_idx = -1;
       int min = A[n-1], l_idx = -1;
       for(int i=1; i<n; i++){
           if(A[i] < max){
               r_idx = i;
           }else if(A[i] > max){
               max = A[i];
           }
       }
       for(int i=n-1; i>=0; i--){
           if(A[i] > min){
               l_idx = i;
           }else if(A[i] < min){
               min = A[i];
           }
       }
       return r_idx == l_idx ? 0 : r_idx - l_idx + 1;
       // 用三元运算符可以省略下面语句,比较简洁
       //if (r_idx == l_idx){
           //return 0;
       //}else{
          //return r_idx - l_idx + 1;
       //}
    }
};

相关文章

  • 2_19最短子数组

    对于一个数组,请设计一个高效算法计算需要排序的最短子数组的长度。 给定一个int数组A和数组的大小n,请返回一个二...

  • 2.2.3 无序数组需要排序的最短子数组

    对于一个无序数组A,请设计一个算法,求出需要排序的最短子数组的长度。 给定一个整数数组A及它的大小n,请返回最短子...

  • 最短无序连续子数组

    题目描述:给定一个整数数组,你需要寻找一个连续的子数组,如果对这个子数组进行升序排序,那么整个数组都会变为升序排序...

  • 最短无序连续子数组

    题目: 给定一个整数数组,你需要寻找一个连续的子数组,如果对这个子数组进行升序排序,那么整个数组都会变为升序排序。...

  • 最短无序连续子数组

    题目来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/shor...

  • 最短无序连续子数组

    publicintfindUnsortedSubarray(int[]nums){ int[]kk=newint[...

  • 数组6 最短无序连续子数组

    给定一个整数数组,你需要寻找一个连续的子数组,如果对这个子数组进行升序排序,那么整个数组都会变为升序排序。 你找到...

  • LeetCode 862. 和至少为 K 的最短子数组

    返回 A 的最短的非空连续子数组的长度,该子数组的和至少为 K 。如果没有和至少为 K 的非空子数组,返回 -1。...

  • TOP 96 - 100

    581. 最短无序连续子数组[https://leetcode-cn.com/problems/shortest-...

  • 待排序的最短子数组

    题目 对于一个数组,请设计一个高效算法计算需要排序的最短子数组的长度。给定一个int数组A和数组的大小n,请返回一...

网友评论

      本文标题:2_19最短子数组

      本文链接:https://www.haomeiwen.com/subject/rtsvjxtx.html