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;
    }
  • 相关阅读:
    python内置函数枚举 enumerate()
    python内置函数map的介绍
    什么是lambda函数
    python urllib库 加密及解析url中中文汉字
    python解决高并发思路
    后端文件保存的两种方式
    matplotlib基本用法
    自编码器
    数据增强
    卷积神经网络
  • 原文地址:https://www.cnblogs.com/ganxiang/p/14101052.html
Copyright © 2011-2022 走看看