算法通关村第三关——青铜挑战笔记
前言
全文代码均以Java语言复现,主要为自己学习做记录,如有问题,还请各位大佬们指点指点。
这篇讲解数组的创建和基本操作——增删查。
数组初始化
// 第一种 静态创建
int []a==new int[10];
// 第二种 动态创建(直接赋值)
int []a ={1,1,1,1,1,1};
查找指定数值
public static int findNumber(int a[],int target){
for (int i = 0; i < a.length; i++) {
if(a[i]==target){
return a[i];
}
}return -1;
}
添加数值
public static int addElementSequence(int a[],int size,int ele){
// size= a.length 相等是临界值
if(size>=a.length){
return -1;// 已满 无法添加
}
// 标记index
int index = size;
// 确认插入的位置 index
for(int i = 0; i<size;i++){
if(ele<a[i]){
index=i;
break;
}
}
// 数组元素往右移动 注意下标
for(int i = size ;i>index;i--){
a[i]=a[i-1];
}
a[index]=ele;
return index;
}
删除指定数值
public static int delete(int a [],int target ,int size){
int index = -1 ;
for( int i = 0;i<size;i++){
if(target==a[i]){
index=i;
break ;
}
}
if(index!=-1){
for(int i = index+1;i<size;i++){
// 数组元素往左移动
a[i-1]=a[i];
}
// 删除后个数减一
size--;
}
return size;
}