0
点赞
收藏
分享

微信扫一扫

matlab批量读取目录下的文件的方法

大南瓜鸭 03-25 08:30 阅读 3

这道题目一开始的思路是用了map的方式,并且是有序的map用来保证元素是有序且唯一的,然后map的size就是个数,跑下来发现时间复杂度非常的高,所以一定有更简单的办法。其实数组的考点无非就是遍历,遍历的方式要么就是普通遍历要么就是快慢指针的方式,我们可以用一个慢指针始终指向 元素只出现一次的数组的最新下标,快指针就正常遍历,当快指针对应的元素比慢指针对应的元素大的时候需要把快指针指向的元素赋值到慢指针的位置,最终慢指针所在的索引就是最终的个数

public class removeDuplicatesFromSortedArray {
	public static void main(String[] args) {
		int arr[] = {0,0,1,1,1,2,2,3,3,4};
		int len = getCnt(arr);
		System.out.println(len);
		for(int i = 0;i<len;i++) {
			System.out.print(arr[i] + " ");
		}
		System.out.println();
	}
	public static int getCnt(int[] arr) {
		int j = 0;
		for(int i = 0;i<arr.length;i++) {
			if(j<1||arr[i] > arr[j-1]) {
				arr[j++] = arr[i];
			}
		}
		return j;
	}
}
举报

相关推荐

0 条评论