算法通关村——不简单的数组增删改查

数组创建和初始化

创建一维数组的方法:

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
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值