首页 > 其他分享 >454. 四数相加 II c

454. 四数相加 II c

时间:2024-03-01 15:23:32浏览次数:32  
标签:repeatnext index 四数 hash temp int 454 number II

typedef struct node{
    int sum;
    int count;
    struct node* repeatnext;
}hash;

void init_hash(hash* h){
    for(int i=0;i<128;i++){
        h[i].sum=0;
        h[i].count=0;
        h[i].repeatnext=NULL;
    }
}

hash* find_hash(hash* h,int number){
    int index=abs(number)%127;
    hash* temp=&h[index];
    while(temp){
        if(temp->sum==number) return temp;
        temp=temp->repeatnext;
    }
    return NULL;
}

void insert_hash(hash* h,int number){
    int index=abs(number)%127;
    if(h[index].count==0){
        h[index].sum=number;
        h[index].count=1;
    }else{
        if(find_hash(h,number)){
            find_hash(h,number)->count++;
        }else{
            hash* temp=(hash*)malloc(sizeof(hash));
            temp->sum=number;
            temp->count=1;
            temp->repeatnext=NULL;
            temp->repeatnext=h[index].repeatnext;
            h[index].repeatnext=temp;
        }
    }
}

int fourSumCount(int* nums1, int nums1Size, int* nums2, int nums2Size, int* nums3, int nums3Size, int* nums4, int nums4Size){
    hash h[128];
    init_hash(h);
    int n=nums1Size;
    int sumcount=0;
    for(int i=0;i<n;i++){
        for(int j=0;j<n;j++){
            insert_hash(h,nums1[i]+nums2[j]);
        }
    }
    for(int i=0;i<n;i++){
        for(int j=0;j<n;j++){
            int temp=nums3[i]+nums4[j];
            if(find_hash(h,0-temp)){
                sumcount+=find_hash(h,0-temp)->count;
            }
        }
    }
    return sumcount;
}

结果:

标签:repeatnext,index,四数,hash,temp,int,454,number,II
From: https://www.cnblogs.com/llllmz/p/18047134

相关文章

  • 代码随想录算法训练营第三十二天 | 45.跳跃游戏II ,55. 跳跃游戏,122.买卖股票的最佳时
     122.买卖股票的最佳时机II 已解答中等 相关标签相关企业 给你一个整数数组 prices ,其中 prices[i] 表示某支股票第 i 天的价格。在每一天,你可以决定是否购买和/或出售股票。你在任何时候 最多 只能持有 一股 股票。你也可以先购......
  • 安装IIS及IIS部署.net core站点
    一.为啥要有网络站点我们在本地编写好网站程序,如何让别人也能访问到你编写好的网页呢?此时就需要我们有个专属的容器来承接住,并且能让别人进行访问。接下来就是我们的重点IIS部署网站站点二.需要做的准备工作1.安装IIS(InternetInformationServices(IIS,互联网信息服务))路径:......
  • iis部署.net项目
    介绍IIS(InternetInformationServices)是由微软开发的一款Web服务器软件,用于托管和管理Web应用程序。在部署.NET项目时,IIS是一个常见的选择。本文将介绍如何在IIS上部署.NET项目,并提供一些代码示例。步骤以下是在IIS上部署.NET项目的一般步骤:1.安装IIS首先,确保计算机上已安装II......
  • 代码随想录 第八天 | 344.反转字符串 ● 541. 反转字符串II ● 卡码网:54.替换数字 ●
    LeetCode:344.反转字符串-力扣(LeetCode)思路:双指针的想法用while循环遍历两侧指针,效率高classSolution{publicvoidreverseString(char[]s){inti=0,j=s.length-1;while(i<j){chartemp;temp=s[j];......
  • 无法启动 IIS Express Web 服务器、无法注册 URL、访问被拒绝
    https://stackoverflow.com/questions/23502327/unable-to-launch-the-iis-express-web-server-failed-to-register-url-access-is-d34当我尝试从远程位置访问我的网站时,发生了这种情况:首先,applicationhost.config(VS2015)包含标准:<bindingprotocol="http"bindingInform......
  • IIS配置Websocket
    前言作为新手小白最近有项目用了websocket,发布到iis后用其他设备连接不到,网上查询了一下,需要配置一下,记录下配置方法,防止忘记在控制面板/程序中打开启用或关闭windows功能2.启用websocket协议3.打开iis中的配置编辑器4.选择system.webserver/websocket节点......
  • 541. 反转字符串 II C
    voidreverse_string(char*s,inthead,inttail){while(head<=tail){chart=s[head];s[head]=s[tail];s[tail]=t;head++;tail--;}}char*reverseStr(char*s,intk){intssize=0;while(s[ssize]!=......
  • 代码随想录算法训练营day08 | leetcode 344. 反转字符串、541. 反转字符串 II、54. 替
    目录题目链接:344.反转字符串-简单题目链接:541.反转字符串II-简单题目链接:[54.替换数字](题目页面(kamacoder.com))题目链接:151.反转字符串中的单词-中等题目链接:[55.右旋字符串](题目页面(kamacoder.com))题目链接:344.反转字符串-简单题目描述:编写一个函数,其作用是将......
  • 454. 四数相加 II C
    自己写了一个hash表。原来学过的数据结构关于hash的那章还是有实际用的,不是书架子。typedefstructnode{intsum;intcount;structnode*repeatnext;}hash;voidinit_hashtable(hashh[]){for(inti=0;i<127;i++){h[i].sum=0;h[i].......
  • yolo7检测学习Bubbliiiing的视频有感——(2)FileNotFoundError: [Errno 2] No such file
    这个问题作为老程序员是不应该犯的,因为只是相对路径和绝对路径的问题按照步骤将对应的数据集放入目录后,运行voc_annotation.py想要生成两个txt文件,结果发现报错FileNotFoundError:[Errno2]Nosuchfileordirectory其实就是classes_path和VOCdevkit_path的路径不对,像我自己......