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

347. 前 K 个高频元素C

时间:2024-03-13 20:22:59浏览次数:29  
标签:count index num int 元素 Hash 347 hash 高频

/**
 * Note: The returned array must be malloced, assume caller calls free().
 */

typedef struct node{
    int num;
    int count;
}Hash;

void inset(Hash* hash,int size,int num){
    int index=abs(num)%size;
    if(hash[index].count==0){
        hash[index].count++;
        hash[index].num=num;
    }else{
        if(hash[index].num==num){
            hash[index].count++;
        }else{
            while(hash[index].count!=0 && hash[index].num!=num) index=(index+1)%size;
            hash[index].num=num;
            hash[index].count++;
        }
    }
}
int cmp(const void* a,const void* b){
    Hash* n1=(Hash*)a;
    Hash* n2=(Hash*)b;
    return n2->count-n1->count;
}

int* topKFrequent(int* nums, int numsSize, int k, int* returnSize) {
    *returnSize=k;
    Hash* hash=(Hash*)malloc(sizeof(Hash)*numsSize);
    for(int i=0;i<numsSize;i++) hash[i].count=0;
    for(int i=0;i<numsSize;i++){
        inset(hash,numsSize,nums[i]);
    }
    qsort(hash,numsSize,sizeof(Hash),cmp);
    int* array=(int*)malloc(sizeof(int)*k);
    for(int i=0;i<k;i++){
        array[i]=hash[i].num;
    }
    return array;
}

复试的时候一定要出个要自己写HASH的题啊,呜呜呜。

标签:count,index,num,int,元素,Hash,347,hash,高频
From: https://www.cnblogs.com/llllmz/p/18071443

相关文章

  • 380. O(1) 时间插入、删除和获取随机元素.18071112
    380.O(1)时间插入、删除和获取随机元素实现RandomizedSet类:RandomizedSet()初始化RandomizedSet对象boolinsert(intval)当元素val不存在时,向集合中插入该项,并返回true;否则,返回false。boolremove(intval)当元素val存在时,从集合中移除该项,并返回true;否则......
  • WPF绘图指南:用XAML轻松实现圆、线、矩形、文字、图片创意元素
     概述:在WPF中,通过使用不同的元素如Ellipse、Line、Rectangle等,可以轻松绘制各种图形,包括圆、线条、椭圆、矩形、多边形等。同时,通过TextBlock展示文字,Image展示图片,以及Path创建路径和曲线,使得图形的绘制变得灵活多样。通过简单的XAML代码,开发者可以快速构建各种图形和界面元......
  • LeetCode[题解] 1261. 在受污染的二叉树中查找元素
    首先我们看原题给出一个满足下述规则的二叉树:root.val==0如果 treeNode.val==x 且 treeNode.left!=null,那么 treeNode.left.val==2*x+1如果 treeNode.val==x 且 treeNode.right!=null,那么 treeNode.right.val==2*x+2现在这个二叉树受到「污......
  • jQuery绑定动态元素的点击事件无效
    原文链接:https://blog.51cto.com/u_15142266/2680137之前就一直受这个问题的困扰,在写ajax加载数据的时候发现,后面追加进来的demo节点元素,失去了之前的点击事件。为什么点击事件失效,我们该怎么去解决呢?那么,我们通过下面的示例简单说明。通过运行以上代码,就会发现动态生成的标......
  • HashSet保证元素唯一性原理的探索、总结
    HashSet存储自定义类型的元素发现没有对相同的对象进行去重,没有保证元素的唯一性HashSet保证元素唯一性原理的探索对自定义类型的元素没有去重成功,考虑没有重写equals方法,去重时候,使用的是地址值来比较多个元素是否重复,考虑重写equals方法重写equals方法之后,发现没有去重成功,在eq......
  • 【算法】【线性表】【数组】在排序数组中查找元素的第一个和最后一个位置
    1 题目给你一个按照非递减顺序排列的整数数组 nums,和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值 target,返回 [-1,-1]。你必须设计并实现时间复杂度为 O(logn) 的算法解决此问题。示例1:输入:nums=[5,7,7,8,8,......
  • leetcode: 1261: 在受污染的二叉树中查找元素
    给出一个满足下述规则的二叉树:root.val==0如果 treeNode.val==x 且 treeNode.left!=null,那么 treeNode.left.val==2*x+1如果 treeNode.val==x 且 treeNode.right!=null,那么 treeNode.right.val==2*x+2现在这个二叉树受到「污染」,所有的 tree......
  • Java集合面试高频问题---集合框架体系(3)
    HashMap源码分析HashMap常见属性扩容默认为数组容量加载印子即160.75put方法put添加数据流程图每次添加数据之后都判断是否需要扩容......
  • LeetCode - 高频SQL50题(基础版)部分题解(上)
    1581.进店却未进行过交易的顾客原题:https://leetcode.cn/problems/customer-who-visited-but-did-not-make-any-transactions/题意:有一些顾客可能光顾了购物中心但没有进行交易。请你编写一个解决方案,来查找这些顾客的ID(customer_id),以及他们只光顾不交易的次数(count_no_trans......
  • abc344E 维护元素唯一的序列
    给定序列A[N],元素值各不相同,有Q个操作,格式如下:1xy:在元素x后面插入元素y,保证插入时x唯一。2x:将元素x从序列中删除,保证删除时x唯一。输出所有操作完成后的序列。1<=N,Q<=2E5;1<=A[i]<=1E9;A[i]!=A[j]用链表来快速插入和删除,另外还需要map来快速定位,类似LRU的实现。......