【每日刷题】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.rhkb.cn/news/352136.html

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

相关文章

动力学笔记01——共振频率和共振带的数学定义

文章目录 0、背景描述1、正文2. 位移、速度、加速度的共振频率并不相同 0、背景描述 过去一年&#xff0c;我基本都在考虑塔架&#xff08;尤其是混塔&#xff09;频率仿真/模态分析的问题。关于这个问题&#xff0c;不仅有地基刚度&#xff0c;还有塔筒本身以及其他影响频率的…

MAC认证

简介 MAC认证是一种基于接口和MAC地址对用户的网络访问权限进行控制的认证方法&#xff0c;它不需要用户安装任何客户端软件。设备在启动了MAC认证的接口上首次检测到用户的MAC地址以后&#xff0c;即启动对该用户的认证操作。认证过程中&#xff0c;不需要用户手动输入用户名…

Linux ubuntu安装pl2303USB转串口驱动

文章目录 1.绿联PL2303串口驱动下载2.驱动安装3.验证方法 1.绿联PL2303串口驱动下载 下载地址&#xff1a;https://www.lulian.cn/download/16-cn.html 也可以直接通过CSDN下载&#xff1a;https://download.csdn.net/download/Axugo/89447539 2.驱动安装 下载后解压找到Lin…

R语言dplyr统计指定列里面种类个数和比例

输入数据框&#xff1a;dfuorf&#xff0c;Type列有uORF和overlpaORF两种类型 dfuorf1 <- dfuorf %>%group_by(Type) %>% summarise(Countn()) %>% mutate(percentCount/sum(Count)) %>% mutate(percent1 (paste0(round((Count/sum(Count)), 2)*100,"%&…

编码在网络安全中的应用和原理

前言:现在的网站架构复杂&#xff0c;大多都有多个应用互相配合&#xff0c;不同应用之间往往需要数据交互&#xff0c;应用之间的编码不统一&#xff0c;编码自身的特性等都很有可能会被利用来绕过或配合一些策略&#xff0c;造成一些重大的漏洞。 什么是编码&#xff0c;为什…

货代小白快来收藏‼️普货与非普货的区别

普货是指不属于以下类别的普通货物 危险品 冷冻/冷藏品 违禁品 仿牌货 敏感货 危险品 危险品具体分为九类&#xff1a; 爆炸品 压缩气体 易燃液体 易燃固体、易燃物品和遇湿易燃物品 氧化剂和有机氧化物 有毒和感染性物品 放射性 腐蚀性 杂类 冷冻/冷藏品 主要是指以食品为主的…

海康视觉算法平台VisionMaster 4.3.0 C# 二次开发01 加载方案并获取结果

前言 第一次使用海康视觉算法平台VisionMaster 4.3.0&#xff0c;项目中要使用这个平台进行视觉处理并获取结果。 运行效果 开发环境 C#&#xff0c; WPF&#xff0c; vs2022, 海康视觉算法平台VisionMaster 4.3.0 基本概念 上图这些.sol为后缀的是vm的方案文件。 打开方案文…

海南云亿商务咨询有限公司助力商家腾飞新高度

在数字化浪潮席卷全球的今天&#xff0c;电商行业正迎来前所未有的发展机遇。海南云亿商务咨询有限公司&#xff0c;作为抖音电商服务的佼佼者&#xff0c;凭借其专业的团队和丰富的经验&#xff0c;正成为越来越多企业实现电商转型与升级的得力助手。 海南云亿商务咨询有限公…

AI写代码,CS还有前途吗?加州大学伯克利分校:CDSS申请人数激增48%!

目录 01 CS入学人数暴涨 02 人类Coder可堪大任 03 AI还没有学会创新 04 编程与农耕不同 AI写了这么多代码&#xff0c;你还应该学习计算机科学吗&#xff1f; 新的数据显示&#xff0c;学生们仍然热衷于选修计算机科学&#xff1a;加州大学伯克利分校&#xff08;UCB&#…

Python基础用法 之 转义字符

将两个字符进⾏转义 表示⼀个特殊的字符 \n ---> 换⾏&#xff0c;回⻋ \t ---> 制表符, tab键 注意&#xff1a; print( end\n)&#xff1a; print() 函数中默认有⼀个 end\n, 所以,每个 print 结束之后, 都会输出⼀ 个换行。 未完待续。

一个示例学习C语言到汇编层面

给出以下代码 #include<stdio.h> int main() {int x 0, y 0, z 0;while (1) {x 0;y 1;do {printf("%d\n", x);z x y;x y;y z;} while (x < 255);}return 0; }我们把这个程序编写成32位程序&#xff0c;然后我们放入IDA中进行分析 .text:0080187…

WebGIS如何加载微件

本篇文章以加载切换底图微件做示范 首先&#xff0c;添加require "esri/widgets/ScaleBar",//比例尺"esri/widgets/Legend",//图例"esri/widgets/basemapGallery" 然后添加加载切换底图的组件代码 const basemapGallery new BasemapGallery(…

SaaS产品运营|一文讲清楚为什么ToB产品更适合采用PLG模式?

在数字化时代&#xff0c;ToB&#xff08;面向企业&#xff09;产品市场的竞争愈发激烈。为了在市场中脱颖而出&#xff0c;许多企业开始转向PLG&#xff08;产品驱动增长&#xff09;模式。这种模式以产品为核心&#xff0c;通过不断优化产品体验来驱动用户增长和业务发展。本…

一个开源的快速准确地将 PDF 转换为 markdown工具

大家好&#xff0c;今天给大家分享的是一个开源的快速准确地将 PDF 转换为 markdown工具。 Marker是一款功能强大的PDF转换工具&#xff0c;它能够将PDF文件快速、准确地转换为Markdown格式。这款工具特别适合处理书籍和科学论文&#xff0c;支持所有语言的转换&#xff0c;并…

语义分割和目标检测的关系

目录 1.语义分割的目标 2.目标检测的目标 3.两种任务的异同之处 从大方向的任务特点上来说 &#xff08;1&#xff09;物体的位置 &#xff08;2&#xff09;物体的分类 从数据格式来说 (1&#xff09;语义分割的数据格式 (2&#xff09;目标检测的数据格式 1.语义分…

Ollama:本地部署大模型 + LobeChat:聊天界面 = 自己的ChatGPT

本地部署大模型 在本地部署大模型有多种方式&#xff0c;其中Ollama方式是最简单的&#xff0c;但是其也有一定的局限性&#xff0c;比如大模型没有其支持的GGUF二进制格式&#xff0c;就无法使用Ollama方式部署。 GGUF旨在实现快速加载和保存大语言模型&#xff0c;并易于阅读…

如何通过Appium连接真机调试

1、打开appium&#xff0c;点击启动appium服务器&#xff08;如图1&#xff09; 2、appium启动成功后&#xff0c;点击放大镜启动检查会话&#xff08;如图2&#xff09; 3、填写真机设备信息和APP的package、activity,点击启动会话&#xff08;如图3&#xff09; 4、打开运行A…

vscode 连接 GitHub

目录 vscode连接github一、解决 github 登录问题二、通过 SSH 连接 github1、只有一个 git 账号2、切换 git 账号3、在两个账号之间切换 vscode 连接 gitee一、通过 HTTPS 连接二、通过 SSH 连接 vscode连接github 在 vscode 中首次使用 git push 命令时会要求输入 github 账户…

梳理Y3游戏编辑器入门者需要明白的基础概念

前言 Y3编辑器是网易开发的一款类似于“War3地图编辑器”的产品。 最近KK对战平台上不少热门的RPG地图都出自Y3编辑器&#xff1a; 最近我花了些时间学习了这款编辑器的基础知识。我发现其中很多概念是比较抽象需要理解的&#xff0c;而有些概念比如“物件”、“物体”、“物…

vue2实现一个简易实用的日历(可特殊标记多个日期)

效果如下&#xff1a; <template><div class"calendar"><div class"header"><button click"previousMonth"><</button><h2>{{ currentYear }}-{{ currentMonth }} </h2><button click"nex…