牛客练习小题,牛客. 矩阵最长递增路径牛客.奇数位丢弃牛客.天使果冻牛客.dd爱旋转

news/2024/9/23 11:19:32/

目录

牛客. 矩阵最长递增路径

牛客.奇数位丢弃

牛客.天使果冻

牛客.dd爱旋转 


牛客. 矩阵最长递增路径

import java.util.*;public class Solution {/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可** 递增路径的最大长度* @param matrix int整型二维数组 描述矩阵的每个数* @return int整型*/static int []dx={0,0,1,-1};static int []dy={1,-1,0,0};static int n;static int m;static int[][]dp=new int[10004][1004];public static int dfs(int[][]matrix,int p1,int p2){int len=1;if(dp[p1][p2]!=0){return dp[p1][p2];}for(int i=0;i<4;i++){int x=p1+dx[i];int y=p2+dy[i];if(x>=0&&x<n&&y>=0&&y<m&&matrix[x][y]<matrix[p1][p2]){len=Math.max(len,dfs(matrix,x,y)+1);}}dp[p1][p2]=len;return len;}public int solve (int[][] matrix) {int ret=0;n=matrix.length;m=matrix[0].length;for(int i=0;i<n;i++){for(int j=0;j<n;j++){ret=Math.max(ret,dfs(matrix,i,j));}}return ret;}
}

牛客.奇数位丢弃

import java.util.Scanner;// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {public static void main(String[] args) {Scanner in = new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextInt()) { // 注意 while 处理多个 caseint n = in.nextInt();int ret=1;//找到所有2^x-1最大的时候while(ret-1<=n) ret*=2;//在最后ret是等于>n的2^x次幂,我们需要把这个幂,进行除2,然后-1,因为ret代表的是2^xSystem.out.println(ret/2-1);}}
}

牛客.天使果冻

假如说问一遍,我们就排序一遍,那么耗费时间度就是n*q

这样是会超时的,所以预处理

采用g[i]:来存这个某一个位置的次大值

那么下次问,就是O(q)了。

如何在一堆数字中,求出第二大/小的值

f[i]来表示当前位置的最大值

import java.util.*;
public class Main{public static void main(String[]args){Scanner in=new Scanner(System.in);int n=in.nextInt();int[]a=new int[n];for(int i=0;i<n;i++){a[i]=in.nextInt();}int q=in.nextInt();int []f=new int[n];int []g=new int[n];f[0]=a[0];//注意初始化,最大值,以及次大值,最大值默认第一个有数字就行//次大值只有一个数字,没有次大值,无穷小,默认为0;for(int i=1;i<n;i++){f[i]=Math.max(f[i-1],a[i]);if(a[i]>=f[i-1]){g[i]=f[i-1];}else if( a[i]<f[i-1]&&a[i]>=g[i-1]){g[i]=a[i];   }else{g[i]=g[i-1];}}while(q>0){int x=in.nextInt();System.out.println(g[x-1]);q--;}}
}

牛客.dd爱旋转 

一定是模拟,但是开始的时候,我没想到怎么做

这么做,+快速读写

import java.util.*;
import java.io.*;
public class Main{public static PrintWriter out=new PrintWriter(new BufferedWriter(new OutputStreamWriter(System.out)));public static Read in=new Read();public static void main(String[]args) throws IOException{int n = in.nextInt();int[][] a = new int[n][n];Stack<Integer> s = new Stack<>();Queue<Integer> qlist = new LinkedList<>();for (int i = 0; i < n; i++) {for (int j = 0; j < n; j++) {a[i][j] = in.nextInt();s.add(a[i][j]);}}int q = in.nextInt();int count1 = 0;int count2 = 0;while (q != 0) {int x = in.nextInt();if (x == 1) {count1++;}//当他等于2的时候else {count2++;}q--;}if (count1 % 2 != 0) {for (int i = 0; i < n; i++) {for (int j = 0; j < n; j++) {a[i][j] = s.pop();}}}if (count2 % 2 != 0) {for (int i = n - 1; i >= 0; i--) {for (int j = 0; j < n; j++) {qlist.add(a[i][j]);}}for (int i = 0; i < n; i++) {for (int j = 0; j < n; j++) {a[i][j] = qlist.poll();}}}for (int i = 0; i < n; i++) {for (int j = 0; j < n; j++) {out.print(a[i][j] + " ");}out.println("");}out.close();  }}
class Read{StringTokenizer st=new StringTokenizer("");BufferedReader bf=new BufferedReader(new InputStreamReader(System.in));String next()throws IOException{while(!st.hasMoreTokens()){st=new StringTokenizer(bf.readLine());}return st.nextToken();}int nextInt() throws IOException{return Integer.parseInt(next());}
}

上面和下面的换

import java.util.*;
import java.io.*;
public class Main{public static PrintWriter out=new PrintWriter(new BufferedWriter(new OutputStreamWriter(System.out)));public static Read in=new Read();static  int[][]a;static int n=0;static  void setRow(){for(int i=0; i<n/2;i++){for(int j=0;j<n;j++){//行交换int tmp=a[i][j];a[i][j]=a[n-1-i][j];a[n-1-i][j]=tmp;}}}static void setCol(){//列交换for(int j=0;j<n/2;j++){for(int i=0;i<n;i++){//行不变,列变成n-1-jint tmp=a[i][j];a[i][j]=a[i][n-1-j];a[i][n-1-j]=tmp;}}}public static void main(String[]args) throws IOException{n = in.nextInt();a = new int[n][n];Stack<Integer> s = new Stack<>();Queue<Integer> qlist = new LinkedList<>();for (int i = 0; i < n; i++) {for (int j = 0; j < n; j++) {a[i][j] = in.nextInt();}}int q = in.nextInt();int row = 0;int col = 0;while (q != 0) {int x = in.nextInt();if (x == 1) {row++;col++;}//当他等于2的时候else {row++;}q--;}if (row % 2 != 0) {      setRow();        }if (col % 2 != 0) {      setCol(); }for (int i = 0; i < n; i++) {for (int j = 0; j < n; j++) {out.print(a[i][j] + " ");}out.println("");}out.close();  }}
class Read{StringTokenizer st=new StringTokenizer("");BufferedReader bf=new BufferedReader(new InputStreamReader(System.in));String next()throws IOException{while(!st.hasMoreTokens()){st=new StringTokenizer(bf.readLine());}return st.nextToken();}int nextInt() throws IOException{return Integer.parseInt(next());}
}


http://www.ppmy.cn/news/1517445.html

相关文章

Neo4j导入csv数据,并创建节点

Neo4j 是一种图数据库&#xff0c;特别适合管理和分析复杂的关系数据。 数据来源&#xff1a;http://openkg.cn/ 导入到 Neo4j 的合适场景&#xff1a; 需要在物种分类中查找层级关系&#xff08;如物种的科、属等&#xff09;。 需要进行关系查询和图结构的分析。 想在分类树…

RabbitMQ中支持多种类型的交换机

RabbitMQ中支持多种类型的交换机&#xff08;Exchange&#xff09; 其中每种类型都有其特定的路由逻辑&#xff0c;用于将消息路由到一个或多个队列中。以下是RabbitMQ中常见的四种交换机类型&#xff1a; 直连交换机&#xff08;Direct Exchange&#xff09;&#xff1a; 特…

MySQL 数据库深度解析:安装、语法与高级查询实战

一、引言 在现代软件开发和数据管理领域中&#xff0c;MySQL 数据库凭借其高效性、稳定性、开源性以及广泛的适用性&#xff0c;成为了众多开发者和企业的首选。无论是小型项目还是大型企业级应用&#xff0c;MySQL 都能提供可靠的数据存储和管理解决方案。本文将深入探讨 MyS…

VS2022 QT环境显示中文乱码问题

1.问题描述 在VS2022中搭配QT6.2环境&#xff0c;在文本处设置中文&#xff0c;运行程序文本处显示乱码&#xff0c;未成功显示想要的中文。 2.VS2015解决方案 如果是VS2015的话&#xff0c;直接文件->高级保存选项可以设置编码格式。 修改编码格式如图所示&#xff1a;…

Java中的API网关:Spring Cloud Gateway与Zuul

在微服务架构中&#xff0c;API网关扮演着至关重要的角色。它作为系统的入口&#xff0c;负责请求的路由、负载均衡、认证授权、限流熔断等功能。本文将深入探讨两个流行的Java API网关解决方案&#xff1a;Spring Cloud Gateway和Netflix Zuul&#xff0c;并通过详细的解释和代…

linux 工作中常用的命令

文章目录 前言linux 工作中常用的命令 前言 如果您觉得有用的话&#xff0c;记得给博主点个赞&#xff0c;评论&#xff0c;收藏一键三连啊&#xff0c;写作不易啊^ _ ^。   而且听说点赞的人每天的运气都不会太差&#xff0c;实在白嫖的话&#xff0c;那欢迎常来啊!!! linux…

Python编码系列—Python CI/CD 实战:构建高效的自动化流程

&#x1f31f;&#x1f31f; 欢迎来到我的技术小筑&#xff0c;一个专为技术探索者打造的交流空间。在这里&#xff0c;我们不仅分享代码的智慧&#xff0c;还探讨技术的深度与广度。无论您是资深开发者还是技术新手&#xff0c;这里都有一片属于您的天空。让我们在知识的海洋中…

考研系列-408真题数据结构篇(10-17)

写在前面 此文章是本人在备考过程中408真题数据结构部分&#xff08;2010年-2017年&#xff09;的易错题及相应的知识点整理&#xff0c;后期复习也尝尝用到&#xff0c;对于知识提炼归纳理解起到了很大的作用&#xff0c;分享出来希望帮助到大家~ # 2010年 1.散列表处理冲突…