三数之和

给定一个数组或输入一个数组,在数组里取三个数使这三个数等于一个特定的值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};
    }

}
相关推荐
我爱C编程1 小时前
基于Qlearning强化学习的1DoF机械臂运动控制系统matlab仿真
算法
chao_7891 小时前
CSS表达式——下篇【selenium】
css·python·selenium·算法
chao_7891 小时前
Selenium 自动化实战技巧【selenium】
自动化测试·selenium·算法·自动化
YuTaoShao1 小时前
【LeetCode 热题 100】24. 两两交换链表中的节点——(解法一)迭代+哨兵
java·算法·leetcode·链表
怀旧,2 小时前
【数据结构】8. 二叉树
c语言·数据结构·算法
泛舟起晶浪2 小时前
相对成功与相对失败--dp
算法·动态规划·图论
地平线开发者2 小时前
地平线走进武汉理工,共建智能驾驶繁荣生态
算法·自动驾驶
IRevers3 小时前
【自动驾驶】经典LSS算法解析——深度估计
人工智能·python·深度学习·算法·机器学习·自动驾驶
前端拿破轮3 小时前
翻转字符串里的单词,难点不是翻转,而是正则表达式?💩💩💩
算法·leetcode·面试
凤年徐3 小时前
【数据结构与算法】203.移除链表元素(LeetCode)图文详解
c语言·开发语言·数据结构·算法·leetcode·链表·刷题