回答

收藏

在数组中找到总和最接近零的一对

技术问答 技术问答 191 人阅读 | 0 人回复 | 2023-09-12

问题 :
' Z1 E7 J6 N2 [4 x! O) v) [" `给定  ve 和 -ve 整数组,我们需要在数组中找到总和接近零的一对。* `" w* i/ ]( A) T7 b9 N) S
例如:
# W! o6 h$ ]  M! t/ @" `9 B0 I8 A4 narray[]={1,3,-5,7,8,20,-40,6};The pair whose sum is closest to zero :  -5 and                                                                                    
; E: ?) h# S( G3 q0 @7 ~    解决方案:                                                               
3 S8 X4 P8 ^) R  X4 T. i- Y/ @/ h! A                                                                您可以检查每对数字并找到最小和。
- N& B; q5 [7 n( ]% y( Ejava代码:
$ f3 x; y$ @' |% X$ b/ `. {7 Xpublic static void findPairWithMinSumBruteForce(int arr{     if(arr.length解决方案2:
9 \0 a( U- J1 }+ Q排序数组。* 我们将维护两个索引,一个在开始(l=0),一个在结尾(r=n-1)2 |: b2 H$ m6 E0 x4 u' d
迭代直到 l
, y& T' j4 W. j# e; \1 Bjava代码:& P. k, a: }5 T5 y- k
public static void findPairWithMinSum(int arr[]Sort the array,you can use any sorting algorithm to sort it        Arrays.sort(arr);        int sum=0;           int minimumSum = Integer.MAX_VALUE;        int n=arr.length;        if(n时间复杂:O(NLogN)0 f0 S4 Q) z# J# H
最接近零的对的 Java 程序:9 f4 {$ d$ J, g- y  v+ e" |5 G
package org.arpit.java2blog;import java.util.Arrays;public class findPairClosestToZero    public static void main(String[] args)           int array[]={1,30,-5,70,-8,20,-40、60};       findPairWithMinSumBruteForce(array);        findPairWithMinSum(array);   }    public static void  findPairWithMinSumBruteForce(int arr[])           if(arr.length当您操作程序时,您将获得以下输出:/ a% \% E+ H- D, a5 P' T
    The pair whose sum is closest to zero using brute force method: 1 -5 The pair whose sum is closest to zero : -5 1
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则