📜  使用嵌套循环删除重复项的 Golang 程序

📅  最后修改于: 2021-10-24 12:58:48             🧑  作者: Mango

给定一个大小为 n 的数组。您的任务是从数组中删除重复项。

例子:

Input : array: 1 2 1 2 1 3 2 
Output :1 2 3

Input :array: 10 24 5 10 24
Output :10 24 5

我们将使用两个循环来解决这个问题。第一个循环将从 0 遍历到数组的长度。第二个循环将从 0 遍历到i-1 。此循环用于确保索引i处的元素没有出现在i之前。如果该元素之前出现过,那么我们就会退出第二个循环。在第二个循环之后,我们编写一个 if 条件来检查是否j == i 。如果它们相等,则表示索引i处的元素之前没有出现过。所以我们必须将元素追加到结果数组中。

// Golang Program that Removes
// Duplicates Using Nested Loops
package main
  
import "fmt"
  
func removeDup(a []int, n int) []int {
  
    // declaring an empty array
    result := []int{}
  
    // traversing the array
    // from 0 to length of array
    for i := 0; i < n; i++ {
  
        j := 0 // variable for next loop
  
        // loop to check if the current
        // element has come before or not
        for ; j < i; j++ {
  
            if a[j] == a[i] {
                // it means the element
                // has come before, so break
                break
            }
        }
  
        // it means that the element has not
        // come anytime, so append it in
        // the resultant array
        if j == i {
            result = append(result, a[i])
        }
  
    }
    return result
  
}
  
func main() {
  
    // declaring the array
    a := []int{1, 2, 1, 2, 1, 3, 2}
  
    // size of the array
    n := 7
  
    // calling the remove duplicates
    // function to get the answer
    result := removeDup(a, n)
  
    // printing the answer
    fmt.Println(result)
  
}

输出:

[1 2 3]