zoukankan      html  css  js  c++  java
  • 【leetcode】18. 四数之和

    #define MAXLEN 50
    int cmp(const void* a, const void* b){
        return *(int*)a - *(int*)b;
    }
    int** fourSum(int* nums, int numsSize, int target, int* returnSize, int** returnColumnSizes){
        int first=0, secend, left, right, temp;
        *returnSize=0;
        *returnColumnSizes=(int*)calloc(MAXLEN,sizeof(int));
        int** arr=(int**)calloc(MAXLEN,sizeof(int*));
        qsort(nums, numsSize, sizeof(int), cmp);
        while(first<numsSize-3 ){        
            secend=first+1;
            while (secend < numsSize - 2 ){        
                left = secend + 1; right = numsSize - 1;            
                while (left < right){
                    temp = nums[first] + nums[secend] + nums[left] + nums[right];    
                    if (temp == target){
                        arr[(*returnSize)]=(int*)calloc(4,sizeof(int));
                        arr[(*returnSize)][0]=nums[first];
                        arr[(*returnSize)][1]=nums[secend];
                        arr[(*returnSize)][2]=nums[left];
                        arr[(*returnSize)][3]=nums[right];
                        (*returnColumnSizes)[(*returnSize)++]=4;
                        while (nums[left] == nums[++left] && left < right);
                        while (nums[right] == nums[--right] && left < right);
                    }
                    else if (temp < target){
                        while (nums[left] == nums[++left] && left < right);
                    }            
                    else{
                        while (nums[right] == nums[--right] && left < right);
                    }                    
                }
                while (nums[secend] == nums[++secend] && secend < numsSize - 2);
            }
            while (nums[first] == nums[++first] && first < numsSize - 3);
        }   
        return arr;
    }
  • 相关阅读:
    R 语言中的数据结构
    minimap2 长reads比对工具
    seqtk 一款快速处理fasta/fastq 文件的小程序
    Eclipse R语言开发环境搭建 StatET插件
    Windows 安装R
    HttpClient 发送请求和参数
    Java Base64编码和解码
    docker 安装
    docker
    inotify 监控文件系统操作
  • 原文地址:https://www.cnblogs.com/ganxiang/p/14101052.html
Copyright © 2011-2022 走看看