首页 > 其他分享 >15. 三数之和c

15. 三数之和c

时间:2024-03-18 16:34:04浏览次数:17  
标签:count 15 returnSize int 三数 sum return array

/**
 * Return an array of arrays of size *returnSize.
 * The sizes of the arrays are returned as *returnColumnSizes array.
 * Note: Both returned array and *columnSizes array must be malloced, assume caller calls free().
 */
int temp[4];

int cmp(const void* a,const void* b){
    int x=*(int*)a;
    int y=*(int*)b;
    if(x>y) return 1;
    return -1;
}

void dfs(int** array,int* nums,int numsSize,int* returnSize,int* column,int index,int sum,int count){
    if(count>3) return ;
    if(index>numsSize) return;
    if(index == numsSize && (count!=3 || sum!=0)) return;
    if(count==3&&sum!=0 ) return ;
    if(count==3 && sum==0){
        column[*returnSize]=3;
        array[*returnSize]=(int*)malloc(sizeof(int)*3);
        for(int i=0;i<3;i++) array[*returnSize][i]=temp[i];
        (*returnSize)++;
        return;
    }
    printf("%d ", index);
    temp[count]=nums[index];
    dfs(array,nums,numsSize,returnSize,column,index+1,sum+nums[index],count+1);
    while(index!=numsSize-1 && nums[index] == nums[index+1]) index++;
    dfs(array,nums,numsSize,returnSize,column,index+1,sum,count);
}

int** threeSum(int* nums, int numsSize, int* returnSize, int** returnColumnSizes) {
    qsort(nums,numsSize,sizeof(int),cmp);
    *returnSize=0;
    int* column=(int*)malloc(sizeof(int)*50000);
    int** array=(int**)malloc(sizeof(int*)*50000);
    dfs(array,nums,numsSize,returnSize,column,0,0,0);
    *returnColumnSizes=column;
    return array;   
}

 

标签:count,15,returnSize,int,三数,sum,return,array
From: https://www.cnblogs.com/llllmz/p/18080702

相关文章

  • CADEditorX 15.0.2 Patch Fix
    CADEditorX是一个ActiveX组件,用于在任何支持ActiveX和COM技术的开发环境(例如C#、VisualC++、Delphi、VB、JavaScript等)中向网页或正在开发的应用程序添加CAD功能。它可以查看、编辑、转换、打印和测量DWG、DXF、SVG、HPGL、STEP、IGES、STL等CAD文件。易于使用的......
  • Ubuntu安装pg15和pgvector
    Ubuntu安装pg15,添加源echo"debhttp://apt.postgresql.org/pub/repos/aptfocal-pgdgmain">/etc/apt/sources.list.d/pgdg.listwget--quiet-O-https://www.postgresql.org/media/keys/ACCC4CF8.asc|sudoapt-keyadd-apt-getupdatesudoaptinsta......
  • 【2024-03-15】连岳摘抄
    23:59我们应该爱我们的故事。因为生而为人,在困难的境遇中,我们竭尽全力地活着,维持着自尊。生存本已艰难,情绪更是汹涌,旅途中亦难有馈赠......别忘了:生而为人,去生活,去爱,去哭,去希望,去感受......                           ......
  • 代码随想录算法训练营第十天|LeetCode 20.有效的括号、1047.删除字符串中的所有相邻重
    20.有效的括号题目链接:https://leetcode.cn/problems/valid-parentheses/description/解题思路:题目转化:三种类型的括号,需要做匹配匹配规则是:左右括号的类型要匹配、数量要一致,而且要按照顺序匹配例子是:“()”、“(){}[]”、“(([]))”条件转化:按照顺序匹配:......
  • 洛谷——P1152欢乐的跳
      思路1、接收数据2、abs得出相邻两数差的绝对值,存入数组3、用f=true,记录是否满足条件4、对数组进行排序后,判断是否等于[1,n-1]间的数,有一个不是就跳出循环 importjava.util.Arrays;importjava.util.Scanner;publicclassMain{publicstaticvoidmain(St......
  • 15. SPI通信协议
    一、SPI通信协议简介  SPI是SerialPeripheralinterface缩写,顾名思义就是串行外围设备接口。SPI通信协议是Motorola公司首先在其MC68HCXX系列处理器上定义的。SPI接口是一种高速的全双工同步的通信总线。SCK(SerialClock)时钟信号,由主设备产生。MOSI(MasterOut/......
  • 第15题. 三数之和
    第15题.三数之和力扣题目链接(opensnewwindow)给你一个包含n个整数的数组 nums,判断 nums 中是否存在三个元素a,b,c,使得 a+b+c=0?请你找出所有满足条件且不重复的三元组。注意: 答案中不可以包含重复的三元组。示例:给定数组nums=[-1,0,1,2,-1,-4],......
  • 圆锥曲线15
    思路简单,计算量过大的一题,强行堆砌计算量已知抛物线\(C:y^2=2x\)的焦点为\(F\),其准线\(l\)与\(x\)轴交于点\(P\),过点\(P\)的直线与\(C\)交于点\(A,B\)(\(A\)在\(B\)的左侧)(1)若点\(A\)是线段\(PB\)的中点,求\(A\)的坐标(2)若直线\(AF\)与\(C\)交于点\(D\),记\(\triangleBDP\)内......
  • 蓝桥杯单片机STC15F2K60S2第十三届省赛代码详细讲解(附完整代码)
     一、前言            在蓝桥杯单片机的比赛当中,很多传感器都是会经常使用到的,比如说DS18B20和DS1302等,都是会经常用到的,所以我们要把这些传感器都学会一下。在省十三的蓝桥杯单片机题目中,我自己也写了一下这个代码,可能有些地方会有点问题,但是大致的功能还是能......
  • 题目 2154: 取余运算
    题目描述:输入b,p,k的值,求b^pmodk的值。其中b,p,k×k为长整型数。解题思路:如果指数为奇数,那么结果乘以当前的底数,指数除以2(整除运算)。如果指数为偶数,那么底数变为原来底数的平方,指数除以2。代码:分治算法packagelanqiao;importjava.math.BigInteger;importjava.util......