【每日刷题】Day68

news2024/11/25 13:47:59

【每日刷题】Day68

🥕个人主页:开敲🍉

🔥所属专栏:每日刷题🍍

🌼文章目录🌼

1. 451. 根据字符出现频率排序 - 力扣(LeetCode)

2. 最小的K个数_牛客题霸_牛客网 (nowcoder.com)

3.  442. 数组中重复的数据 - 力扣(LeetCode)

1. 451. 根据字符出现频率排序 - 力扣(LeetCode)

//思路:记数排序。

char * frequencySort(char * s)

{

    int* hash = (int*)calloc(124,sizeof(int));

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

    {

        hash[s[i]]+=1;//记录字符出现的次数

    }

    char* ans = (char*)malloc(sizeof(char)*(strlen(s)+1 ));

    int count = 0;

    while(count<strlen(s))

    {

        int max = 0;

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

        {

            if(hash[i]>hash[max])//找到出现次数最多的先放进数组中

                max = i;

        }

        while(hash[max])

        {

            ans[count++] = max;

            hash[max]--;

        }

    }

    ans[count] = '\0';

    return ans;

}

2. 最小的K个数_牛客题霸_牛客网 (nowcoder.com)

//TopK问题。思路:堆排序。建立小堆,通过与堆底数据交换的方式将最小的K个数换到堆底。

void Swap(int* x,int* y)

{

    int tmp = *x;

    *x = *y;

    *y = tmp;

}


//向下调整建小堆

void AdjustDown(int* arr,int parents,int size)

{

    int child = parents*2+1;

    while(child<size)

    {

        if(child+1<size&&arr[child+1]<arr[child])

            child++;

        if(arr[child]<arr[parents])

            Swap(&arr[child],&arr[parents]);

        else

            break;

        parents = child;

        child = parents*2+1;

    }

}


 

void HeapSort(int* arr,int size,int k)

{

    for(int i = (size-2)/2;i>=0;i--)

    {

//向下调整建小堆

        AdjustDown(arr, i, size);

    }

    while(k)

    {

        Swap(&arr[0],&arr[size-1]);//将堆顶(最小的数)与堆底(最大的数交换)

        size--;

        k--;

        AdjustDown(arr, 0, size);

    }

}

int* GetLeastNumbers_Solution(int* input, int inputLen, int k, int* returnSize )

{

    int* ans = (int*)malloc(sizeof(int)*(k+1));

    int count = 0;

    HeapSort(input,inputLen,k);

    for(int i = inputLen-1;i>=inputLen-k;i--)

    {

        ans[count++] = input[i];//取数组后K个数,即为最小的K个数

    }

    *returnSize = count;

    return ans;

}

3.  442. 数组中重复的数据 - 力扣(LeetCode)

//思路:哈希表。

int* findDuplicates(int* nums, int numsSize, int* returnSize)

{

    int hash[100001] = {0};

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

    {

        hash[nums[i]]+=1;

    }

    int* ans = (int*)malloc(sizeof(int)*50001);

    int count = 0;

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

    {

        if(hash[i]==2)

            ans[count++] = i;

    }

    *returnSize = count;

    return ans;

}

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

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

相关文章

暑期计划打卡清单表怎么写 暑期待办计划清单

暑假来临&#xff0c;是不是感觉时间好像突然多了起来&#xff0c;但又不知道该做些什么好&#xff1f;别担心&#xff0c;列一个暑期计划打卡清单表&#xff0c;就能让你的暑假生活变得有条不紊、充实而有意义。 计划清单&#xff0c;就像是给暑假生活绘制的一张地图。没有它…

合肥工业大学人工智能原理课程实验-波士顿房价预测

目录 1.实验内容 2.实验环境 3.实验思路&#xff08;算法分析&#xff09; 4.实验过程、步骤 5.实验结果与评价 6.实验体会与收获 7.附录 1.实验内容 波士顿房地产市场竞争激烈&#xff0c;而你想成为该地区最好的房地产经纪人。为了更好地与同行竞争&#xff0c;你决定运…

宝塔面板使用技巧(pure-FTP)上传文件和文件夹默认权限644的修改

前言 科技在进步各种各样的开源软件和库让我们应接不暇&#xff0c;我估计现在所有做php开发的人员都知道宝塔面板&#xff0c;我就经常用&#xff0c;但是不知道大家出现过一个问题不就是在我们开发过程中需要实时的给服务器上传我们开发的文件那么就涉及到了宝塔自带的pure-F…

Spring Security——结合JWT实现令牌的验证与授权

目录 JWT&#xff08;JSON Web Token&#xff09; 项目总结 新建一个SpringBoot项目 pom.xml PayloadDto JwtUtil工具类 MyAuthenticationSuccessHandler&#xff08;验证成功处理器&#xff09; JwtAuthenticationFilter&#xff08;自定义token过滤器&#xff09; W…

idea Alt+/ 自动补全变量名开头是大写 改 选择小写开头变量名

idea 中自动补全变量名是非常常见的操作&#xff0c;变量名一般都需要小写开头&#xff0c;但是idea中 Alt / 自动补全变量名时 补全的变量名是大写的&#xff0c;这就很难受了。如下图所示&#xff1a; AutowiredLogService LogService;Ctrl 空格 快捷键 虽然不像 Alt / 一…

python进阶:多线程原理python(四)

1.并发的概念python基础 举个例子&#xff1a; 1.1并发与并行 并发&#xff1a;逻辑上具备同时处理多个任务的能力 并行&#xff1a; 物理上在同一时刻执行多个并发任务 1.2什么是线程&#xff0c;什么是进程 开个QQ&#xff0c;开了一个进程;开了迅雷&#xff0c;开了一…

【Seata】分布式事务解决方案——理论

目录 回顾什么是事务数据库事务的四大特性&#xff1a;ACID 分布式事务解释面临挑战分布式事务产生场景1. 单体架构中多数据源场景2. 分布式架构场景 分布式事务解决方案jta AtomikosLCN模式问题 Alibaba的Seata解决分布式事务问题 使用MQ解决分布式事务问题问题1&#xff1a;…

2025年计算机毕业设计题目参考

今年最新计算机毕业设计题目参考 以下可以参考 springboot洗衣店订单管理系统 springboot美发门店管理系统 springboot课程答疑系统 springboot师生共评的作业管理系统 springboot平台的医疗病历交互系统 springboot购物推荐网站的设计与实现 springboot知识管理系统 springbo…

管道塞满钢珠,推动一端的钢珠另一端钢珠瞬间掉落,超光速了吗?

管道塞满钢珠&#xff0c;推动一端的钢珠另一端钢珠瞬间掉落&#xff0c;超光速了吗&#xff1f; 现实中我们感觉钢珠瞬间掉落&#xff0c;好像是超光速了&#xff0c;其实不然&#xff0c;那只是我们的错觉。我们日常生活中感受到的速度与光速相比实在太慢了&#xff0c;以至…

MoonBit 亮相港科大「 INNOTECH 创科嘉年华」,技术创新实力备受瞩目

INNOTECH创科嘉年华 6月16日&#xff0c; MoonBit 作为 IDEA 研究院重点项目成果受邀参与一年一度由香港科技大学&#xff08;广州&#xff09;主办的「INNOTECH 创科嘉年华」&#xff0c;作为港科大&#xff08;广州&#xff09;每年最重要的科创实力展示机会&#xff0c;本次…

qmt量化交易策略小白学习笔记第37期【qmt编程之指数数据--如何获取迅投商品市场指数行情数据】

qmt编程之获取商品市场指数数据 qmt更加详细的教程方法&#xff0c;会持续慢慢梳理。 也可找寻博主的历史文章&#xff0c;搜索关键词查看解决方案 &#xff01; 感谢关注&#xff0c;咨询免费开通量化回测与获取实盘权限&#xff0c;欢迎和博主联系&#xff01; 获取迅投商…

“AUTOSAR Nvm_WriteAll()掉电无法正常更新Nvm数据” 问题分析

1、问题现象 再掉电时调用Nvm_WriteAll()函数后&#xff0c;再重新上电&#xff0c;发现下电前更新得NvmBlock数据未被正确更新到Nvm中。掉电时直接调用Nvm_WriteBlock()函数&#xff0c;可以正常更新指定得NvmBlock块。 2、排查 NvM_InterWriteAll()函数有被正常执行。NvM_I…

Python期末复习题库(上)

1. (单选题) Python源程序的扩展名为&#xff08; A &#xff09; A. py B. c C. class D. ph 2. (单选题) 下列&#xff08; A &#xff09;符合可用于注释Python代码。 A. # B. */ C. // D. $ 3. (单选题)下列关于Python 语言的特点的说法中&#xff0c;错误的是&#xf…

【C++修行之道】C/C++内存管理

目录 一、C/C内存分布 1. 选择题&#xff1a; 2. 填空题&#xff1a; 3. sizeof 和 strlen 区别&#xff1f; 二、 C语言中动态内存管理方式&#xff1a;malloc/calloc/realloc/free 1.malloc/calloc/realloc的区别是什么&#xff1f; 2.这里需要free(p2)吗&#xff…

计算机图形学入门15:几何表示

1.几何概论 通过图形学建模表示现实生活中的各种物体&#xff0c;要解决的第一个问题就是如何定义物体形状&#xff0c;而这就涉及到了几何(Geometry)。如下图所示&#xff0c;各种各样的玻璃水杯、车子上的不同部件、水花四溅的模拟、病毒的微观结构等这些几何形状。 那么如何…

Pikachu靶场--文件包含

参考借鉴 Pikachu靶场之文件包含漏洞详解_pikachu文件包含-CSDN博客 文件包含&#xff08;CTF教程&#xff0c;Web安全渗透入门&#xff09;__bilibili File Inclusion(local) 查找废弃隐藏文件 随机选一个然后提交查询 URL中出现filenamefile2.php filename是file2.php&…

MCK主机加固在防漏扫中的关键作用

在当今这个信息化飞速发展的时代&#xff0c;网络安全成为了企业不可忽视的重要议题。漏洞扫描&#xff0c;简称漏扫&#xff0c;是一种旨在发现计算机系统、网络或应用程序中潜在安全漏洞的技术手段。通过自动化工具&#xff0c;漏扫能够识别出系统中存在的已知漏洞&#xff0…

C++项目实战:SPDK文件系统

目录 一、Blobstore设计框架二、Cache机制三、Blob FS I/O操作四、SPDK FUSE (Filesystem in Userspcae) 前言 Blob FS是spdk面向于用户态的轻量级的文件系统 SPDK通过绕过内核(kernel bypass)的方案&#xff0c;构筑了用户态驱动&#xff0c;并利用异步轮询、无锁机制等&a…

函数依赖-函数依赖、平凡函数依赖、完全与部分函数依赖、传递函数依赖

一、引言 函数依赖是关系模式中属性与属性之间存在的一种重要数据依赖 1、将关系模式R的模式结构改为 R&#xff08;SNO&#xff0c;CNO&#xff0c;SN&#xff0c;SD&#xff0c;DD&#xff0c;GRADE&#xff09; 并对属性列进行重命名 R&#xff08;学生学号&#xff0c…

msvcp100.dll已加载但找不到入口点的处理方法,分析比较靠谱的msvcp100.dll解决方法

用户在日常使用中有时会遇到一个错误提示&#xff1a;“已加载 msvcp100.dll&#xff0c;但找不到入口点”。这一信息不仅引发了使用上的不便&#xff0c;也对软件的稳定性产生了质疑。理解并解决该问题不仅对确保计算机正常运行至关重要&#xff0c;也对维护软件的长期稳定性和…