亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

【C語言】LeetCode 18 4Sum

2019-11-14 11:09:30
字體:
供稿:網(wǎng)友

題目:

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]]

思路:

采用循環(huán)或者遞歸,逐個(gè)查找計(jì)算總和。

代碼一(函數(shù)循環(huán),12ms)

/** * Return an array of arrays of size *returnSize. * Note: The returned array must be malloced, assume caller calls free(). */int** fourSum(int* nums, int numsSize, int target, int* returnSize) {    int flag;    int temp;    int min;    int **output=NULL;    int last1,last2,last3,last4;//用于記錄上一次取值    //用于判斷是否判斷此次取值與上次取值是否相同    int flag1=0;    int flag2=0;    int flag3=0;    int flag4=0;    int sizereturn=0;    //先進(jìn)行排序    for(int i=0;i<numsSize;i++)    {        min=nums[i];        for(int j=i;j<numsSize;j++)        {            if(min>=nums[j])            {                flag=j;                min=nums[j];            }        }        temp=nums[flag];        nums[flag]=nums[i];        nums[i]=min;    }    for(int i=0;i<numsSize-3;i++)    {        if(flag1&&nums[i]==last1)continue;//改變第一個(gè)值時(shí)不可與前一個(gè)取值相同,否則重復(fù)        if(4*nums[i]>target)break;        if((nums[i]+nums[numsSize-1]+nums[numsSize-2]+nums[numsSize-3])<target)continue;        flag2=0;        for(int j=i+1;j<numsSize-2;j++)        {            if(flag2&&nums[j]==last2)continue;//改變第二個(gè)值時(shí)不可與前一個(gè)取值相同,否則重復(fù)            if((nums[i]+3*nums[j])>target)break;            //排序之后,最后的值最大,如果加上最后的值仍小于target,則跳過            if((nums[i]+nums[j]+nums[numsSize-2]+nums[numsSize-1])<target)continue;            flag3=0;            for(int k=j+1;k<numsSize-1;k++)            {                if(flag3&&nums[k]==last3)continue;//改變第三個(gè)值時(shí)不可與前一個(gè)取值相同,否則重復(fù)                if((nums[i]+nums[j]+nums[k]+nums[k])>target)break;                if((nums[i]+nums[j]+nums[k]+nums[numsSize-1])<target)continue;                flag4=0;                for(int m=k+1;m<numsSize;m++)                {                    if(flag4&&nums[m]==last4)continue;                    if(nums[i]+nums[j]+nums[k]+nums[m]==target)                    {                        sizereturn++;                        output=(int**)realloc(output,sizereturn*sizeof(int*));                        *(output+sizereturn-1)=(int*)malloc(4*sizeof(int));                        output[sizereturn-1][0]=nums[i];                        output[sizereturn-1][1]=nums[j];                        output[sizereturn-1][2]=nums[k];                        output[sizereturn-1][3]=nums[m];                    }                    else if((nums[i]+nums[j]+nums[k]+nums[m])>target)break;                    flag4=1;                    last4=nums[m];                }                flag3=1;                last3=nums[k];            }            flag2=1;            last2=nums[j];        }        flag1=1;        last1=nums[i];    }    *returnSize=sizereturn;    return output;}

代碼二(遞歸函數(shù),19ms)

/** * Return an array of arrays of size *returnSize. * Note: The returned array must be malloced, assume caller calls free(). */void findtarget(int* nums, int numsSize, int target,int output[],int index,int n,int ***returnarr,int *returnSize){    int flag=0;    int last;    if(n==1)    {        for(int i=index;i<numsSize-n+1;i++)        {            if(flag&&last==nums[i])continue;            if(-1*nums[i]+target==0)            {                (*returnSize)++;                output[n-1]=nums[i];                *returnarr=(int**)realloc(*returnarr,(*returnSize)*sizeof(int*));                *(*returnarr+(*returnSize)-1)=(int*)malloc(4*sizeof(int));                for(int j=0;j<4;j++)                {                    (*returnarr)[*returnSize-1][j]=output[3-j];                }            }            last=nums[i];            flag=1;        }    }    else    {        for(int i=index;i<numsSize-n+1;i++)        {            int sum=nums[i];            int sum2;            if(flag&&last==nums[i])continue;            output[n-1]=nums[i];            for(int si=numsSize-1;si>(numsSize-n);si--)                sum+=nums[si];            sum2=n*nums[i];            if(sum2>target)break;            if(sum<target)continue;            findtarget(nums,numsSize,target-nums[i],output,i+1,n-1,returnarr,returnSize);            last=nums[i];            flag=1;        }    }}int** fourSum(int* nums, int numsSize, int target, int* returnSize) {    int output[4];    int **returnarr=NULL;    int num=0;    int flag=0;    int last;    int min;    int minflag;    int temp;    *returnSize=0;    for(int i=0;i<numsSize;i++)    {        min=nums[i];        for(int j=i;j<numsSize;j++)        {            if(min>=nums[j])            {                minflag=j;                min=nums[j];            }        }        temp=nums[minflag];        nums[minflag]=nums[i];        nums[i]=min;    }    findtarget(nums,numsSize,target,output,0,4,&returnarr,returnSize);    return returnarr;}

思路拓展:

采用遞歸函數(shù)稍加修改可適用于K-SUM問題
發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
人体私拍套图hdxxxx| 蜜桃狠狠狠狠狠狠狠狠狠| 欧美最猛性xxxxx免费| 中文字幕第36页| 成人性免费视频| 国产美女视频一区| 17c精品麻豆一区二区免费| 久久亚洲春色中文字幕| 国产精品欧美激情| 91极品尤物在线播放国产| 熟妇人妻久久中文字幕| 蜜臀av午夜精品久久| 国产丝袜视频在线播放| 欧美体内she精高潮| 欧美一级二级视频| 熟女俱乐部一区二区| 国产黄色高清视频| 国产精品久久一区二区三区不卡| 天堂а√在线最新版中文在线| 国产一级片av| 在线观看老湿视频福利| 中国一级特黄毛片大片| 日韩欧美中文字幕在线播放| 国产成人精品久久亚洲高清不卡| 99久久久无码国产精品免费蜜柚| 91最新网址| 正在播放欧美视频| 日韩动漫在线观看| 在线观看福利电影| 亚洲少妇最新在线视频| 日韩高清在线一区| 丰满湿润大白屁股bbw按摩| 国产日产亚洲精品系列| 在线观看黄色小视频| 四虎免费播放| 好吊操这里只有精品| 男人的天堂在线播放| 成人动漫视频在线观看完整版| 色先锋资源在线播放av| 欧美乱做爰xxxⅹ久久久| 欧美日韩亚洲综合一区二区三区| 538任你躁精品视频网免费| 免费极品av一视觉盛宴| 国产视频一区二区三区在线观看| 国产精品久久久亚洲一区| 粉嫩一区二区三区在线观看| 日韩a级片在线观看| 成人精品一区二区三区校园激情| 欧美中文在线视频| 欧美专区国产专区| 国产精品91久久久| 黄网站色大毛片| 一区二区三区高清在线| 亚洲大胆人体在线| 欧美偷拍综合| 无码精品在线观看| 麻豆传媒免费在线观看| 色偷偷偷亚洲综合网另类| 性欧美hd调教| 久久久久免费av| 久久av.com| 妞干网在线观看视频| 精品国产乱码| 日本在线成人一区二区| 国产精品少妇在线视频| 色女孩综合网| 爱情岛论坛亚洲首页入口章节| 超碰在线国产| 粉嫩av四季av绯色av第一区| 亚洲色图 激情小说| 精品国产鲁一鲁****| 国产毛片毛片毛片毛片| 精品国产乱码久久久久软件| 黄色成人免费观看| 久久精品青青大伊人av| 国产精品看片你懂得| 国产精品视频一区二区三区麻豆| av在线播放av| 久久久久久影视| 在线观看天堂av| 国产精品白浆流出视频| 国精产品一区一区三区有限在线| 亚洲精华液一区二区三区| 欧美另类色图| 精品成在人线av无码免费看| av电影免费看| 99精品一区二区三区无码吞精| 久久久久久久91| 三级视频网站在线| 日韩在线你懂得| 久久精品99久久| 欧美xxxx黑人又粗又长| 欧美极品视频在线观看| 久久国产成人精品| 可以看毛片的网址| 国产主播福利| 精品精品国产国产自在线| 在线观看免费播放网址成人| 亚洲第一视频网站| 国产精品久久久久久久久免费樱桃| 中文字幕五月天| 99re热精品| 中文字幕字幕中文在线中不卡视频| 26uuu另类欧美| 91精品国产黑色紧身裤美女| 亚洲欧美另类人妖| 国产又白又嫩又紧又爽18p| 日韩中文字幕有码| 欧美一区久久久| 国产美女久久久| 欧美大片网址| 人体精品一二三区| 97色在线观看| 国产h色视频在线观看| 99热超碰在线| 秋霞影院午夜丰满少妇在线视频| 91啪亚洲精品| 国产精品久久久999| 免费的黄网站在线观看| 精品久久久久久久免费人妻| 色棕色天天综合网| 欧美日韩另类综合| 538任你躁在线精品视频网站| 亚洲成人av免费在线观看| 国产精品久久久久7777婷婷| 一区二区三区欧美久久| 精品视频在线观看日韩| 日本一区二区三区四区视频| 久久成人福利视频| 亚洲欧美自偷自拍另类| 欧洲美女精品免费观看视频| 黄页视频在线观看| av在线你懂的| 亚洲熟女一区二区三区| 国内免费久久久久久久久久久| 日本免费在线视频观看| 激情久久免费视频| 免费性色视频| 在哪里可以看毛片| 色婷婷综合久久久久| 中国成人亚色综合网站| 午夜啪啪小视频| 手机看片一区二区三区| 欧美暴力喷水在线| 国产手机在线观看| yellow中文字幕久久| 四虎激情影院| 国产综合精品在线| 亚洲成a人片在线www| 国产精品久久精品| 欧美一区二区成人| 欧美性生活大片免费观看网址| 中文字幕在线综合| 免费看黄色的网站| 欧美激情视频在线播放| 路边理发店露脸熟妇泻火| 亚洲成年人网站在线观看| 女女百合国产免费网站| 五月久久久综合一区二区小说| 精品国产一区二区在线观看| 亚洲国产欧美在线成人app| 成人sese在线| 野花视频免费在线观看| 91豆花精品一区| 欧美限制电影| 中文字幕一区二区三区人妻| 一级片免费网站| v天堂中文在线| 成人深夜福利app| 精品福利一二区| 91超薄肉色丝袜交足高跟凉鞋| 2021国产精品久久精品| 熟妇无码乱子成人精品| 国产一级视频| 国产麻豆一精品一男同| 欧美精品aⅴ在线视频| 99久久免费国产精精品| 欧美午夜久久| 亚洲欧洲一区二区天堂久久| 久久综合加勒比| 国产成人久久婷婷精品流白浆| 欧美理论电影| 欧美精品久久久久久久免费| 一级黄色录像视频| 色婷婷综合久久久中字幕精品久久| 日本a级片电影一区二区| 亚洲尤物在线| 中日韩美女免费视频网址在线观看| 天堂在线免费av| 91在线视频免费观看| 国产传媒免费在线观看| 精品女人久久久| 欧美××××黑人××性爽| 性一交一乱一区二区洋洋av| 久久久久久国产精品免费无遮挡| 熟女高潮一区二区三区| 美女被啪啪一区二区| 在线观看精品国产| 国产www在线| 瑟瑟视频在线观看| 777av视频| 日本jizz中国| 一二三区在线视频| 国产一区二区日韩精品| 这里只有精品电影| 久久精品国产亚洲av久| 四虎亚洲成人| 色噜噜狠狠成人中文综合| 国产精品视频免费在线| 黄页视频在线观看| 黄色亚洲在线| 国产成人在线综合| 国产一区二区三区四区五区美女| 国产91亚洲精品一区二区三区| 69av亚洲| 国产欧美日韩精品专区| 国产欧美日韩精品在线观看| 91精品久久久久久久久99蜜臂| 自拍偷拍亚洲激情| 久久精品色欧美aⅴ一区二区| 在线观看的av| 一个人看的www视频在线免费观看| 性感av在线播放| 18岁以下禁止观看的美女视频| 欧美aa在线| 人妻互换免费中文字幕| 美女黄视频在线观看| 午夜影院免费看| 国产一区二区久久久久| 免费在线日本| 亚洲国产97在线精品一区| 在线视频欧美性高潮| 欧洲中文字幕精品| 日本天堂网在线| 欧美大片一区二区三区| 欧美xxxxxx| 欧美诱惑福利视频| 99国产超薄肉色丝袜交足的后果| 久久精品一区二区三区四区五区| 国产欧美精品一区二区| 久久99精品久久久久久三级| 五月亚洲婷婷| 在线免费三级电影网站| 你懂的视频在线看| 草视频在线观看| 快播电影网址老女人久久| 亚洲精品va| 午夜精品一二三区| 97超碰中文字幕| 中文字幕人妻一区二区三区视频| 国产综合无码一区二区色蜜蜜| 91精品国产色综合久久不卡蜜臀| 在线免费日韩片| 亚洲激情视频小说| 国产麻豆精品视频一区二区| 亚洲91中文字幕无线码三区| 亚洲精品mv在线观看| 一级毛片美女欧洲| 亚洲高清资源综合久久精品| 成人亚洲一区二区三区| 欧美国产高跟鞋裸体秀xxxhd| 奇米成人av国产一区二区三区| 久久精品视频导航| 成人线上播放| 伊人网视频在线| 国内偷拍精品视频| 欧美日韩国产探花| 99热这里只有成人精品国产| 欧美性片在线观看| 欧美成人精品欧美一| 精品人妻无码一区| 日本在线一级片| 七七婷婷婷婷精品国产| 美女黄色网址| 亚洲福利视频一区| 成熟丰满熟妇高潮xxxxx视频| 成人影视免费观看| 国产精品一区在线观看你懂的| 亚洲视频中文字幕在线观看| 亚洲精品一区二区毛豆| 人人九九精品视频| 亚洲国产婷婷香蕉久久久久久99| 欧美日韩一区二区三区免费看| 欧美性猛片xxxx免费看久爱| 美女露胸一区二区三区| 中文字幕人成高清视频| 男人舔女人下面高潮视频| 青青草原国产视频| 中文字幕在线观看一区二区三区| 亚洲图片小说在线| 99国产欧美久久久精品| 欧美自拍偷拍一区二区| 亚洲小视频在线播放| 欧美视频在线不卡| 国产国产精品人在线视| 一本色道久久亚洲综合精品蜜桃| 影音先锋中文字幕在线| 高清欧美性猛交xxxx黑人猛| 一本一道久久a久久精品综合| 欧美一区深夜视频| 成年人免费看毛片| a美女胸又www黄视频久久| 免费无码国产v片在线观看| 亚洲一二区在线观看| 国模 一区 二区 三区| 欧美丝袜一区二区| 日本午夜大片| 亚洲成人av在线影院| 污视频在线看| 亚洲AV午夜精品| 欧美在线不卡视频| 欧美牲交a欧美牲交aⅴ免费下载| 亚洲加勒比久久88色综合| 色中色综合网| 日本午夜精品理论片a级app发布| 2019中文亚洲字幕| 国产不卡一区二区三区在线观看| av高清一区| 久草热8精品视频在线观看| 人妻无码中文字幕免费视频蜜桃| 两女双腿交缠激烈磨豆腐| 宅男在线国产精品| 欧美一区一区| 日韩成人综合| 久青草视频在线播放| 久久亚洲精品中文字幕| 91精品国产乱码| 中文字字幕一区二区三区四区五区|