当前位置: 首页 > 编程笔记 >

编写Golang程序以在数组中找到具有给定总和的对(O(nlogn))

杨星纬
2023-03-14
本文向大家介绍编写Golang程序以在数组中找到具有给定总和的对(O(nlogn)),包括了编写Golang程序以在数组中找到具有给定总和的对(O(nlogn))的使用技巧和注意事项,需要的朋友参考一下

例子

输入数组= [1、3、5、7、8、9],总和= 11 =>(3,8)

解决这个问题的方法

步骤1: 定义一个接受数组和sum的方法

步骤2: 对给定的数组进行排序,声明low:= 0和high:= size-1变量。

步骤3:迭代for循环,直到low <= high。

步骤4:如果arr [low] + arr [high] == sum,则打印元素。

步骤5:如果arr [low] + arr [high] <sum,则为low ++。如果arr [low] + arr [high]>和,则为high--。

步骤5:最后,打印“ pair not found”。

程序

package main
import (
   "fmt"
   "sort"
)

func findSumPair(arr []int, sum int){
   sort.Ints(arr)
   low := 0
   high := len(arr) - 1
   for low <= high{
       if arr[low] + arr[high] == sum{
          fmt.Printf("Pair for given sum is (%d, %d).\n", arr[low], arr[high])
         return
      } else if arr[low] + arr[high] < sum {
         low++
      } else {
         high--
      }
    }
   fmt.Println("在给定数组中找不到配对。")
}

func main(){
   findSumPair([]int{4, 3, 6, 7, 8, 1, 9}, 15)
   findSumPair([]int{4, 3, 6, 7, 8, 1, 9}, 100)
}
输出结果
Pair for given sum is (6, 9).
在给定数组中找不到配对。

 类似资料:
  • 本文向大家介绍编写Golang程序以在数组(O(n))中查找具有给定总和的对,包括了编写Golang程序以在数组(O(n))中查找具有给定总和的对的使用技巧和注意事项,需要的朋友参考一下 例子 输入数组= [1、3、5、7、8、9],总和= 11 =>(3,8) 解决这个问题的方法 步骤1: 定义一个接受数组和sum的方法。 步骤2: 定义一个映射变量,输入map [int] int。 步骤3:将

  • 本文向大家介绍编写Golang程序以查找给定数组中的重复元素,包括了编写Golang程序以查找给定数组中的重复元素的使用技巧和注意事项,需要的朋友参考一下 例子 输入数组= [1、3、5、6、1] =>重复元素为1; 输入数组= [1、3、5、6、7] =>返回-1 解决这个问题的方法 步骤1: 定义一个接受数组的方法。 第2步: 声明访问过的映射。 步骤3:迭代给定的数组。如果该元素存在于已访问

  • 问题内容: 给定一个非负整数数组和一个数字。您需要打印总和等于给定整数的子数组的所有开始和结束索引。 例如 : Explanation : [3, 6] [9], [9,0] These all are the subarrays with their sum equal to 9. 问题答案: 解决这个问题的基本蛮力方法是生成给定数组的所有子数组,然后遍历生成的子数组并计算总和,如果这个总和等于

  • 本文向大家介绍编写Golang程序以查找数组中具有最小值的元素,包括了编写Golang程序以查找数组中具有最小值的元素的使用技巧和注意事项,需要的朋友参考一下 例子 A1 = [2、4、6、7、8、10、3、6、0、1];最小数量为0; A2 = [12、14、16、17、18、110、13、16、10、11];最小数量为10; 解决这个问题的方法 步骤1:将第0个索引处的数字视为最小值,min_

  • 本文向大家介绍编写Golang程序以查找给定范围内的质数,包括了编写Golang程序以查找给定范围内的质数的使用技巧和注意事项,需要的朋友参考一下 例子 输入num1 = 3和num2 = 8 =>质数是:3、5、7 输入num1 = 8和num2 = 23 =>质数是:11,13,17,19,23 解决这个问题的方法 步骤1:定义一个接受两个数字num1和num2的函数,类型为int。 步骤2:

  • 本文向大家介绍在C ++中的BST中找到具有给定总和的对,包括了在C ++中的BST中找到具有给定总和的对的使用技巧和注意事项,需要的朋友参考一下 在本教程中,我们将编写一个程序,在二进制搜索树中找到总和等于给定数字的对。 我们将在两个不同的列表中存储树的值和树的值以查找对。让我们看看解决问题的步骤。 为二叉树创建一个结构节点。 编写一个函数以将新节点插入二进制搜索树。 请记住,在二叉搜索树中,所