学习指引
序、专栏前言
本专栏开启,目的在于帮助大家更好的掌握学习Java
,特别是一些Java学习者
难以在网上找到系统地算法学习资料帮助自身入门算法,同时对于专栏内的内容有任何疑问都可在文章末尾添加我的微信给你进行一对一的讲解。
但最最主要的还是需要独立思考,对于本专栏的所有内容,能够进行完全掌握,自己完完全全将代码写过一遍,对于算法入门肯定是没有问题的。
算法的学习肯定不能缺少总结,这里我推荐大家可以到高校算法社区将学过的知识进行打卡,以此来进行巩固以及复习。
学好算法的唯一途径那一定是题海战略,大量练习的堆积才能练就一身本领。专栏的任何题目我将会从【题目描述】【解题思路】【模板代码】【代码解析】等四板块进行讲解。
序、本章前言
除了数组的删除操作,还应该掌握数组的插入操作,数组的插入操作也与删除类似。
一、【例题1】
1、题目描述
给定一个整数长度为,数组下标从,请你实现一个函数,返回将插入第位后的数组,如果超出数组长度则接在末尾(数组保证足够长)。
2、解题思路
- 类比删除操作来考虑,我们需要可以将下标的元素都向后移动一格,然后再将赋值给第位即可。
3、模板代码
static void test(int[] arr,int v,int y,int n){
for (int i = n+1; i >=y+1; i--) {
arr[i]=arr[i-1];
}
arr[y]=v;
}
static void test(int[] arr,int v,int y,int n){
if (n + 2 - (y + 1) >= 0) System.arraycopy(arr, y + 1 - 1, arr, y + 1, n + 2 - (y + 1));
arr[y]=v;
}
4、代码解析
- 同删除原理可以使用
System.arratcopy
函数