1. 程式人生 > 其它 >Android訊息機制分析

Android訊息機制分析

Java回溯版(超時)

package leetcode;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class demo_18 {
    public List<List<Integer>> fourSum(int[] nums, int target) {
        List<List<Integer>> list=new ArrayList<List<Integer>>();
        Arrays.sort(nums);
        
long sum=0; backtrack(list, new ArrayList<Integer>(), sum, target, nums, 0); System.out.println(list); return list; } public void backtrack(List<List<Integer>> list,List<Integer> alist,long sum,int target,int nums[],int j) { if(sum==target&&alist.size()==4) { list.add(
new ArrayList<Integer>(alist)); } else { for(int i=j;i<nums.length;i++) { if(i>j&&nums[i]==nums[i-1]) {continue;} j=i; if(alist.size()<4) { sum=sum+nums[i]; alist.add(nums[i]); backtrack(list, alist, sum, target, nums, j
+1); alist.remove(alist.size()-1); sum=sum-nums[i]; } else { break; } } } } public static void main(String[] args) { // TODO Auto-generated method stub demo_18 d18=new demo_18(); int nums[]= {1,0,-1,0,-2,2,0,0,0}; d18.fourSum(nums, 0); } }