zoukankan      html  css  js  c++  java
  • 581. Shortest Unsorted Continuous Subarray

    题目链接

    https://leetcode.com/problems/shortest-unsorted-continuous-subarray/description/

    题目大意

    给定一个整数数组,你需要找到一个连续的子阵,如果你只是这阵升序,然后整个阵列将以升序排序,也。
    你需要找到最短的子阵输出它的长度。

    样例1

    输入:[ 2, 6, 4,8, 10, 9,15 ]
    输出:5
    说明:您需要按升序排序[ 6, 4, 8,10, 9 ],使整个数组按升序排序。

    算法思想

    先用一个数组temp保存nums,然后对tmp排序,然后用两个变量low和high去找两个数组出现不同之处的第一个位置和最后一个位置,最后返回high-low+1就是要找的数组长度

    代码实现

    class Solution {
        public int findUnsortedSubarray(int[] nums) {
            int result = 0;
            int[] tmp = (int[])nums.clone();
            Arrays.sort(tmp);
            int start = -1;
            int end = -2;
            for (int i = 0;i<nums.length;i++){
                if (nums[i] != tmp[i]) {
                    if (start == -1) {
                        start=i;
                    }
                    end=i;
                }
            }
    
            return end-start+1;
        }
    }
    
    public class MainClass {
        public static int[] stringToIntegerArray(String input) {
            input = input.trim();
            input = input.substring(1, input.length() - 1);
            if (input.length() == 0) {
              return new int[0];
            }
        
            String[] parts = input.split(",");
            int[] output = new int[parts.length];
            for(int index = 0; index < parts.length; index++) {
                String part = parts[index].trim();
                output[index] = Integer.parseInt(part);
            }
            return output;
        }
        
        public static void main(String[] args) throws IOException {
            BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
            String line;
            while ((line = in.readLine()) != null) {
                int[] nums = stringToIntegerArray(line);
                
                int ret = new Solution().findUnsortedSubarray(nums);
                
                String out = String.valueOf(ret);
                
                System.out.print(out);
            }
        }
    }
    

      

  • 相关阅读:
    Code First数据库迁移
    创建静态报表
    JavaScript prototype
    把事务封装成类似Serializable用法的特性
    我的开发框架(WinForm)2
    使用 NPC,NPCManager 在 XNA 中创建 NPC
    ExtJs控件属性配置详细
    Python+Django+Eclipse 在Windows下快速开发自己的网站
    C++ const && 二叉树合集
    验证视图状态 MAC 失败,解决方法
  • 原文地址:https://www.cnblogs.com/airycode/p/7666365.html
Copyright © 2011-2022 走看看