首页 > 其他分享 >347. 前 K 个高频元素C

347. 前 K 个高频元素C

时间:2024-03-20 11:00:25浏览次数:17  
标签:count index HASH int 元素 num 347 高频 size

/**
 * Note: The returned array must be malloced, assume caller calls free().
 */
typedef struct node{
    int num;
    int count;
}HASH;

void insert(HASH* h,int n,int size){
    int index=abs(n)%size;
    if(h[index].count==0 || h[index].num==n){
        h[index].count++;
        h[index].num=n;
    }else{
        while(h[index].count!=0 && h[index].num!=n) index=(index+1)%size;
        h[index].num=n;
        h[index].count++;
    }
}

int cmp( const void* a,const void* b  ){
    HASH* x=(HASH*)a;
    HASH* y=(HASH*)b;
    if(x->count > y->count) return -1;
    return 1;
}

int* topKFrequent(int* nums, int numsSize, int k, int* returnSize) {
    HASH* h=(HASH*)malloc(sizeof(HASH)*numsSize);
    for(int i=0;i<numsSize;i++) h[i].count=0;
    for(int i=0;i<numsSize;i++){
        insert(h,nums[i],numsSize);
    }
    qsort(h,numsSize,sizeof(HASH),cmp);
    for(int i=0;i<numsSize;i++) printf("%d ",h[i].num);
    *returnSize=k;
    int* array=(int*)malloc(sizeof(int)*k);
    for(int i=0;i<k;i++){
        array[i]=h[i].num;
    }
    return array;
}

 

标签:count,index,HASH,int,元素,num,347,高频,size
From: https://www.cnblogs.com/llllmz/p/18084770

相关文章

  • [数组练习题]二分法查找操作实例:使用二分法查找有序数组中元素。 找到返回索引,不存在
    文章目录题干一、题目分析1.定义数组,用于后续在数组中查找元素2.对数组进行排序3.定义方法4.调用方法,打印输出二、代码1.代码块2.一图流总结题干提示:这段是题干,仔细阅读仔细分析:二分法查找操作:使用二分法查找有序数组中元素。找到返回索引,不存在输出-1。......
  • P3478 [POI2008] STA-Station
    原题链接WARNING!!!使用map代替数组不再可靠,因为map的插入查找修改复杂度均为\(O(logn)\),即使unorder_map也不行!!!题解我们发现,当一个节点的深度之和已知时(这里认为是根节点),其相邻节点的深度之和也可通过某种方程转移而得,有人称这种方法为换根DP具体的,将树拆开成图(求深度之和......
  • Java 编程实例:相加数字、计算单词数、字符串反转、元素求和、矩形面积及奇偶判断
    Java如何相加两个数字相加两个数字示例intx=5;inty=6;intsum=x+y;System.out.println(sum);//打印x+y的和输出11解释首先,声明两个int类型的变量x和y,并分别赋值为5和6。然后,使用+运算符将x和y相加,并将结果赋给变量sum。最后,使用Sy......
  • 开源项目&免费接口:高频词提取挖掘文本核心价值
     一、开源项目介绍一款多模态AI能力引擎,专注于提供自然语言处理(NLP)、情感分析、实体识别、图像识别与分类、OCR识别和语音识别等接口服务。该平台功能强大,支持本地化部署,并鼓励用户体验和开发者共同完善,以实现开源共享。可以本地化部署,也可以云端SaaS调用,微信扫码即可登录。......
  • LeetCode 217 存在重复元素(JAVA)
    LeetCode217存在重复元素(JAVA)一、题目描述:给你一个整数数组nums。如果任一值在数组中出现至少两次,返回true;如果数组中每个元素互不相同,返回false。示例1:输入:nums=[1,2,3,1]输出:true示例2:输入:nums=[1,2,3,4]输出:false示例3:输入:nums=[1,1,1,3,3,4,......
  • abc253E 相邻元素之差不低于K的序列数
    给定n,m,k,找一个序列A[n],使用满足1<=A[i]<=m,并且任意相邻两元素的差的绝对值大于等于k,求满足条件的序列个数,求998244353取模。2<=n<=1000;1<=m<=5000;0<=k<=m-1设dp[i][j]表示前i个数,以j结尾的方案数,在计算dp[i+1][k]时,可以枚举j进行统计,复杂度为O(n^3),可以通过前缀和优化成O(......
  • 代码随想录算法训练营第十三天| 239. 滑动窗口最大值 347. 前 K 个高频元素
    239.滑动窗口最大值https://leetcode.cn/problems/sliding-window-maximum/description/publicint[]maxSlidingWindow(int[]nums,intk){int[]res=newint[nums.length-k+1];intindex=0;ArrayDeque<Integer>deque=newArray......
  • 行内元素,块级元素,行内块元素
    参考连接:https://blog.csdn.net/weixin_44706267/article/details/121022104 一、html元素分类html元素:行内元素、块元素、行内块元素二、块元素常见的块级元素:<h1>~<h6>、<p>、<div>、<ul>、<ol>、<li>、<dd>、<dt>、<dl>等,其中......
  • lc2334 元素值大于变化阈值的子数组
    给定数组nums[n]和整数threshold,找到长度为k的子数组,满足子数组中每个元素都大于threshold/k,返回满足条件的任意一个k即可,如不存在,返回-1。1<=n<=1e5;1<=nums[i],threshold<=1e9子数组每个元素都大于t,也就是最小值大于t。对于固定的最小值,显然子数组越长越有可能满足条件,因此考......
  • Excel查找两列数据相同的元素
    =IF(ISERROR(MATCH(A1,$C$1:$C$5,0)),"",A1)//没找到返回空值,否则返回本身A1---单个数据$C$1:$C$5---数据堆在数据堆中查找是否有单个数据""---没有返回空白,此处可以修改为A1,A1---有返回本身,此处可以修改为空白----------------------------------------------------------......