java 数组中查找和为特定值的两个元素

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 数组中查找和为特定值的两个元素相关的知识,希望对你有一定的参考价值。

package com.darwin.pikachu.example;

import com.alibaba.fastjson.JSON;
import com.google.common.collect.ArrayTable;
import com.google.common.collect.Table;

import java.util.*;

public class Test {

    public static void main(String[] args) {
        int[] a = new int[]{2,7,11,15};
        int[] result = sum(a,9);
        int[] ints = sum2(a, 9);
        System.out.println(JSON.toJSON(result));
        System.out.println(JSON.toJSON(ints));
    }

    /**
     * 数组中查找和为num的两个
     * @param a
     * @param num
     * @return
     */
    public static int[] sum(int[] a, int num) {
        for (int i = 0; i < a.length; i++) {
            int t = num - a[i];
            for (int j = i + 1; j < a.length; j ++) {
                if (t == a[j]) {
                    int[] result = new int[]{i, j};
                    return result;
                }
            }
        }
        return null;
    }

    /**
     * 数组中查找和为num的两个
     * @param a
     * @param num
     * @return
     */
    public static int[] sum2(int[] a, int num) {
        Map<Integer, Integer> indexMap = new HashMap<>();
        for (int i = 0; i < a.length; i++) {
            int t = num - a[i];
            if (indexMap.containsKey(t)) {
                return new int[]{i, indexMap.get(t)};
            }
            indexMap.put(a[i], i);
        }
        return null;
    }

}

以上是关于java 数组中查找和为特定值的两个元素的主要内容,如果未能解决你的问题,请参考以下文章

算法笔记_037:寻找和为定值的两个数(Java)

漫画:如何在数组中找到和为 “特定值” 的两个数?

查找两个总和为特定值的索引

c#如何查找string数组的某一个值的索引

编程之法section II: 2.2 和为定值的两个数

求数组和为某一个固定值的下标