当前位置:网站首页>703. 数据流中的第 K 大元素
703. 数据流中的第 K 大元素
2022-07-01 18:45:00 【Mr Gao】
703. 数据流中的第 K 大元素
设计一个找到数据流中第 k 大元素的类(class)。注意是排序后的第 k 大元素,不是第 k 个不同的元素。
请实现 KthLargest 类:
KthLargest(int k, int[] nums) 使用整数 k 和整数流 nums 初始化对象。
int add(int val) 将 val 插入数据流 nums 后,返回当前数据流中第 k 大的元素。
示例:
输入:
[“KthLargest”, “add”, “add”, “add”, “add”, “add”]
[[3, [4, 5, 8, 2]], [3], [5], [10], [9], [4]]
输出:
[null, 4, 5, 5, 8, 8]
解释:
KthLargest kthLargest = new KthLargest(3, [4, 5, 8, 2]);
kthLargest.add(3); // return 4
kthLargest.add(5); // return 5
kthLargest.add(10); // return 5
kthLargest.add(9); // return 8
kthLargest.add(4); // return 8
typedef struct {
struct KthLargest *next;
int val
} KthLargest;
KthLargest* kthLargestCreate(int k, int* nums, int numsSize) {
KthLargest *l=(KthLargest*)malloc(sizeof(KthLargest));
l->val=k;
l->next=NULL;
int i;
for(i=0;i<numsSize;i++){
KthLargest *p=(KthLargest*)malloc(sizeof(KthLargest));
p->val=nums[i];
KthLargest *pre=l,*s=l->next;
if(i==0){
p->next=l->next;
l->next=p;
}
else{
while(s){
if(s->val>=nums[i]){
break;}
pre=s;
s=s->next;
}
p->next=s;
pre->next=p;
}
}
return l;
}
int kthLargestAdd(KthLargest* obj, int val) {
KthLargest *pre=obj,*s=obj->next;
KthLargest *p=(KthLargest*)malloc(sizeof(KthLargest));
p->val=val;
while(s){
if(s->val>=val){
break;}
pre=s;
s=s->next;
}
p->next=s;
pre->next=p;
int i=1;
s=obj->next;
while(i<=obj->val-2){
s=s->next;
i++;
}
KthLargest *t=s->next;
s->next=t->next;
s=obj->next;
while(s){
printf("%d ",s->val);
s=s->next;
}
printf("|");
return t->val;
}
void kthLargestFree(KthLargest* obj) {
}
/** * Your KthLargest struct will be instantiated and called as such: * KthLargest* obj = kthLargestCreate(k, nums, numsSize); * int param_1 = kthLargestAdd(obj, val); * kthLargestFree(obj); */
边栏推荐
- 白盒加密技术浅理解
- Intensive cultivation of channels for joint development Fuxin and Weishi Jiajie held a new product training conference
- 任务:拒绝服务DoS
- Junit单元测试框架详解
- Parallelism, concurrency and life cycle of threads
- Solution and summary of Nacos startup failure
- 如何正确使用Vertx操作Redis(3.9.4带源码分析)
- AAAI2020: Real-time Scene Text Detection with Differentiable Binarization
- indexof和includes的区别
- CMU AI PhD 第一年总结
猜你喜欢

Detailed explanation of JUnit unit test framework
![[to.Net] C set class source code analysis](/img/59/4c7b910bc6505e5f81015ce80812fc.png)
[to.Net] C set class source code analysis

如何正确使用Vertx操作Redis(3.9.4带源码分析)

Solidity - truncated and checked modes of arithmetic operations - new features of 0.8.0

商业智能BI开发和报表开发有什么本质区别?

MySQL常用图形管理工具 | 黑马程序员

Solution of intelligent supply chain management platform in aquatic industry: support the digitalization of enterprise supply chain and improve enterprise management efficiency

uni-app微信小程序一键登录获取权限功能

【Go ~ 0到1 】 第五天 7月1 类型别名,自定义类型,接口,包与初始化函数

EasyGBS网络不稳定情况下重复请求视频拉流问题的优化
随机推荐
Solidity - truncated and checked modes of arithmetic operations - new features of 0.8.0
求各种极限的方法
Parallelism, concurrency and life cycle of threads
Go Language Advanced
Case sharing: basic networking configuration of QinQ
MySQL common graphics management tools | dark horse programmers
[go ~ 0 to 1] day 4 June 30 defer, structure, method
Lake Shore—CRX-EM-HF 型低温探针台
Junit单元测试框架详解
Netease games, radical going to sea
ECS summer money saving secret, this time @ old users come and take it away
EasyGBS主子码流都为H.265时,切换出现花屏如何解决?
Manufacturing SRM management system supplier all-round closed-loop management, to achieve procurement sourcing and process efficient collaboration
PostgreSQL varchar[] 数组类型操作
XML syntax, constraints
Supervarimag superconducting magnet system SVM series
[go ~ 0 to 1] day 5 July 1 type alias, custom type, interface, package and initialization function
Facebook聊单,SaleSmartly有妙招!
Instagram 为何从内容共享平台变成营销工具?独立站卖家如何利用该工具?
The difference between indexof and includes