写点什么

【Java 入门】Array

用户头像
HQ数字卡
关注
发布于: 2020 年 12 月 25 日



数组在我们开发中应用广泛,不同语言对数组实现和处理不尽相同。Java提供的数组是用来存储固定大小的同类型元素。



数组特点

  • 数组在初始化的时候,需要确定大小,用于申请一块连续的内存空间。

  • 数组的元素可以通过下标访问。

  • 数组插入,删除,查找的平均时间复杂度是O(n)。



数组应用

数组在我们的业务代码中,非常的常见,一般用于存储数据库返回的结果,然后进行组合,优化,返回给前端。

在算法题目中,数组也是一个很常见的考点。



算法题目应用

数组算法题目技巧-双指针

双指针技巧,思想是分别将两个指针分别指向数组的开头及末尾,然后将其指向的元素进行交换,再将指针向中间移动一步,继续交换,直到这两个指针相遇

题目描述

给定一个按非递减顺序排序的整数数组 A,返回每个数字的平方组成的新数组,要求也按非递减顺序排序。



输入:[-4,-1,0,3,10]
输出:[0,1,9,16,100]



解题思路

充分利用题目特性,原数组是非递减顺序排序的整数数组,平方后是首元素或者尾元素是最大值。



时间复杂度 O(n)



空间复杂度 O(n)



代码

public int[] sortedSquares(int[] A) {
int[] result = new int[A.length];

for (int i = 0, j = A.length - 1, k = A.length - 1; i <= j;) {
if (A[i] * A[i] > A[j] * A[j]) {
result[k] = A[i] * A[i];
i++;
} else {
result[k] = A[j] * A[j];
j--;
}
k--;
}

return result;
}

总结

数组是我们开发中不可缺少的好帮手,我们要掌握好数组的特点,灵活应用,保障代码质量,提升开发效率。



发布于: 2020 年 12 月 25 日阅读数: 12
用户头像

HQ数字卡

关注

还未添加个人签名 2019.09.29 加入

略懂后端的RD

评论

发布
暂无评论
【Java入门】Array