【每日刷题】Day67

【每日刷题】Day67

🥕个人主页:开敲🍉

🔥所属专栏:每日刷题🍍

🌼文章目录🌼

1. 23. 合并 K 个升序链表 - 力扣(LeetCode)

2. 1189. “气球” 的最大数量 - 力扣(LeetCode)

3. 1207. 独一无二的出现次数 - 力扣(LeetCode)

1. 23. 合并 K 个升序链表 - 力扣(LeetCode)

//思路:记数排序。遍历K个链表,将每个元素出现的次数在以该元素为下标的位置记录于数组中。遍历数组,将所有下标不为0的下标元素链接为新链表。

typedef struct ListNode LN;

struct ListNode* mergeKLists(struct ListNode** lists, int listsSize)

{

    if(!listsSize)

        return NULL;

    int count[20002] = {0};

    for(int i = 0;i<listsSize;i++)

    {

        LN* tmp = lists[i];

        while(tmp)

        {

             //将每个元素出现的次数在以该元素为下标的位置记录

            count[tmp->val+10000]+=1;//由于链表元素取值为-10^4~10^4,因此这里需要将负数全部更正为正数。

            tmp = tmp->next;

        }

    }

    LN* newhead = (LN*)malloc(sizeof(LN));

    newhead->next = NULL;

    LN* ptail = newhead;

    for(int i = 0;i<20001;i++)

    {

        while(count[i])//将所有元素链接为新链表

        {

            LN* node = (LN*)malloc(sizeof(LN));

            node->val = i-10000;

            node->next = NULL;

            ptail->next = node;

            ptail = ptail->next;

            count[i]--;

        }

    }

    if(!newhead->next)

        return NULL;

    return newhead->next;

}

2. 1189. “气球” 的最大数量 - 力扣(LeetCode)

//思路:哈希表。记录text中每个元素的个数,判断能组成多少个balloon。

int maxNumberOfBalloons(char* text)

{

    int hash[27] = {0};

    for(int i = 0;i<strlen(text);i++)

    {

        hash[text[i]-'a']+=1;//记数

    }

    int ans = 0;

    char* s = "balloon";

    int min = INT_MAX;//当'b'、'a'、'l'、'o'、'n'有一个单词用完后,就无法继续组成balloon,min用于判断是否有单词用完

    while(min)

    {

        int i = 0;

        for(i = 0;i<strlen(s);i++)

        {

            if(hash[s[i]-'a']<min)//找用完的单词

                min = hash[s[i]-'a'];

            if(hash[s[i]-'a']==0)//单词用完无法组成,直接跳出循环,保留当前i的值,用于判断是否组成了一个balloon

                break;

            hash[s[i]-'a']--;

        }

        if(i==strlen(s))//组成balloon后ans++

            ans++;

    }

    return ans;

}

3. 1207. 独一无二的出现次数 - 力扣(LeetCode)

//思路:哈希表+排序+前后指针一次遍历。将数组中每个数的出现次数记录,并将其排序。排序后出现次数相同的一定是相邻的。前后指针遍历排序后的哈希表,找到相同的元素且不为0,return false;否则,出循环return true。

//记数排序

//采用记数排序是因为记数排序在面对数组中存在多个重复数据时速度更快

void CountSort(int* arr, int n)

{

    int min = 0;

    int max = 0;

    for (int i = 0; i < n; i++)

    {

        if (arr[i] < arr[min])

            min = i;

        if (arr[i] > arr[max])

            max = i;

    }

    int x = arr[min];

    int y = arr[max];

    int* tmp = (int*)calloc(y - x + 1, sizeof(int));

    for (int i = 0; i < n; i++)

    {

        tmp[arr[i] - x] += 1;

    }

    int count = 0;

    for (int i = 0; i < (y - x + 1); i++)

    {

        while (tmp[i])

        {

            arr[count++] = i + x;

            tmp[i]--;

        }

    }

}



 

bool uniqueOccurrences(int* arr, int arrSize)

{

    int hash[2002] = {0};

    for(int i = 0;i<arrSize;i++)

    {

        hash[arr[i]+1000]+=1;//记录每个元素出现的次数

    }

    CountSort(hash,2002);//排序

    for(int i = 0;i<2001;i++)

    {

        if(hash[i]==hash[i+1]&&hash[i])//遇到不是独一无二的return false。

            return false;

    }

    return true;

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/28659.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网络安全 - kali 安装

文章目录 Kali 安装教程下载镜像 Kali 安装教程 下载镜像 kali-images安装包下载_开源镜像站-阿里云 (aliyun.com) 下载对应镜像&#xff08;自己挑&#xff09; 打开本机 cmd 并输入一下命令 ipconfig找到 NAT 模式的 IP 地址并从虚拟机中 ping

6月15号作业

使用手动连接&#xff0c;将登录框中的取消按钮使用第二中连接方式&#xff0c;右击转到槽&#xff0c;在该槽函数中&#xff0c;调用关闭函数 将登录按钮使用qt4版本的连接到自定义的槽函数中&#xff0c;在槽函数中判断ui界面上输入的账号是否为"admin"&#xff0…

一键掌控,4G红外插座引领智能生活新潮流!

随着科技的进步&#xff0c;市场上出现大量带语音、手机APP可控制的智能插座产品&#xff0c;由此可看出客户对产品的功能要求也越来越高&#xff0c;追求舒适的体验感&#xff0c;特别是对操控性的要求越来越高。但是目前大部分红外遥控插座均为WiFi插座类型&#xff0c;WiFi红…

gitlab仓库中用git bash生成不是默认路径的ssh秘钥

使用命令 ssh-keygen -t rsa -b 4096 -C "your_emailexample.com" 会在默认路径生成秘钥&#xff0c;&#xff08;C:\Users\用户\.ssh\&#xff09; 想要修改默认路径使用如下命令&#xff1a; ssh-keygen -t rsa -b 4096 -C "your_emailexample.com"…

【吉林大学Java程序设计】第11章:网络编程技术

第11章&#xff1a;网络编程技术 1.网络协议概述2.网络类及应用&#xff08;1&#xff09;InetAddress类&#xff08;2&#xff09;ServerSocket类&#xff08;3&#xff09;Socket类基于TCP的点对点通信基于TCP的点对面通信&#xff08;一个服务器&#xff0c;多个客户端&…

嵌入式学习——数据结构(顺序表、单向链表)——day46

1. 数据结构 1.1 定义 数据结构是指计算机中数据的组织、管理和存储方式。它不仅包括数据元素的存储方式&#xff0c;还包括数据元素之间的关系&#xff0c;以及对数据进行操作的方法和算法。数据结构的选择和设计直接影响算法的效率和程序的性能&#xff0c;是计算机科学与编…

Superset二次开发之重置密码

通过 Flask-AppBuilder CLI 工具重置密码 Superset 使用 Flask-AppBuilder 作为后台框架&#xff0c;可以通过其命令行工具重置密码。 使用 superset fab 命令重置密码&#xff1a; superset fab reset-password --username <your_username>

如何通过数据库与AI实现以图搜图?OceanBase向量功能详解

OceanBase支持向量数据库的基础能力 当前&#xff0c;数据库存储系统与人工智能技术的结合&#xff0c;可以体现在两个主要的应用方向上。 一、近似搜索。它利用大语言模型&#xff08;LLM&#xff0c;简称大模型&#xff09;的嵌入&#xff08;embedding&#xff09;技术&am…

高考专业抉择探索计算机专业的未来展望及适合人群

身份&#xff1a;一位正在面临人生重要抉择的高考生&#xff0c;一位计算机行业从业者  正文&#xff1a;  随着2024年高考落幕&#xff0c;我与数百万高三学生一样&#xff0c;又将面临人生中的重要抉择&#xff1a;选择大学专业。对于许多学生来说&#xff0c;计算机科学…

环境科学SCI期刊,IF=8.5+,期刊发展势头非常好

一、期刊名称 SUSTAINABLE DEVELOPMENT 二、期刊简介概况 期刊类型&#xff1a;SCI 学科领域&#xff1a;环境科学与生态学 影响因子&#xff1a;8.562 中科院分区&#xff1a;2区 三、期刊征稿范围 该期刊是一本跨学科出版物&#xff0c;旨在解决和讨论实现可持续发展的…

硬件开发笔记(十八):核心板与底板之间的连接方式介绍说明:板对板连接器

若该文为原创文章&#xff0c;转载请注明原文出处 本文章博客地址&#xff1a;https://hpzwl.blog.csdn.net/article/details/139663096 长沙红胖子Qt&#xff08;长沙创微智科&#xff09;博文大全&#xff1a;开发技术集合&#xff08;包含Qt实用技术、树莓派、三维、OpenCV…

如何更改電腦的IP地址?

IP地址是每臺聯網設備的唯一識別字&#xff0c;但有時候&#xff0c;我們可能需要更改電腦的IP地址&#xff0c;要麼是為了解決網路問題&#xff0c;要麼是為了保護自己的線上隱私。下麵&#xff0c;我們將詳細介紹如何更改電腦的IP地址。 1. 更改本地IP地址 Windows系統 步…

最佳Google Chrome扩展和Mozilla Firefox扩展自动解决验证码

在这个信息爆炸的时代&#xff0c;我们每天都要处理大量的在线内容&#xff0c;验证码已成为不可避免的挑战。尽管它们旨在保护网站安全&#xff0c;但也常常成为我们获取信息的障碍。那么&#xff0c;有没有更简单的方法绕过这些验证码呢&#xff1f;答案是肯定的。通过使用一…

算法之分治

分而治之 分治法所能解决的问题一般具有以下几个特征&#xff1a; 1) 该问题的规模缩小到一定的程度就可以容易地解决 2) 该问题可以分解为若干个规模较小的子问题&#xff0c;即该问题具有最优子结构性质 3) 利用该问题分解出的子问题的解可以合并为该问题的解 4) 该问题所分…

ubuntu gitlab 部署 私有git库

我的版本 ubuntu-22.04.2-live-server-amd64 GitLab 社区版 v17.0.1 注意剩余硬盘需要3GB以上 一、更新软件 sudo apt update二、gitLab 需要一些依赖项才能正常运行 sudo apt install -y curl openssh-server ca-certificates postfix1、出现邮件 选择 “Internet Site”并…

数据库原理(关系数据库规范化理论)——(4)

一、关系模式规范化的必要性 1.关系可能出现的问题 数据冗余大&#xff1b;插入异常&#xff1b;删除异常&#xff1b;更新异常&#xff1b; 2.关系模式应满足的基本要求 元组的每个分量必须是不可分割的数据项&#xff1b;数据库中的数据冗余应尽可能少&#xff1b;不要出…

HTML <meta> 标签及其属性介绍

HTML 的 <meta> 标签定义了文档的元数据&#xff0c;这些数据对于机器&#xff08;如浏览器、搜索引擎和其他网络服务&#xff09;来说是非常重要的&#xff0c;但它们不会直接显示在页面上。元数据提供了关于数据的数据&#xff0c;例如文档的字符编码、页面描述、关键词…

springboot读取配置时,读取到了系统环境变量

在Spring Boot应用中&#xff0c;读取配置通常通过application.properties或application.yml文件进行。不过&#xff0c;Spring Boot也支持从系统环境变量读取配置&#xff0c;这使得应用可以在不同的环境中灵活配置。下面详细介绍如何在Spring Boot中读取系统环境变量。 1. 配…

Neo4j Desktop界面认识以及数据库备份与还原

Neo4j Desktop界面认识以及数据库备份与还原 neo4j 版本信息&#xff1a;Neo4j Desktop Version 1.5.9&#xff1b;neo4j 5.12.0 系统信息&#xff1a;windows 11 Neo4j Desktop 界面 每个 Project 下可以有多个 DBMS&#xff0c;而每个 DBMS 中默认有 system 和 neo4j (def…

记录.偏僻冷知识

-----------------------------------------------------2024.6.16---------------------------------------------------------- 一、为什么是32.576k的晶振&#xff1f; 1、从产生1hz频率的角度考虑&#xff0c;32.576k这个频率正好是2^15次方&#xff0c;只要做15次…