算法刷题常用方法

📑前言

本文主要是【java】——算法刷题常用方法的文章,如果有什么需要改进的地方还请大佬指出⛺️

🎬作者简介:大家好,我是听风与他🥇
☁️博客首页:CSDN主页听风与他
🌄每日一句:狠狠沉淀,顶峰相见

目录

    • 📑前言
    • 1.最大公约数gcd
    • 2.唯一分解定理
    • 3.欧拉筛
    • 4.单调队列实现滑动窗口
    • 5.数组前缀和
    • 📑文章末尾

1.最大公约数gcd

package 蓝桥杯练习;import java.util.Scanner;public class 最大公约数 {public static void main(String[] args) {// TODO Auto-generated method stubScanner sc = new Scanner(System.in);int a = sc.nextInt();int b = sc.nextInt();System.out.println(gcd(a, b));System.out.println(a*b/gcd(a, b));}public static int gcd(int a,int b) {return b==0?a:gcd(b, a%b);}}

2.唯一分解定理

package 蓝桥杯练习;import java.util.Scanner;public class 唯一分解定理 {public static void main(String[] args) {// TODO Auto-generated method stubScanner sc = new Scanner(System.in);while(sc.hasNext()) {int n = sc.nextInt();System.out.println(syz(n));}}public static int syz(int n) {int cnt = 1;int bak = n;for(int i=2;i*i<=n;i++) {int num = 0;while(bak%i==0) {num++;bak/=i;}cnt = cnt*(num+1);}if (bak > 1) {cnt++;}return cnt;}}

3.欧拉筛

package 蓝桥杯练习;public class 欧拉筛 {public static void main(String[] args) {// TODO Auto-generated method stubint N = 1000;int prime[] = new int[N];boolean isp[] = new boolean[N+5];int count = 0;for(int i=2;i<=N;i++) {if(isp[i]==false) prime[count++]=i;for(int j=0;j<count&&prime[j]*i<=N;j++) {isp[i*prime[j]]=true;//素数的i倍一定是合数if(i%prime[j]==0) break;}}for(int i=0;i<count;i++) {System.out.println(prime[i]);}System.out.println("共有"+count+"个素数");}}

4.单调队列实现滑动窗口

package 蓝桥杯练习;import java.util.ArrayDeque;
import java.util.Deque;
import java.util.Scanner;public class 单调队列实现滑动窗口1 {/*
8 3
1 3 4 7 6 2 5 1*/public static void main(String[] args) {// TODO Auto-generated method stub/** 长度为n的数组 长度为m的窗口,求数组中每个长度为m的窗口中的最大值* * n=8 m = 3* 1 3 4 7 6 2 5 1*/Scanner sc = new Scanner(System.in);int n = sc.nextInt();int m = sc.nextInt();int a[] = new int[n];for(int i=0;i<n;i++) {a[i] = sc.nextInt();}Deque<Integer> q = new ArrayDeque<>();for(int i=0;i<n;i++) {//保证队头元素一定是在窗口的 i-3+1while(!q.isEmpty()&&q.peekFirst()<i-m+1) q.pollFirst();while(!q.isEmpty()&&a[q.peekLast()]<a[i]) q.pollLast();q.addLast(i);if (i>=m-1) {System.out.println(a[q.peekFirst()]);}}}}

5.数组前缀和

package 蓝桥杯练习;import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.StreamTokenizer;public class 数组前缀和 {
/*
5
1 2 3 4 5*/public static void main(String[] args) throws IOException {// TODO Auto-generated method stubStreamTokenizer sc = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));sc.nextToken();int n = (int)sc.nval;int a[] = new int[n+1];long sum[] = new long[n+1];for(int i=1;i<=n;i++) {sc.nextToken();a[i] = (int)sc.nval;}for(int i=1;i<=n;i++) {sum[i]=a[i]+sum[i-1];}for(int i=1;i<=n;i++) {System.out.println(sum[i]);}}}

📑文章末尾

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

开发超爽的nodejs命令行程序

开发nodejs命令行程序以一般会到什么库&#xff1f; 首选commander提供一套标化化的命令行解析&#xff0c;非常好用。其次是prompts、inquirer,enquirer等库来提供交互输入提示&#xff0c;可以提供更加友好的用户体验还有一个是ansicolor、chalk来进行命令行输出的颜色控制&…

DNS解析原理和k8s DNS 实践

1. 问题背景 1.1 域名解析异常 近期开发的一个功能&#xff0c;需要在k8s集群容器环境中调用公司内部api&#xff0c;api提供了内网域名&#xff0c;解析内网域名异常导致请求超时&#xff0c;因此梳理了下DNS的知识点。 可以先看到下面&#x1f447;这段配置&#xff0c;修…

ubuntu20.04安装cuda11.4以及cudnn

系统&#xff1a;ubuntu20.04硬件配置&#xff1a;GPU3080、CPU未知通过《软件和更新》在附加驱动选项中添加了驱动&#xff1a; 1.检查自己电脑支持的cuda nvidia-smi4. 下载cuda11.4.2 wget https://developer.download.nvidia.com/compute/cuda/11.4.2/local_installers/c…

Java中CompletableFuture 异步编排的基本使用

一、前言 在复杂业务场景中&#xff0c;有些数据需要远程调用&#xff0c;导致查询时间缓慢&#xff0c;影响以下代码逻辑运行&#xff0c;并且这些浪费时间的逻辑与以后的请求并没有关系&#xff0c;这样会大大增加服务的时间。 假如商品详情页的每个查询&#xff0c;需要如下…

【高等数学之泰勒公式】

一、从零开始 1.1、泰勒中值定理1 什么是泰勒公式?我们先看看权威解读: 那么我们从古至今到底是如何创造出泰勒公式的呢? 由上图可知&#xff0c;任一无穷小数均可以表示成用一系列数字的求和而得出的结果&#xff0c;我们称之为“无穷算法”。 那么同理我们想对任一曲线来…

Every Nobody Is Somebody 「每小人物都能成大事」

周星驰 NFT Nobody即将发售&#xff0c;Nobody共创平台 Every Nobody Is Somebody Nobody 关于Nobody&#xff1a;Nobody是一款Web3共创平台&#xff0c;旨在为创作者提供一个交流和合作的场所&#xff0c;促进创意的产生和共享。通过该平台&#xff0c;创作者可以展示自己的作…

程序员试用期转正工作总结

一、试用期工作总结 在公司的三个月试用期中&#xff0c;我完成了以下工作&#xff1a; 完成了XX个功能模块的开发&#xff0c;包括XX模块、XX模块和XX模块。参与了XX个项目的开发和上线&#xff0c;其中XX项目、XX项目和XX项目是我主导的。优化了现有系统的性能&#xff0c;特…

Linux最常用的几个系统管理命令

文章目录 Linux最常用的几个系统管理命令查看网络信息的原初 ifconfig默认无参数使用-s显示短列表配置IP地址修改MTU启动关闭网卡 显示进程状态 ps语法几个实例默认情况显示所有进程查找特定进程信息 任务管理器的 top常规使用显示完整命令设置信息更新次数设置信息更新时间显示…

自行车商城网站网页设计与制作web前端设计html+css+js成品。电脑网站制作代开发。vscodeDrea

【自行车商城网站网页设计与制作web前端设计htmlcssjs成品。电脑网站制作代开发。vscodeDrea】 https://www.bilibili.com/video/BV1wT4y1p7jq/?share_sourcecopy_web&vd_sourced43766e8ddfffd1f1a1165a3e72d7605

知识】分享几个摄像头的选型相关知识

【知识】分享几个摄像头的选型相关知识 目录 【知识】分享几个摄像头的选型相关知识一、前言二、正文1、先了解一下监控摄像头的种类1.1、云台型&#xff08;云台型一体摄像机&#xff09;1.2、枪机型&#xff08;枪型摄像机&#xff09;1.3、球机型&#xff08;球型摄像机&…

二叉树及其实现

二叉树 一.树的概念及结构1.1树的概念1.2相关概念 2.二叉树的概念及结构2.1 概念2.2 特殊的二叉树 3.二叉树的遍历3.1 前序、中序以及后序遍历3.2 层序遍历3.3 判断二叉树是否是完全二叉树3.4 二叉树的高度3.5 二叉树的叶子节点个数3.6 二叉树的第k层的节点个数3.7 二叉树销毁3…

SpringBoot+RocketMQ集群(dledger)部署完整学习笔记

文章目录 前言一、单台集群部署二、多台集群部署1.修改配置2.dashboard修改 三、整合springboot1.引入pom和修改yml2.编写消费者3.编写生产者4.测试效果 总结 前言 RocketMQ集群方式有好几种 官网地址 https://rocketmq.apache.org/zh/docs/4.x/deployment/01deploy 2m-2s-asy…