首页 > 编程语言 > 详细

2.4 数组

时间:2020-10-23 17:41:40      阅读:30      评论:0      收藏:0      [点我收藏+]

数组是什么

数组是数据结构中的最基本结构,几乎所有的程序设计语言都把数组类型设定为固定的基础变量类型。我们可以把数组理解为一种容器,它可以用来存放若干个相同类型的数据元素。

  • 存放的数据是整数型的数组,称作整型数组
  • 存放的数据是字符型的数组,则称作字符数组
  • 另外还有一类数组比较特殊,它是数组的数组,也可以叫作二维数组

数组在内存中是连续存放的,数组内的数据,可以通过索引值直接取出得到。

例题

? 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后的数组和新的长度,你不需要考虑数组中超出新长度后面的元素。要求,空间复杂度为 O(1),即不要使用额外的数组空间。

? 例如,给定数组 nums = [1,1,2],函数应该返回新的长度 2,并且原数组 nums 的前两个元素被修改为 1, 2。 又如,给定 nums = [0,0,1,1,1,2,2,3,3,4],函数应该返回新的长度 5,并且原数组 nums 的前五个元素被修改为 0, 1, 2, 3, 4。

解:核心思路:1.缓存 当前最大的值、数组的长度 2.遍历数组 将比当前最大值大的数据 添加到相应的位置,同时长度加1

public class ArrayTest {

	public static void main(String[] args) {
		int nums[] = { 0, 0, 1, 1, 1, 2, 2, 3, 3, 4 };

		removeRepeat(nums);

	}

	/**
	 * 去除重复的
	 * @param nums 从小到大的排序数组
	 */
	private static void removeRepeat(int[] nums) {
		int max = nums[0];
		int len = 1;
		for (int i = 1; i < nums.length; i++) {
			if (max < nums[i]) {
				max = nums[i];
				nums[len] = max;
				len++;
			}
		}

		System.out.println("长度:" + len);
		for (int i = 0; i < len; i++) {
			System.out.print(nums[i]+"  ");
		}

	}

}

技术分享图片

2.4 数组

原文:https://www.cnblogs.com/tomarsNi/p/13864623.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!