三数之和

给定一个数组或输入一个数组,在数组里取三个数使这三个数等于一个特定的值target,并返回这三个数的下标,要求不能有重复的组合。

java 复制代码
package 例题;

import java.util.HashMap;
//三数之和
public class Test1 {
    public static void main(String[] args) {
        int[] arr = {1, 2, 3, 5, 7, 9, 11, 13, 16, 14, 15,18, 94, 42, 35};
        int target = 40;//三数之和
        HashMap<Integer, Integer> map = new HashMap<>();
        HashMap<Integer, Integer> map2 = new HashMap<>();
        for (int i = 0; i < arr.length; i++) {
            map.put(arr[i], i);
        }
        for (int i = 0; i < arr.length; i++) {
            int w =target-arr[i];
            int[] xx = get(arr,w);
            if(xx[0]!=-1){
                if(i!=xx[0]&&i!=xx[1]){
                    if(map2.get(i)==null||map2.get(xx[0])==null){
                        map2.put(i,i);
                        map2.put(xx[0],xx[0]);
                        map2.put(xx[1],xx[1]);
                        System.out.println("位置:"+i+","+xx[0]+","+xx[1]);
                    }
                }
            }
        }
    }
    public static int[] get(int[] arr,int target){
        HashMap<Integer, Integer> map = new HashMap<>();
        for (int i = 0; i < arr.length; i++) {
            map.put(arr[i], i);
        }
        for (int i = 0; i < arr.length; i++) {
            int w = target - arr[i];
            Integer index = map.get(w);
            if (index != null) {
                return new int[]{i, index};
            }
        }
        return new int[]{-1,-1};
    }

}
相关推荐
张人玉7 分钟前
C# 常量与变量
java·算法·c#
weixin_446122461 小时前
LinkedList剖析
算法
百年孤独_2 小时前
LeetCode 算法题解:链表与二叉树相关问题 打打卡
算法·leetcode·链表
我爱C编程2 小时前
基于拓扑结构检测的LDPC稀疏校验矩阵高阶环检测算法matlab仿真
算法·matlab·矩阵·ldpc·环检测
算法_小学生2 小时前
LeetCode 75. 颜色分类(荷兰国旗问题)
算法·leetcode·职场和发展
运器1233 小时前
【一起来学AI大模型】算法核心:数组/哈希表/树/排序/动态规划(LeetCode精练)
开发语言·人工智能·python·算法·ai·散列表·ai编程
算法_小学生3 小时前
LeetCode 287. 寻找重复数(不修改数组 + O(1) 空间)
数据结构·算法·leetcode
岁忧3 小时前
(LeetCode 每日一题) 1865. 找出和为指定值的下标对 (哈希表)
java·c++·算法·leetcode·go·散列表
alphaTao3 小时前
LeetCode 每日一题 2025/6/30-2025/7/6
算法·leetcode·职场和发展
ゞ 正在缓冲99%…3 小时前
leetcode67.二进制求和
算法·leetcode·位运算