笔试刷题-Day10

devtools/2024/10/18 5:48:48/

牛客

一、DP30买卖股票的最好时机(一)

在这里插入图片描述
算法:虽然题目标了DP但是用贪心更快页更容易理解

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 处理多个 case//     int a = in.nextInt();//     int b = in.nextInt();//     System.out.println(a + b);// }//贪心,维护一个当前最小值(买入)int len = in.nextInt();int preMin = in.nextInt();int max = 0;for(int i = 1;i<len;i++){int temp = in.nextInt();preMin = Math.min(preMin,temp);max = Math.max(max,temp-preMin);}System.out.println(max) ;}
}

二、OR26 最长回文子串

在这里插入图片描述

算法:中心扩展(注意奇数偶数回文的区别)
遍历中心点,每次遍历向两端扩展,直到不相等为止,长度为r-l-1;

import java.util.*;public class Solution {/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可** * @param A string字符串 * @return int整型*/public int getLongestPalindrome (String A) {// write code here//中心扩展算法int max = 0;int len = A.length();int left = 0 ;int right = 0; for(int i = 0;i<len;i++){//奇数回文串left = i-1;right = i+1;while(left>=0&&right<len){if(A.charAt(left)==A.charAt(right)){left--;right++;}else{break;}}max = Math.max(max,right-left-1);//偶数回文串left = i;right = i+1;while(left>=0&&right<len){if(A.charAt(left)==A.charAt(right)){left--;right++;}else{break;}}max = Math.max(max,right-left-1);}return max;}
}

三、NC369 [NOIP2002 普及组] 过河卒

在这里插入图片描述
算法:动态规划-路径
1.状态表示
dp[i][j]表示:从[0,0]位置出发,到达dp[i,j]位置,一共有多少种方法
2.状态转移方程
dp[i,j] = dp[i-1,j]+dp[i,j-1];需要判断dp[i.j]位置
3.初始化
多加一行一列

import java.util.*;public class Solution {/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可** * @param n int整型 棋盘行数* @param m int整型 棋盘列数* @param x int整型 马的横坐标* @param y int整型 马的纵坐标* @return int整型*/public int crossRiver (int n, int m, int x, int y) {// write code hereint[][] dp = new int[n+2][m+2];dp[0][1] = 1;x+=1;y+=1;for(int i=1;i<=n+1;i++){for(int j =1;j<=m+1;j++){if(i!=x&&j!=y&&Math.abs(i-x)+Math.abs(j-y)==3||(i==x&&j==y)){dp[i][j] = 0;}else{dp[i][j] = dp[i-1][j]+dp[i][j-1];// System.out.println(dp[i][j]);}}}return dp[n+1][m+1];}
}

http://www.ppmy.cn/devtools/23432.html

相关文章

同步与异步

异步与同步的区别 异步编程的主要优势在于它能够利用IO等待时间&#xff0c;提高系统的并发性能和吞吐量。当涉及到需要等待IO操作&#xff08;例如网络请求、数据库查询等&#xff09;完成时&#xff0c;异步编程可以使其他任务继续执行&#xff0c;而不需要阻塞整个程序。 …

Kindling-OriginX v1.3.0 发布:自动关联锁堆栈与锁时间,精准定位问题代码;新增代码火焰图,识别热点代码段

本次更新中&#xff0c;Kindling-OriginX 创新性地实现了慢故障 Trace 与代码堆栈的自动化关联。对于由于代码中锁问题导致的慢故障&#xff0c;可以快速通过“锁耗时分析”能力定位到相关代码堆栈&#xff0c;确定问题代码段。 针对性能分析往往较复杂&#xff0c;无法快速定…

23种设计模式简单记录

23种设计模式主要分为三大类&#xff1a;创建型模式、结构型模式和行为型模式。下面是这些设计模式的概览&#xff1a; 创建型模式&#xff08;Creational Patterns&#xff09; 单例模式&#xff08;Singleton&#xff09;&#xff1a;确保一个类只有一个实例&#xff0c;并…

基于Springboot+Mybatis-Plus+mysql+html旅游网站

博主介绍&#xff1a; 大家好&#xff0c;本人精通Java、Python、C#、C、C编程语言&#xff0c;同时也熟练掌握微信小程序、Php和Android等技术&#xff0c;能够为大家提供全方位的技术支持和交流。 我有丰富的成品Java、Python、C#毕设项目经验&#xff0c;能够为学生提供各类…

力扣HOT100 - 78. 子集

解题思路&#xff1a; class Solution {public List<List<Integer>> subsets(int[] nums) {List<List<Integer>> lists new ArrayList<>(); // 解集lists.add(new ArrayList<Integer>()); // 首先将空集加入解集中for(int i 0; i < n…

hadoop中块的概念

块概念 目录 1.分块的原因 2.分块的大小 默认为128M 3.机架 4.在块的分布上 5.hadoop上传数据的步骤&#xff08;重要&#xff09; 6.读过程 1.分块的原因 存储的角度 分布式存储 计算角度 生产环境中 4G 2.分块的大小 默认为128M 块的大小不宜过大 也不宜过小 都会使…

vue的build先上部署的 devServer不生效的场景记录

文章目录 Nginx 相关命令VUE项目devServer.proxy&#xff08;正向代理&#xff09;匹配请求中的地址工作流程开发期间代理proxy的配置项目打包上线出现的问题描述 Nginx 相关命令 //运行命令 start nginx 启动nginx服务//运行命令 nginx -s stop 停止nginx服务//运行命令 ngin…

司库是什么?和资金管理有什么异同?

一、司库是什么&#xff1f; 司库&#xff0c;从广义上来说&#xff0c;是一个企业或机构的资金管理中心&#xff0c;负责集中管理和调度企业的资金、资产和负债。它不仅涉及到企业的现金流管理、风险管理、投资决策等方面&#xff0c;还涉及到企业与外部金融机构、供应商、客…