数组创建和初始化
创建一维数组的方法:
Java:int[] arr = new int[10];
python: list = []
初始化数组最基本的方式是循环赋值:
for(int i = 0; i < arr.length; i++) arr[i] = i;
int[] arr = new int[]{0,1,2,3,5,6,7,8}; int[] nums = {2,5,0,4,6,-10};
查找一个元素
def findByElement(arr, size, key): for i in range(size): if arr[i] == key: return i return -1
如果数组是递增的,查找如果相等或者当前位置元素比目标值更大就停下来(自己写的)
def findByElement(arr, size, key): for i in range(size): if arr[i] == key: return i if arr[i] > key: return -1 return -1
增加一个元素
增加和删除元素是数组最基本的操作。能准确处理游标(size还是size-1)和边界等情况是数组算法题最基础重要的问题之一。
将给定的元素插入到有序数组的对应位置上:我们可以先找到位置,再将其后元素整体后移,最后插入到空位置上
注意:算法要保证在在数组的首部、尾部和中间位置插入成功。
def addByElementSequence(arr, size, element): if size >= len(arr): return -1 index = size //为什么要这样,下面不就是在找index的位置了吗,下面的注解也没有看太懂 for i in range(arr): if element < arr[i]: index = i break for j in range(size, index, -1): arr[j] = arr[j-1] arr[index] = element return index
删除一个元素
先查看元素是否存在,存在再删除
要求删除序列最前,中间,最后和不存在的元素都有效
def removeByElement(arr, size, key): index = -1 for i in range(size): if arr[i] == key: index = i break if index != -1: for j in range(index + 1, size) arr[j-1] = arr[j] size-=1 return size