领扣LintCode算法问题答案-757. 最短无序数组

领扣LintCode算法问题答案-757. 最短无序数组

757. 最短无序数组

给定一个整数数组,求出无序整数的最短子序列的长度。如果一组整数既不递减也不递增,则称为无序。[提示:开始检查它是否递增/递减并返回0,否则检查是否存在无序的三元组。如果是,则返回3,否则返回0]

样例 1:

输入:[1,2,3,4,5,6]
输出:0
解释:一个递增数组。

样例 2:

输入:[1,2,1,2]
输出:3
解释:[1,2,1]

题解

public class Solution {
    /**
     * @param arr: an array of integers
     * @return: the length of the shortest possible subsequence of integers that are unordered
     */
    public int shortestUnorderedArray(int[] arr) {
        // write your code here
        if (arr.length < 3) {
            return 0;
        }
        for (int i = 0; i < arr.length - 3; i++) {
            int num1 = arr[i];
            int num2 = arr[i + 1];
            int num3 = arr[i + 2];
            if ((num1 < num2 && num3 < num2)
                || (num1 > num2 && num3 > num2)) {
                return 3;
            }
        }
        return 0;
    }
}

原题链接点这里

鸣谢

非常感谢你愿意花时间阅读本文章,本人水平有限,如果有什么说的不对的地方,请指正。
欢迎各位留言讨论,希望小伙伴们都能每天进步一点点。

©️2020 CSDN 皮肤主题: 鲸 设计师:meimeiellie 返回首页