LeetCode刷題—陣列

Gsupl.落浅~發表於2024-09-04

一:陣列操作

1、陣列:在連續的記憶體空間當中;儲存一組相同型別的元素

2、元素和索引:陣列的索引下標從0開始

3、陣列的訪問和陣列的搜尋

(1)陣列的訪問

a=[1,2,3]
a[1]=2#陣列的訪問;透過下標索引進行訪問

(2)陣列的搜尋

a=[1,2,3]
for i in a:
    print(i)

4、陣列的四種方法

訪問 0(1)

搜尋 0(n)

插入 o(n) :陣列元素向前移動

刪除o(n):陣列元素向後移動

6、優缺點

適合讀取操作;但是不適合寫的操作!

#陣列元素的常用操作
#建立陣列
array=[1,2,3,4,5]
#新增元素
array.append(6)#新增單個元素
arrayay.extend([7,8])
#訪問元素
array[0]#使用下表索引訪問陣列元素
#修改元素
array[0] = 10  # 修改第一個元素的值
#刪除元素
del array[0]#刪除第一個元素的值
array.remove(5)#刪除值為5的元素
#遍歷陣列
for i in array:
    print(i)
#檢視元素
if 3 in array:
    print("在陣列當中")
#陣列的長度
print(len(array))
#陣列的排序
array.sort()#升序排序
array.sort(reverse=True)  # 降序排序

二:LeetCode 陣列題目

題目485 最大連續1的個數

題目:給定一個二進位制陣列nums;計算其中最大連續1的個數

陣列的遍歷;首先遍歷陣列的索引;然後根據陣列的索引訪問陣列的元素
定義兩個遍歷;一個記錄連續1的個數,一個記錄最大連續1的個數;使用判斷進行分析
def func(nums):
    max_count = 0
    current_count = 0
    for num in nums:
        if num==1:
            current_count += 1
            max_count = max(max_count, current_count)
        else:
            current_count = 0
    return max_count

nums=[1,0,1,1,0,1]
print(func(nums))

題目283:移動零

首先使用for迴圈遍歷陣列;定義一個k記錄陣列下表索引;如果陣列元素不等於0;則移到第一個位置;以此類推;然後根據切片;將剩下的元素賦值為0
def func(nums):
    k=0
    for i in range(len(nums)):
        if nums[i]!=0:
            nums[k]=nums[i]
            k+=1
    for i in range(k,len(nums)):
        nums[i]=0
        
nums = [0,1,0,3,12]
func(nums)
print(nums)

題目27:移除元素

典型的雙指標問題就是如果不相等的話就交換,然後k+1,最後返回k
def func(nums,val):
    k=0
    for i in range(len(nums)):
        if nums[i]!=val:
            nums[k]=nums[i]
            k+=1
    return k

nums= [3,2,2,3]
val = 3
k=func(nums,val)
print(k)

題目28:查詢特定位置

比較簡單的的一個題目;就是首先使用for迴圈遍歷陣列;然後判斷是否和目標值相等
如果相等就返回當前的索引值;如果遍歷完了還沒有找到,就返回空列表[-1,-1]
def func(nums,target):
    k=0
    list=[]
    for i in range(len(nums)):
        if nums[i]==target:
            list.append(i)
        else:
            return [-1,-1]
    return list
nums = [5,7,7,8,8,10]
target = 6
key=func(nums,target)
print(key)

題目136:只出現一次的數

def func(nums):
    key=0
    for i in range(len(nums)):
        key ^=nums[i]
    return key

nums = [4,1,2,1,2]
flag = func(nums)
print(flag,end="")

相關文章