Go語言程式:從陣列中獲取最後給定數量的專案


在本教程中,我們將編寫一個Go語言程式,用於從陣列中移除最後給定數量的專案。我們可以使用Go語言的內建函式或使用for迴圈來實現。第一種方法在功能上比第二種方法更高效,但我們將在本程式中討論這兩種方法。

方法一:使用Append()從整數陣列中移除最後給定數量的專案

在此方法中,我們將編寫一個Go語言程式,使用append()庫函式從陣列中移除最後給定數量的專案。此程式碼線上性時間內執行,即此方法的時間複雜度為O(n)

語法

func make ([] type, size, capacity)

Go語言中的make函式用於建立陣列/對映,它接受要建立的變數的型別、大小和容量作為引數。

func append(slice, element_1, element_2…, element_N) []T

append函式用於向陣列切片新增值。它接受多個引數。第一個引數是要向其新增值的陣列,後跟要新增的值。然後,該函式返回包含所有值的最終陣列切片。

演算法

步驟1 - 首先,我們需要匯入fmt包。

步驟2 - 然後,建立一個函式來從給定索引移除元素。此函式接受陣列作為引數並返回最終陣列。

步驟3 - 現在,我們需要啟動main()函式。

步驟4 - 在這裡,使用make()函式初始化一個整數陣列,並將值新增到陣列中。此外,在螢幕上列印陣列。

步驟5 - 將索引儲存在一個變數中,之後應刪除該索引之後的元素。將該索引處的元素儲存在一個變數中。

步驟6 - 現在,透過將陣列和索引作為引數傳遞給函式並將獲得的陣列儲存起來,來呼叫delLastElem()函式。

步驟7 - 在螢幕上列印最終陣列。

示例

使用內部函式從整數陣列中移除最後給定數量的專案的Go語言程式

package main
import "fmt"
   
// function to remove the last element from the array
func delLastElem(array []int, index int) []int {
   return append(array[:index])
}
func main() {
      
   // initializing an array
   array := make([]int, 0, 5)
   array = append(array, 1, 2, 3, 4, 5)
   fmt.Println("The given array is:", array)
   var index int = 2
      
   // getting element at index
   elem := array[index]
   result := delLastElem(array, index)
   fmt.Println()
   fmt.Println("The provided index is:", index)
   fmt.Println("Array obtained after deleting elements after ", elem, "is:\n", result)
}

輸出

The given array is: [1 2 3 4 5]
The provided index is: 2
Array obtained after deleting elements after 3 is:
[1 2]

方法二:在主函式中從陣列中移除最後給定元素的Go語言程式

在此方法中,我們將編寫一個Go語言程式,在程式的main()部分中從陣列中移除最後給定元素。

演算法

步驟1 - 首先,我們需要匯入fmt包。

步驟2 - 現在,我們需要啟動main()函式。

步驟3 - 在這裡,使用make()函式初始化一個整數陣列,並將值新增到陣列中。此外,使用fmt.Println()函式在螢幕上列印陣列。

步驟4 - 將索引儲存在一個變數中,之後應刪除該索引之後的元素。將該索引處的元素儲存在一個變數中。

步驟5 - 現在,要重新切片陣列,請使用:運算子並將提供的索引之前的數值儲存在一個變數中。

步驟6 - 此外,在螢幕上列印最終陣列。

示例

從陣列中移除最後給定元素的Go語言程式

package main
import "fmt"
func main() {
   
   // initializing an array
   array := make([]int, 0, 5)
   array = append(array, 11, 20, 13, 44, 56)
   fmt.Println("The given array is:", array)
   var index int = 2
   elem := array[index]
   result := array[:index]
   fmt.Println()
   fmt.Println("The provided index is:", index)
   fmt.Println("Array obtained after deleting elements after", elem, "is:\n", result)
}

輸出

The given array is: [11 20 13 44 56]
The provided index is: 2
Array obtained after deleting elements after 13 is:
[11 20]

方法三:使用For迴圈從陣列中移除最後給定數量的專案

在此方法中,我們將使用for迴圈從Go程式語言中的末尾移除特定索引之後的數值。由於我們使用的是for迴圈,因此此方法的時間複雜度將為O(n2)

演算法

步驟1 - 首先,我們需要匯入fmt包。

步驟2 - 現在,我們需要啟動main()函式。

步驟3 - 在這裡,使用make()函式初始化一個整數陣列,並將值新增到陣列中。此外,在螢幕上列印陣列。

步驟4 - 將索引和該索引處的值儲存在一個變數中,之後應刪除該索引之後的元素。

步驟5 - 現在,使用for迴圈迭代陣列,並將索引之前的元素儲存在新陣列中。

步驟6 - 此外,在螢幕上列印最終陣列。

示例

使用for迴圈從整數陣列中移除最後給定數量的專案的Go語言程式

package main
import "fmt"
func main() {
   array := make([]int, 0, 8)
   var result []int
   array = append(array, 11, 20, 13, 44, 56, 96, 54, 97)
   fmt.Println("The given array is:", array)
   
   // getting the last index
   var index int = 3
   
   // re-slicing the array
   for i := 0; i < len(array); i++ {
      if i < index {
         result = append(result, array[i])
      }
   }
   elem := array[index]
   fmt.Println()
   fmt.Println("The provided index is:", index)
   fmt.Println("Array obtained after deleting elements after", elem, "is:\n", result)
}

輸出

The given array is: [11 20 13 44 56 96 54 97]
The provided index is: 3
Array obtained after deleting elements after 44 is:
[11 20 13]

結論

我們已經成功編譯並執行了一個Go語言程式,用於從陣列中移除最後給定數量的專案,並附帶示例。

更新於:2023年1月10日

瀏覽量:153

開啟您的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.