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

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

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

例子

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

解决这个问题的方法

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

步骤2: 定义一个映射变量,输入map [int] int

步骤3:将给定数组迭代为i

步骤4:如果不存在映射sum-arr [i]中的关键字,则mapping [arr [i]] = i

步骤5:如果存在,则打印“发现对”。

步骤6: 最后,打印“找不到对”。

程序

package main
import "fmt"
func findSumPair(arr []int, sum int){
   mapping := make(map[int]int)
   for i:=0; i<len(arr); i++{
      if mapping[sum-arr[i]] == 0{
         mapping[arr[i]] = i
      } else {
         fmt.Printf("Pair for given sum is (%d, %d).\n", arr[mapping[sum-arr[i]]], arr[i])
         return
      }
   }
   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 (7, 8).
在给定数组中找不到配对。

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

  • 本文向大家介绍编写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:

  • 本文向大家介绍编写Golang程序以查找数组中元素的频率,包括了编写Golang程序以查找数组中元素的频率的使用技巧和注意事项,需要的朋友参考一下 例子 在输入数组中,arr = [2、4、6、7、8、1、2] 给定数组中2的频率为2 7的频率为1 3的频率为0。 解决这个问题的方法 步骤1:定义一个接受数组和数字的函数 步骤2:声明一个变量count = 0。 步骤3:迭代给定数组,如果在数组中