当前位置: 首页> 游戏> 游戏 > 动画设计工资_全国疫情最新消息今天新增多少例_班级优化大师_短视频seo询盘获客系统

动画设计工资_全国疫情最新消息今天新增多少例_班级优化大师_短视频seo询盘获客系统

时间:2025/7/13 2:12:10来源:https://blog.csdn.net/weixin_44382896/article/details/142313616 浏览次数:0次
动画设计工资_全国疫情最新消息今天新增多少例_班级优化大师_短视频seo询盘获客系统

目录

  • 1- 思路
    • 题目识别
    • 堆实现
  • 2- 实现
    • 4. 寻找两个正序数组的中位数——题解思路
  • 3- ACM 实现


  • 原题链接:295. 数据流的中位数

1- 思路

题目识别

  • 识别1 :实现一个数据结构,求中位数

堆实现

思路

  • 利用优先队列,小根堆放较小的元素。
  • 大根堆放较大的元素。
  • 例如 1 2 3 4 5 6 ,其中大根堆放的元素是 1 2 3,小根堆放的元素是 4 5 6。中位数就是 (3+4)/2

实现

  • ① 当是偶数
    • 先入小根堆,之后大根堆添加小根堆堆顶元素。
  • ② 当是奇数
    • 先入大根堆,之后小根堆添加大根堆堆顶元素。

2- 实现

4. 寻找两个正序数组的中位数——题解思路

在这里插入图片描述

class MedianFinder {Queue<Integer> min;Queue<Integer> max;public MedianFinder() {min = new PriorityQueue<>((x,y) -> (y-x));max = new PriorityQueue<>();}public void addNum(int num) {if(min.size() == max.size()){min.add(num);max.add(min.poll());}else{max.add(num);min.add(max.poll());}}public double findMedian() {if(min.size() == max.size()){return (min.peek()+max.peek())/2.0;}else{return max.peek()*1.0;}}
}/*** Your MedianFinder object will be instantiated and called as such:* MedianFinder obj = new MedianFinder();* obj.addNum(num);* double param_2 = obj.findMedian();*/

3- ACM 实现

package Daily_LC.Month9_Week3.Day157;import java.util.PriorityQueue;
import java.util.Queue;
import java.util.Scanner;/*** findMid** @author alcohol* @Description* @since 2024-09-17 12:38*/
public class findMid {static Queue<Integer> min;static Queue<Integer> max;public findMid(){min = new PriorityQueue<>((x,y) -> (y-x));max = new PriorityQueue<>();}public static void add(int num){if(min.size() == max.size()){min.add(num);max.add(min.poll());}else{max.add(num);min.add(max.poll());}}public static double getMid(){if(min.size() == max.size()){return (min.peek()+max.peek())*0.5;}else{return max.peek()*1.0;}}public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = sc.nextInt();sc.nextLine(); // 消耗换行符findMid fm = new findMid();for(int i = 0 ; i < n ; i ++){String ope = sc.nextLine();if(ope.equals("addNum")){System.out.println("输入添加的数");int num = sc.nextInt();sc.nextLine(); // 消耗换行符fm.add(num);}else if(ope.equals("findMedian")){System.out.println(fm.getMid());}}}
}
关键字:动画设计工资_全国疫情最新消息今天新增多少例_班级优化大师_短视频seo询盘获客系统

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: