【每日刷题】Day67

news2024/12/26 23:38:17

【每日刷题】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.coloradmin.cn/o/1831516.html

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

相关文章

一篇搞定Spring,IOC容器,Bean管理,3.AOP底层原理和实现(收下吧,真的很详细)

1.Spring容器的概念 Spring是一个轻量级的框架&#xff0c;可以解决企业开发的复杂性&#xff0c;让开发效率提升&#xff0c;他核心的两个点是&#xff1a; 1.IOC IOC&#xff1a;在java中&#xff0c;我们程序员一般是去创建一个对象&#xff0c;那么有个问题就是耦合性太…

Apache DolphinScheduler查看版本信息

我找了半天&#xff0c;没有看到版本在哪里。然后我看配置&#xff0c;他要连接数据库&#xff0c;我去他存储数据库的表里面&#xff0c;看到了相关的版本信息。 cd /home/dolphinscheduler/dolphinscheduler/bin/env dolphinscheduler找到了里面的密码 版本是3.1.3

VMware挂载NAS存储异常处理

问题概述 由于非法关机或恢复&#xff0c;NFS存储可能会出现以下问题&#xff1a; 数据存储处于挂起状态或无法正常识别。虚拟机的配置文件或虚拟磁盘仍然注册在异常数据存储上。系统误认为有虚拟机在使用该数据存储。 问题对策 下面是详细的排查步骤和解决对策&#xff1a…

JS 实现Date日期格式的本地化

为了更好的更新多语言日期的显示&#xff0c;所以希望实现日期的本地化格式显示要求&#xff0c;常规的特殊字符型格式化无法满足显示要求&#xff0c;这里整理了几种我思考实现的本地化实现功能。 通过多方查找&#xff0c;总结了实现的思路主要有如下三个方向&#xff1a; 官…

ThinkPHP 的老漏洞仍然被攻击者钟情

研究人员发现安全领域出现了令人不安的趋势&#xff1a;攻击者不仅对新披露的漏洞十分感兴趣&#xff0c;对已知的漏洞也丝毫不放过&#xff0c;尽管有些漏洞已经存在了好些年头&#xff0c;攻击者仍然能够通过老漏洞成功完成攻击。 典型的例子就是 ThinkPHP 远程代码执行漏洞…

同三维T80004EHL-W-4K30 4K HDMI编码器,支持WEBRTC协议

输入&#xff1a;1路HDMI1路3.5音频&#xff0c;1路HDMI环出1路3.5音频解嵌输出 4K30超高清,支持U盘/移动硬盘/TF卡录制&#xff0c;支持WEBRTC协议&#xff0c;超低延时&#xff0c;支持3个点外网访问 1个主流1个副流输出&#xff0c;可定制选配POE供电模块&#xff0c;WEBR…

白酒:茅台镇白酒的文化内涵与传承意义

茅台镇白酒&#xff0c;作为中国的酒文化的代表之一&#xff0c;具有丰富的文化内涵和传承意义。而云仓酒庄豪迈白酒作为茅台镇的品牌之一&#xff0c;更是承载了深厚的文化底蕴和历史积淀。 首先&#xff0c;茅台镇白酒是中国的酒文化的重要组成部分。白酒在中国有着悠久的历史…

SRAM和DRAM

1.SRAM&#xff08;静态RAM&#xff09; 把存放一个二进制位的物理器件称为存储元&#xff0c;它是存储器最基本的构件。 地址码相同的多个存储元构成一个存储单元。 存储单元的集合构成存储体。 静态RAM的存储元是用双稳态触发器&#xff08;六晶体管MOS&#xff09;来记忆…

MyBatis查询两个字段,返回Map,一个字段作为key,一个字段作为value的实现

项目场景&#xff1a; 在使用MyBatis&#xff0c;我们经常会遇到这种情况&#xff1a;SELECT两个字段&#xff0c;需要返回一个Map&#xff0c;其中第一个字段作为key&#xff0c;第二个字段作为value。MyBatis的MapKey虽然很实用&#xff0c;但并不能解决这种场景。 问题描述 …

vue分类

先看效果 再看代码 <category-tab v-model"params.area" name"地区" :list"areaList" /><category-tab v-model"params.type" name"类型" :list"typeList" /><category-tab v-model"params.…

WPF/C#:如何将数据分组显示

WPF Samples中的示例 在WPF Samples中有一个关于Grouping的Demo。 该Demo结构如下&#xff1a; MainWindow.xaml如下&#xff1a; <Window x:Class"Grouping.MainWindow"xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x&q…

【面试 - 页面优化举例】页面跳转卡顿问题解决 - 页面跳转速度优化

目录 为何要优化如何优化优化1 - 懒加载优化2 - el-tree 子节点默认不展开 为何要优化 页面A跳转到也页面B时&#xff0c;页面出现卡顿情况&#xff1a; 【问题】页面A → 页面B时&#xff0c;页面B进入到了 created 钩子后过了六七秒才进入到 mounted 钩子&#xff1b;【分析经…

vue分页

先看效果 再看代码 <!-- 分页 --><div v-if"pageParams.pageCount > 1" class"flex justify-end mt-6"><n-paginationv-model:page"pageParams.page" v-model:page-size"pageParams.pageSize" :page-count"pa…

生产 的mybatisplus 日志输入到日志文件

默认是输出到控制台.不输出到日志文件 输出到日志文件.需要修改配置 第一步. logging:config: classpath:logback-wshoto.xml第二步 mybatis-plus:configuration:cache-enabled: truedefault-executor-type: reuselog-impl: org.apache.ibatis.logging.slf4j.Slf4jImpl第三步…

标准立项 | 膜曝气生物膜反应器(MABR)平板曝气膜

立项单位&#xff1a;天津市华宇膜技术有限公司、中国市政工程中南设计研究总院有限公司、中建生态环境集团有限公司、富朗世水务技术(江苏)有限公司、常州宣清环境科技有限公司 膜组件开发 膜腔内部支撑结构-一在膜腔内部设置支撑结构以防止膜腔在水压下压实&#xff0c;同时…

CRMEB多门店的门店后台首页路由

如何在输入 http://localhost:8080/、http://localhost:8080/store/、http://localhost:8080/custom-store/ 这三个中任意一个链接都能正确跳转到 http://localhost:8080/store/home/index 。要实这个要求&#xff0c;有两种方式&#xff1a; 重定向 const router new VueRo…

WPF/C#:更改界面的样式

项目结构&#xff1a; 先来看看BlueSkin.xaml与YellowSkin.xaml。 BlueSkin.xaml&#xff1a; <ResourceDictionaryxmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x"http://schemas.microsoft.com/winfx/2006/xaml"xmlns:l…

SVN代码无法提交(报错lock)

SVN无法commit(可以导出可以update)报错画面如下&#xff1a; 报错&#xff1a;If you want to break the lock, use the check For Modifcations dialoo or the repository browser. 前提&#xff1a;使用解锁和clean up无效 解决办法&#xff1a;导出报错仓库数据到本地&am…

9种编程语言的对比分析

在当今的软件开发领域&#xff0c;编程语言扮演着至关重要的角色。不同的编程语言各有其特点和适用场景&#xff0c;选择合适的编程语言能够提高开发效率和软件质量。本文将对十种常见的编程语言进行对比分析&#xff0c;帮助读者了解它们的优缺点和适用场景。 Java 特点&…

Springboot微服务整合缓存的时候报循环依赖的错误 两种解决方案

错误再现 Error starting ApplicationContext. To display the conditions report re-run your application with debug enabled. 2024-06-17 16:52:41.008 ERROR 20544 --- [ main] o.s.b.d.LoggingFailureAnalysisReporter : *************************** APPLI…