借助集合将复杂度降到n2,但耗时还是比较长。 import java.util.HashMap;

import java.util.HashSet;

import java.util.Scanner;

/**

* @Author: coderjjp

* @Date: 2020-05-07 8:40

* @Description:给定一个整数数组,判断其中是否有3个数和为N

* @version: 1.0

*/

public class Main {

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);

String ss[] = sc.nextLine().split(",");

int N = Integer.valueOf(ss[1]);

String[] s = ss[0].split(" ");

int arr[] = new int[s.length];

for (int i = 0; i

arr[i] = Integer.valueOf(s[i]);

HashSet set = new HashSet<>();

for (int i = 0; i

int target = N - arr[i];

for (int j = 0; j

if (j == i) continue;

if (set.contains(target - arr[j])){

System.out.println("True");

return;

}

set.add(arr[j]);

}

set.clear();

}

System.out.println("False");

}

}

比较好的方法是先排序,同样把三数和问题转化为两数和问题。

import java.util.Arrays;

import java.util.Scanner;

/**

* @Author: coderjjp

* @Date: 2020-05-07 11:56

* @Description:

* @version: 1.0

*/

public class Main {

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);

String ss[] = sc.nextLine().split(",");

int N = Integer.valueOf(ss[1]);

String[] s = ss[0].split(" ");

int arr[] = new int[s.length];

for (int i = 0; i

arr[i] = Integer.valueOf(s[i]);

Arrays.sort(arr);

int target, l, r;

for (int i = 0; i

target = N -arr[i];

l = i + 1;

r = s.length - 1;

while (l

if (arr[l] + arr[r] == target){

System.out.println("True");

return;

}else if (arr[l] + arr[r] > target)

r--;

else

l++;

}

}

System.out.println("False");

}

}

整型数组 判断 java,给定一个整数数组,判断其中是否有3个数和为N相关推荐

  1. 牛客 哔哩哔哩校招编程真题 给定一个整数数组,判断其中是否有3个数和为N 二分经典 三数之和

    题目描述 给定一个整数数组,判断其中是否有3个数和为N 输入描述: 输入为一行 逗号前为一个整数数组,每个元素间用空格隔开:逗号后为N 输出描述: 输出bool值 True表示存在3个和为N的数 Fa ...

  2. 作业帮:给定一个整数数组,找出其中两个数相加等于目标值(去重set)

    题目描述 给定一个整数数组,找出其中两个数相加等于目标值输入 [1,3,5,7,9,11] 10输出 1,9 3,7 代码: import java.util.HashMap; import java ...

  3. 数组两个整数相加 c语言,作业帮:给定一个整数数组,找出其中两个数相加等于目标值(去重set)...

    题目描述 给定一个整数数组,找出其中两个数相加等于目标值 输入 [1,3,5,7,9,11] 10 输出 1,9 3,7 代码: import java.util.HashMap; import ja ...

  4. Java 求一个整数数组的奇数和偶数的个数

    public class Array{public static void main(String[] args){int n=0,m=0;int a[]={12,45,89,44,36,52,78, ...

  5. 给定一个整数数组,判断是否存在重复元素。

    存在重复元素 给定一个整数数组,判断是否存在重复元素. 如果存在一值在数组中出现至少两次,函数返回 true .如果数组中每个元素都不相同,则返回 false 示例 1: 输入: [1,2,3,1] ...

  6. java,给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。

    标题:java,给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 一.示例 二.题解 方法一,暴力法:使用双重for循环,每 ...

  7. 给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。

    题目描述 给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和. 输入: [-2,1,-3,4,-1,2,1,-5,4] 输出: 6 解释: 连续子数组 ...

  8. 第1题 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标

    package com.leetcode; import java.util.ArrayList; import java.util.HashMap; import java.util.List; i ...

  9. 【leetcode】给定一个整数数组和一个整数 k, 你需要在数组里找到不同的 k-diff数对。

    给定一个整数数组和一个整数 k, 你需要在数组里找到不同的 k-diff 数对.这里将 k-diff 数对定义为一个整数对 (i, j), 其中 i 和 j 都是数组中的数字,且两数之差的绝对值是 k ...

最新文章

  1. 认识HTML5的WebSocket 认识HTML5的WebSocket
  2. 活动报名 | 上交大副教授谢伟迪:视频自监督学习
  3. p2p項目”復活“之想
  4. 我这样写代码,比直接使用 MyBatis 效率提高了 100 倍
  5. mysql分库分表备份脚本[转帖]
  6. ps如何修改图片大小尺寸_PS新手入门教程:学习如何修改画布的大小
  7. 陌陌宣布启用全新中文名“挚文集团” ,Q2净利润4.6亿元
  8. python隐式调用_c#隐式调用python_C#调用python脚本样例
  9. 解决MFC 窗口创建时 争夺焦点的问题
  10. 阿里云镜像加速Docker
  11. 最新影视双端直播盒子源码,自定义资源采集
  12. 2018-11-3-如何使用-Telegram
  13. django相关报错知识整理
  14. 冗余技术----热备份网关协议
  15. Gradle 2.0 用户指南翻译——第二十三章. Java 插件
  16. 从PCC到MIC(2)
  17. 自己写的一点福利代码(一)
  18. 误把电脑desktop文件删了怎么处理
  19. 微型计算机接口与技术答案,《微机原理与接口技术》课后习题答案
  20. 开源 – “这是最好的时代,这是最坏的时代”

热门文章

  1. jax-rs/jersey_使用JAX-RS(Jersey)的HTTP状态错误消息响应中的自定义原因短语
  2. Spring Boot自定义横幅生成
  3. 成为Java流专家–第2部分:中级操作
  4. Java性能监控:您应该了解的5个开源工具
  5. powermock模拟对象_使用PowerMock模拟构造函数
  6. scala rest_使用路标的Scala和Java的Twitter REST API
  7. HotSpot的-XshowSettings标志的简单性和价值
  8. activemq 连接_ActiveMQ网络连接器
  9. javafx 表单_JavaFX 2:创建登录表单
  10. 将PostgreSQL PL / Java安装为PostgreSQL扩展