算法刷题-求素数、数据流的中位数、不同的二叉搜索树

news2025/2/24 5:22:18

求素数、数据流的中位数、不同的二叉搜索树

    • 求素数
    • 数据流的中位数
    • 不同的二叉搜索树

求素数

求1-100内的素数:

public static void main(String[] args){
        for(int i=0;i<100;i++) {
            checkPrime(i);
        }
    }
    private static void checkPrime(int x){
        boolean isPrime = true;
        if(x ==1 || x %2 ==0 && x !=2 )
        {
            isPrime = false;
        }
        else
        {
            for( int i =3; i< Math.sqrt(x); i+=2)
            {
                if( x % i == 0)
                {
                    isPrime = false;
                    break;
                }
            }
        }
        if( isPrime)
        {
            System.out.println(x +"是素数");
        }
        else
        {
            System.out.println(x+ "不是素数");
        }
    }

数据流的中位数

中位数是有序列表中间的数。如果列表长度是偶数,中位数则是中间两个数的平均值。
例如,
[2,3,4] 的中位数是 3
[2,3] 的中位数是 (2 + 3) / 2 = 2.5
设计一个支持以下两种操作的数据结构:

  • void addNum(int num) - 从数据流中添加一个整数到数据结构中。
  • double findMedian() - 返回目前所有元素的中位数。

示例:
addNum(1) addNum(2) findMedian() -> 1.5 addNum(3) findMedian() -> 2
进阶:

  1. 如果数据流中所有整数都在 0 到 100 范围内,你将如何优化你的算法?
  2. 如果数据流中 99% 的整数都在 0 到 100 范围内,你将如何优化你的算法?
class MedianFinder {
    PriorityQueue<Integer> min;
    PriorityQueue<Integer> max;
    /** initialize your data structure here. */
    public MedianFinder() {
        min = new PriorityQueue<>();
        max = new PriorityQueue<>((a, b) -> {
            return b - a;
        });
    }
    public void addNum(int num) {
        max.add(num);
        min.add(max.remove());
        if (min.size() > max.size())
            max.add(min.remove());
    }
    public double findMedian() {
        if (max.size() == min.size())
            return (max.peek() + min.peek()) / 2.0;
        else
            return max.peek();
    }
}
/**
 * Your MedianFinder object will be instantiated and called as such:
 * MedianFinder obj = new MedianFinder();
 * obj.addNum(num);
 * double param_2 = obj.findMedian();
 */

不同的二叉搜索树

给你一个整数 n ,求恰由 n 个节点组成且节点值从 1 到 n 互不相同的 二叉搜索树 有多少种?返回满足题意的二叉搜索树的种数。

示例 1:
在这里插入图片描述

输入:n = 3 输出:5
示例 2:
输入:n = 1 输出:1

提示:

  • 1 <= n <= 19
class Solution {
    public int numTrees(int n) {
        if (n < 2) {
            return 1;
        }
        int[] count = new int[n + 1];
        count[0] = 1;
        count[1] = 1;
        for (int i = 2; i <= n; i++) {
            int sum = 0;
            for (int root = 1; root <= i; root++) {
                sum = sum + count[root - 1] * count[i - root];
            }
            count[i] = sum;
        }
        return count[n];
    }
}

本文内容到此结束了,
如有收获欢迎点赞👍收藏💖关注✔️,您的鼓励是我最大的动力。
如有错误❌疑问💬欢迎各位指出。
主页:共饮一杯无的博客汇总👨‍💻

保持热爱,奔赴下一场山海。🏃🏃🏃

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

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

相关文章

nodejs+vue大学生提问论坛系统vscode

目 录 摘 要 I ABSTRACT II 目 录 II 第1章 绪论 1 1.1背景及意义 1 1.2 国内外研究概况 1 1.3 研究的内容 1 第2章 相关技术 3 前端技术&#xff1a;nodejsvueelementui,视图层其实质就是vue页面&#xff0c;通过编写vue页面从而展示在浏览器中&#xff0c;编写完成的vue页面…

Linux-时间和日期、磁盘信息和进程信息

为了方便通过远程终端维护服务器时&#xff0c;查看服务器上当前系统日期和时间 /磁盘空间占用情况/程序执行情况&#xff0c;本节基本都是查询命令时间和日期datecal磁盘和目录空间dfdu进程信息pstopkill1.时间和日期序号命令作用01cal查看一个月日历&#xff0c; -y选项可以查…

consul集群解决单注册弊端

consul集群前面我们用consul注册发现服务&#xff0c;这里的弊端显而易见&#xff0c;单机版如果挂掉&#xff0c;就无法正常使用。consul的集群是复制模式&#xff0c;每个节点的信息一致。当其中一个挂掉&#xff0c;其他正常运行。consul官网建议最好是3个节点&#xff0c;其…

MyEclipse安装及需要进行的配置

安装&#xff1a;https://blog.csdn.net/qq_30764991/article/details/82531415?spm1001.2101.3001.6650.9&utm_mediumdistribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-9-82531415-blog-126523828.pc_relevant_aa2&depth_1-utm_sou…

网络游戏与未来生存——谈一下不要因为认知不到位让孩子失去未来的机会

这个话题要从几个月前的一个事件谈起&#xff0c;先看看下面的截图&#xff1a;于是&#xff0c;那一天&#xff0c;各种阴谋论甚嚣尘上&#xff0c;大多数的话题都是直指腾讯&#xff0c;说腾讯的活动能力太强了。随后几天网上也是各种关于网络游戏毁掉孩子未来的说法和观点&a…

2022区块链投融资鸟瞰:总额超千亿元,数字货币坚挺,Web3叙事强劲

文/尹宁出品/陀螺研究院从整个区块链行业来看&#xff0c;2022年&#xff0c;在全球通胀与投资受限的环境下&#xff0c;资本圈与区块链之间可谓一波三折。在TMT、新消费、生物医药等赛道的各种消极表现下&#xff0c;年初Web3与元宇宙的横空出世正中资本下怀&#xff0c;a16z、…

c++ 快排思想

文章目录讲下思想时间复杂度优化代码实现讲下思想 我这边主要是分左右两边的指针寻找 left指针从左边寻找大于p的数 right 从右寻找小于p的数 然后找到进行交换&#xff0c;直到相遇在一起 说明这个位置是分隔的位置 而p的数就是分隔的数&#xff0c;所以对p和l进行一个…

什么都不会的应届生怎么找工作?

2023年&#xff0c;很多大学应届生都会面临到的一个问题&#xff1a;疫情三年上网课没有学到什么知识和技能&#xff0c;并且学习效果大多不理想&#xff1b;现在面临就业时对自身专业技能不自信&#xff0c;怀疑自己是否能找到工作&#xff0c;更别说是适合自己喜欢的工作。面…

Vue 3.2 源码系列:有点难的《最新 diff 算法详解》

本文首发自&#xff1a;稀土掘金、思否 博客代码已上传至github 点击这里 即可访问 另提供&#xff1a;完整代码&#xff08;tsrollup&#xff09;和视频教程 序 所谓算法指的是&#xff1a;把一种数据结构转化为另外一种数据结构的方法。 在runtime(运行时)阶段存在一个无论如…

内网渗透(四)之基础知识-搭建域环境

系列文章 内网渗透(一)之基础知识-内网渗透介绍和概述 内网渗透(二)之基础知识-工作组介绍 内网渗透(三)之基础知识-域环境的介绍和优点 注&#xff1a;阅读本编文章前&#xff0c;请先阅读系列文章&#xff0c;以免造成看不懂的情况&#xff01;&#xff01; 搭建域环境 在…

DataX案例实操

1、DataX使用 1.1、DataX任务提交命令 DataX的使用十分简单&#xff0c;用户只需根据自己同步数据的数据源和目的地选择相应的Reader和Writer&#xff0c;并将Reader和Writer的信息配置在一个json文件中&#xff0c;然后执行如下命令提交数据同步任务即可。 [songhadoop102 …

JavaScript 进阶5:WebAPI:DOM- 网页特效篇

JavaScript 进阶5&#xff1a;WebAPI&#xff1a;DOM- 网页特效篇 Date: January 28, 2023 Text: 轮播图高级版待解决 滚动事件、加载事件、元素大小和位置&#xff08;scroll、offset、client&#xff09;、轮播图案例 目标 能够制作常见的网页特效具备制作常见网页焦点图的…

WebRTC音频系统 之audio技术栈简介-1

文章目录第一章 WebRTC技术栈简介1.1 视频会议中常见的服务端架构1.2 WebRTC 网络协议栈1.3 WebRTC 源码目录结构1.4 client侧技术栈1.5 WebRTC native编译以及debug1.6 APM模块1.7 ADM模块WebRTC是Google开源的Web实时音视频通信框架&#xff0c;其提供P2P的音频、视频和一般数…

PTA---寒假温故知新作业

&#x1f680;write in front&#x1f680; &#x1f4dd;个人主页&#xff1a;认真写博客的夏目浅石. &#x1f381;欢迎各位→点赞&#x1f44d; 收藏⭐️ 留言&#x1f4dd; &#x1f4e3;系列专栏&#xff1a;PTA学校题集 &#x1f4ac;总结&#xff1a;希望你看完之后&a…

Python Fiddler最新抓包工具教学:快速获取公众号(pc客户端)公开数据

嗨害大家好鸭~ 我是小熊猫 之前的Fiddler版本过期了&#xff0c;现在再来补上一个小案例 源码资料电子书:点击此处跳转文末名片获取 开发环境 - python 3.8 运行代码 - pycharm 2021.2 辅助敲代码 - requests第三方模块 - Fiddler 汉化版 抓包的工具 - 微信PC端 如何抓包 配置…

Python 初学者进阶的九大技能

Python是一种很棒的语言&#xff0c;语法简单&#xff0c;无需在代码中搜索分号。对于初学者来说&#xff0c;Python是入门最简单的语言之一。 Python有大量的库支持&#xff0c;你还可以安装其他库来增加自己的编程经验。 学了一阵子之后&#xff0c;你可能会觉得&#xff1…

成功解决使用yum安装的php版本过低的问题

文章目录前言一. 问题复现二. 问题分析三. 问题解决&#xff1a;四. 重要补充1. yum-config-manager介绍2. yum-uitls介绍3. remi资源库的介绍总结前言 大家好&#xff0c;我是沐风晓月。 日常学习过程经常会遇到一些奇奇怪怪的问题&#xff0c;为了把每个问题记录下来&#…

2023Facebook该如何养号?Facebook防封指南了解一下!

Facebook是大多数跨境电商卖家主攻的社交媒体平台&#xff0c;但也经常会有卖家抱怨&#xff0c;Facebook账号又无缘无故地被封了。Facebook是公认的非常容易被封&#xff0c;而新开的账号&#xff0c;不仅会导致前期的积累化为乌有&#xff0c;同时新账号被封的可能性也更高。…

python基于融合SPD-Conv改进yolov5与原生yolov5模型实践路面裂痕裂缝检测

SPD-Conv源于2022年一篇专门针对于小目标和低分辨率图像研究提出来的新技术&#xff0c;可以用于目标检测任务&#xff0c;能够一定程度提升模型的检测效果&#xff0c;今天正好有时间就想基于SPD融合yolov5s模型来开发路面裂痕裂缝检测模型&#xff0c;同时与原生的yolov5s模型…

Jenkins配置和使用

Jenkins的使用过程:配置代码库,然后配置代码静态检查,配置编译,配置单元测试,部署测试环境部署,测试,部署staging环境,测试通过,部署product环境 常见插件: git docker k8s maven grandle join Copy artifact ssh访问模式master agent &#xff08;1&#xff09;安装J…