博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
581 Shortest Unsorted Continuous Subarray
阅读量:6512 次
发布时间:2019-06-24

本文共 1530 字,大约阅读时间需要 5 分钟。

weekly contest 32的第一题。这题我一开始就想着把每个子串都拿出来sort一遍再放回去,跟sort完的对比一下。但是复杂度太高(O(n2)), TLE了(但是用熟了System.arraycopy(nums, 0, temp, 0, nums.length);这个方法。。)。 如下:

Approach 1: BRUTE FORCE(TIME LIMIT EXCEEDED)

public int findUnsortedSubarray(int[] nums) {		if (nums == null || nums.length == 0) return 0;		int sorted[] = new int[nums.length];		System.arraycopy(nums, 0, sorted, 0, nums.length);		Arrays.sort(sorted);		if (Arrays.equals(sorted, nums)) return 0;		int minLen = nums.length;		for (int i = 0; i < nums.length; i++) {			for (int j = i + 1; j < nums.length; j++) {				int temp[] = new int[nums.length];				System.arraycopy(nums, 0, temp, 0, nums.length);				Arrays.sort(temp, i, j + 1);				if (Arrays.equals(sorted, temp)) {					minLen = Math.min(j + 1 - i, minLen);					break;				}			}		}		return minLen;	}复制代码

#Approach 2: Compare the sorted parts 从首位开始跟sort过的array相比。Time : O(nlogn)。

public int findUnsortedSubarray(int[] nums) {		int [] temp = new int[nums.length];		System.arraycopy(nums,0 , temp , 0 , nums.length);		Arrays.sort(temp);		int start = 0 , end = nums.length -1 ;		while (start< nums.length && temp[start] == nums[start] ){			start ++ ;		}		while (end> start && temp[end] == nums[end]){			end -- ;		}		return end + 1 - start;	}复制代码

还看到有一种O(n)的,现在脑子晕了不想看了。

ref: https://discuss.leetcode.com/topic/89282/java-o-n-time-o-1-space https://discuss.leetcode.com/category/741/shortest-unsorted-continuous-subarray Java拷贝数组的几种方法: http://www.cnblogs.com/jjdcxy/p/5870524.html

转载于:https://juejin.im/post/5a313159f265da431523e964

你可能感兴趣的文章
django 问题解决
查看>>
年年有鱼游戏Android源码项目
查看>>
java使用Iterator、for循环同步数据
查看>>
创建镜像iso文件
查看>>
Linux下创建软RAID5和RAID10实战
查看>>
mariadb的日志
查看>>
C++类的存储
查看>>
ActiveReports 报表应用教程 (8)---交互式报表之动态过滤
查看>>
解决使用Handler时Can't create handler inside thread that has not called Looper.prepare()
查看>>
跟我一起学docker(四)--容器的基本操作
查看>>
磁化强度
查看>>
C/C++ 数据范围
查看>>
LVS+keepalived+nginx
查看>>
monkey如何通过uiautomatorviewer的bounds坐标点击控件
查看>>
第22章,mysql数据库-1
查看>>
【亲测】教你如何搭建 MongoDB 复制集 + 选举原理
查看>>
虚拟化网络技术
查看>>
阿里云中间件推出全新开发者服务
查看>>
56.随机产生的id重复问题
查看>>
一个快速检测系统CPU负载的小程序
查看>>