生活随笔
收集整理的這篇文章主要介紹了
java小编程----四数之和
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
給定一個包含?n 個整數(shù)的數(shù)組?nums?和一個目標值?target,判斷?nums?中是否存在四個元素 a,b,c?和 d?,使得?a + b + c + d?的值與?target?相等?找出所有滿足條件且不重復(fù)的四元組。
注意:
答案中不可以包含重復(fù)的四元組。
示例:
給定數(shù)組 nums = [1, 0, -1, 0, -2, 2],和 target = 0。
滿足要求的四元組集合為:
[
? [-1, ?0, 0, 1],
? [-2, -1, 1, 2],
? [-2, ?0, 0, 2]
]
package com.henu.likou;import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;public class Demo_力扣18四數(shù)之和 {public static void main(String[] args) {int[] nums = {1,0,-1,0,-2,2};int[] res = new int[4];ArrayList<String> list = new ArrayList<>();for (int i = 0; i < nums.length; i++) {for (int j = i+1; j < nums.length; j++) {for (int j2 = i+2; j2 < nums.length; j2++) {for (int k = i+3; k < nums.length; k++) {int a = nums[k];int b = nums[j2];int c = nums[j];int d = nums[i];if (a+b+c+d == 0) {res[0] = a;res[1] = b;res[2] = c;res[3] = d;Arrays.sort(res);//對輸入數(shù)組進行排序,以便后續(xù)的排除list.add(Arrays.toString(res));res = new int[4];}}}}}
// System.out.println(list);Map<String,Integer> hMap = new HashMap<>();for (int i = 0; i < list.size(); i++) {hMap.put(list.get(i), 1);}Set<Entry<String,Integer>> hSet = hMap.entrySet();for (Entry<String,Integer> entry : hSet) {System.out.println(entry.getKey());}}
}
?
總結(jié)
以上是生活随笔為你收集整理的java小编程----四数之和的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。