18. 4Sum

来源:互联网 发布:java sort排序算法 编辑:程序博客网 时间:2024/04/26 01:56

题目:4Sum

Given an array S of n integers, are there elements a,b, c, and d in S such that a + b +c + d = target? Find all unique quadruplets in the array which gives the sum of target.

Note: The solution set must not contain duplicate quadruplets.

For example, given array S = [1, 0, -1, 0, -2, 2], and target = 0.A solution set is:[  [-1,  0, 0, 1],  [-2, -1, 1, 2],  [-2,  0, 0, 2]]


同样的思路,用C语言怎么都是Runtime error,而JAVA的话就可以通过。

代码:

public class Solution {    public List<List<Integer>> fourSum(int[] nums, int target) {        int i=0,j=0;            List<List<Integer>> ret = new ArrayList<List<Integer>>();            Arrays.sort(nums);            int length=nums.length;                        for(i=0;i<length-3;i++)            {                if(i>0 && nums[i]==nums[i-1]) continue;                        for(j=i+1;j<length-2;j++)            {                if(j>(i+1) && nums[j]==nums[j-1]) continue;                            int s=j+1;            int e=length-1;                        while(s<e)            {                        int sum=nums[i]+nums[j]+nums[s]+nums[e];                        if(sum == target)                        {                                            List<Integer> t=new ArrayList<Integer>();            t.add(nums[i]);            t.add(nums[j]);            t.add(nums[s]);            t.add(nums[e]);            ret.add(t);                        while(s<e && nums[s]==nums[s+1])s++;            while(s<e && nums[e]==nums[e-1])e--;            s++;            e--;                                    }            else if(sum < target)            {            s++;            }            else             {            e--;            }                        }                        }            }                                        return ret;                  }}
















0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 两岁小宝宝不爱吃饭怎么办 4个月小宝宝咳嗽怎么办 3个月小宝宝咳嗽怎么办 2个月小宝宝咳嗽怎么办 8的岁儿童腿不直怎么办 作业盒子选错年级怎么办 两岁x型腿怎么办 绿萝叶子有水滴怎么办 打游戏变菜了怎么办 车被记号笔画了怎么办 水溶性彩铅受潮了怎么办 马克笔颜色涂深了怎么办 染发膏染眉毛了怎么办 用电容笔画画手有触感怎么办 CAD画图线性数字不居中怎么办 3d立体画笔堵塞怎么办 龋齿树脂填充老化后怎么办 小孩补过的牙疼怎么办 颜料弄到墙纸上怎么办 4岁的宝宝不爱涂色怎么办 oppo手机截图存不到相册怎么办 做的ih5保存不了怎么办 小偷偷东西发现后逃跑了怎么办? 网上有人传迷信诅咒怎么办 颜料粘在衣服上怎么办 家里有小偷撬锁怎么办 在家有人在撬门怎么办 6个月的宝宝腹泻怎么办 六个月大的宝宝拉肚子怎么办 六个月宝宝着凉拉肚子怎么办 六个月婴儿着凉拉肚子怎么办 怀孕六个月着凉拉肚子怎么办 六个月的婴儿消化不好怎么办 六个月婴儿不好好吃奶怎么办 六个月婴儿消化不好怎么办 六个月婴儿肠胃不好怎么办 受了惊吓后睡眠不好怎么办 宝宝夏季吃饭不爱带围嘴怎么办 3岁宝宝爱看电视怎么办 新生儿晚上哭闹不睡觉怎么办 档案丢了怎么办失业证