自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 收藏
  • 关注

原创 华为OD机试C卷 - 完美走位 - 滑动窗口 - (Java & C++ & JavaScript & Python)

本文解决一个游戏走位优化问题:给定由WASD组成的字符串表示移动方向,要求通过替换一段连续子串,使得各方向移动次数相同(完美走位)。算法步骤如下:1)统计各方向总次数;2)计算需要调整的超额量;3)若无超额直接返回0;4)使用滑动窗口寻找包含所有超额字符的最短连续子串。该算法在O(n)时间内解决问题,适用于Java、C++、Python等多种实现。例如输入"AAAASSSS"需替换长度为4的子串(如"AASS")才能达到平衡。

2025-10-09 15:03:33 5

原创 华为OD机试C卷 - 流量波峰 - 暴力搜索 - (Java & C++ & JavaScript & Python)

该题目要求在一组流量采样数据中寻找满足特定条件的三元组(i,j,k),其中i<j<k,且nums[i]<nums[j]>nums[k],目标是找到所有合法三元组中k-i的最小值。若不存在则返回-1。 解题思路是通过枚举每个可能的中间点j,分别向左和向右寻找最近的比nums[j]小的值作为i和k。具体实现时,从j-1向左扫描找到第一个nums[i]<nums[j]的点i,从j+1向右扫描找到第一个nums[k]<nums[j]的点k。若找到则计算k-i并更新最小值。

2025-10-08 12:39:03 159

原创 华为OD机试C卷 - 滑动窗口最大值 - 滑动窗口 - (Java & C++ & JavaScript & Python)

摘要:题目要求计算滑动窗口和的最大值。给定一个长度为N的数组和大小为M的窗口,窗口从数组起始位置滑动,每次计算窗口内元素和,找出所有和中的最大值。解题思路利用滑动窗口特性,通过减去左边移出元素和加上右边新元素来优化计算,将时间复杂度降至O(N)。提供了Java、C++、JavaScript和Python的实现代码,核心都是先计算初始窗口和,然后滑动窗口更新和并记录最大值。测试用例验证了算法的正确性。

2025-10-08 11:31:52 20

原创 华为OD机试C卷 - 围棋的气 - 数组 - (Java & C++ & JavaScript & Python)

这篇文章介绍了如何计算围棋中黑棋和白棋的"气"的数量。气是指棋子上下左右相邻的空交叉点,同色棋子共享的气点只计一次。文章提供了输入格式说明(两行坐标数据)、解题思路(标记棋盘、检查相邻空点并使用集合去重)以及Java、C++、JavaScript和Python四种语言的实现代码。所有实现都遵循相同的逻辑:读取坐标、标记棋盘、遍历每个棋子的四个相邻点统计空点(去重),最后输出两色的总气数。

2025-10-08 11:04:50 267

原创 华为OD机试C卷 - 找朋友 - 单调栈 - (Java & C++ & JavaScript & Python)

本文介绍了一个算法问题,要求为站成一队的小朋友找到右侧第一个比自己高的朋友位置。使用单调栈技术,从右向左遍历身高数组,维护一个递减栈。对于每个小朋友,弹出栈中较矮的索引,若栈不空则栈顶即为更高朋友的索引,否则记为0。该算法时间复杂度为O(n),适用于最多40000个小朋友的场景,比暴力解法更高效。提供了Java、C++、JavaScript和Python的实现代码示例。

2025-10-07 22:36:24 158

原创 华为OD机试C卷 - 园区参观路径 - 动态规划 - (Java & C++ & JavaScript & Python)

本文介绍了如何计算在矩形园区中从左上角到右下角的不同路径数量,其中0表示可通行,1表示障碍。使用动态规划方法,通过初始化第一行和第一列的路径数,然后根据每个格子的上方和左方格子更新当前格子的路径数。最终输出右下角格子的路径数。提供了Java、C++、JavaScript和Python的实现代码,核心思路相同,通过二维数组记录每个位置的路径数,遇到障碍则路径数为0,否则累加上方和左方的路径数。

2025-10-07 21:55:01 241

原创 华为OD机试C卷 - 猴子吃桃 - 二分查找 - (Java & C++ & JavaScript & Python)

本文探讨了孙悟空在蟠桃园吃桃的最小速度问题。给定N棵蟠桃树和H小时时间限制,要求找到孙悟空能在H小时内吃完所有蟠桃的最小整数速度K。这是一个典型的二分查找问题,通过验证不同K值能否在规定时间内完成来找到最优解。文章提供了Java、C++、JavaScript和Python四种实现方案,核心思路是:1)确定搜索范围;2)使用二分法验证中间值;3)通过计算总耗时与H的比较来调整搜索边界。所有实现都包含输入验证和相同的算法逻辑,最终输出最小可行K值。

2025-10-05 22:38:41 20

原创 华为OD机试C卷 - 分披萨 - 贪心 DFS - (Java & C++ & JavaScript & Python)

摘要:本文解决了一个披萨分配问题,"吃货"和"馋嘴"两人轮流选择披萨块。"吃货"先选任意一块,之后必须从缺口处选择。"馋嘴"总是选择当前最大块。通过动态规划方法,枚举"吃货"第一块的所有可能选择,并使用记忆化搜索计算后续最优解。算法时间复杂度为O(N²),空间复杂度O(N²)。提供了Java、C++、JavaScript和Python四种实现方案,均采用类似思路解决该博弈问题。

2025-10-05 21:44:30 103

原创 华为OD机试C卷 - 分苹果 - 二进制 - (Java & C++ & JavaScript & Python)

摘要 题目描述两个人分苹果的问题:A采用二进制不进位加法(异或运算)计算,B采用十进制加法。要求满足A的条件下,B获取的苹果重量最大。若无法满足A的条件(所有苹果异或和非零),输出-1;否则,B获取的最大重量为总重量减去最轻苹果的重量。提供Java、C++、JavaScript和Python四种语言的实现代码,均通过读取输入、计算异或和及总重量,并判断条件后输出结果。

2025-10-04 23:10:09 132

原创 华为OD机试C卷 - 寻找最大价值矿堆 - DFS - (Java & C++ & JavaScript & Python)

题目要求在一个由0(空地)、1(银矿)、2(金矿)组成的地图中,找出相邻矿石(上下左右连通)组成的最大价值矿堆。银矿价值1,金矿价值2。采用深度优先搜索(DFS)算法遍历每个矿石格子,标记已访问并计算连通矿堆的总价值,维护全局最大值。最终输出最大矿堆价值。测试用例1输出8,用例2输出15。提供了Java、C++、JavaScript和Python四种实现,核心思路均为DFS遍历连通块并累加价值。

2025-10-04 22:33:29 90

原创 mybatis执行sql过程

通过理解 MyBatis 的执行原理,可以更好地优化 SQL 性能、定制插件,并快速定位复杂问题(如缓存失效、动态 SQL 错误等)。处理PreparedStatement(预编译,推荐)处理普通Statement(无参数)

2025-05-11 16:10:30 803

原创 JDBC执行sql过程

/ 实际中连接池会回收而非真正关闭。// 按列名获取 String name = rs.getString(2);// 按索引获取(从 1 开始)Class.forName("com.mysql.cj.jdbc.Driver");// MySQL 驱动类。// 设置参数(索引从 1 开始)conn.commit();​:通过 SPI 机制自动识别驱动类,无需显式调用。// 执行多个 SQL...

2025-05-10 13:17:41 702

原创 git将本地项目上传到gitee远程空仓库里

14. git branch --set-upstream-to=origin/master master --建立追踪,即将本地仓库master分支和远程仓库master分支关联起来。13. git pull origin master --前提是远程分支master已存在,需要手动在远程仓库创建master。11. git remote add origin git@gitee.com:xxxxx.git --添加远程仓库。15. git pull --从远程master分支再拉取一次。

2024-10-30 23:38:34 430

原创 vuex状态管理

login.vue,此事例存储的是token。

2024-09-26 21:55:28 317

原创 vue路由

meta属性可以定义判断路由的key和value,例如:v-show="$route.meta.show"安装路由(vue2):cnpm install --save vue-router@3。一般放在router文件夹中:router/index.vue。components文件夹放置全局公共组件。pages或views文件夹下放置路由组件。在main.js进行注册。

2024-09-26 21:46:13 337

原创 Vue高阶知识-防抖与节流

单位时间内,频繁触发事件,只执行一次,使用场景:鼠标移动mouseover、页面尺寸缩放resize、滚动条滚动scroll等等。创建一个debounce(防抖动)函数,该函数会从上一次被调用后,延迟wait毫秒后调用func方法。单位时间内,频繁触发事件,只执行最后一次,使用场景:搜索框输入,手机号、邮箱验证输入检测。库_.debounce(func,[ wait=0],[options=])库_.throttle(func,[wait=0],[options=])触发时如果前一个任务存在,取消触发。

2024-09-04 00:00:51 329

原创 Vue基础知识

例如应用在输入框上,就是value属性和input事件的合写,在下拉框上就是value属性和change事件的合写。在每次响应式属性发生变化时触发一个方法,和methods同级,方法名必须和需要监听的属性名称或对象一致,参数为(newValue,oldValue)key和v-for一起使用,确保元素的唯一性,从而重用和重新排序现有的元素,不推荐用index,可以使用后端返回的唯一id。vue是异步更新DOM的,不是实时的,因为如果执行每一行都要更新一次,影响性能,可以通过nextTick来实现。

2024-09-02 23:22:14 1276

转载 Java并发之AQS详解

提供了一套可用于实现锁同步机制的框架,不夸张地说,AQS是JUC同步框架的基石。AQS通过一个FIFO队列维护线程同步状态,实现类只需要继承该类,并重写指定方法即可实现一套线程同步机制。AQS根据资源互斥级别提供了独占和共享两种资源访问模式;同时其定义Condition结构提供了wait/signal等待唤醒机制。在JUC中,诸如ReentrantLock等都基于AQS实现。

2023-05-18 16:02:43 307

转载 Spring 事务——事务的传播机制

Spring事务传播

2023-04-21 13:27:19 259

原创 用SecureCRTPortable工具连接linux(centos)虚拟机时断时连

百度搜了好多贴,始终不好使,终于用此法搞定!!!第一步:修改sshd_config(可能不生效)vi/etc/ssh/sshd_configClientAliveInterval 参数去掉注释,将0改为60(此参数指定了服务器端向客户端请求消息 的时间间隔, 默认是0, 不发送,60表示每分钟发送一次, 然后客户端响应, 这样就保持长连接了)第二步:修改ssh_configvi /etc/ssh/ssh_configServerAliveInterval ,值为60(如果没有..

2020-08-27 14:43:43 498 1

原创 linux环境下配置Tomcat、Nginx开机启动

1、输入命令:vi /etc/rc.d/rc.local2、在文件末尾添加如下脚本:export JAVA_HOME=jdk_location/tomcat_location/bin/startup.shsleep 20/tomcat1_location/bin/startup.sh/nginx_location/sbin/nginx -c /nginx_location/...

2019-09-25 10:53:41 260

转载 npm 安装报错 rollbackFailedOptional verb npm-session 解决办法

转自:https://blog.csdn.net/qq_31945977/article/details/81537917简单分析root@ROYALHUANG-MB2:~/DevOps/elasticsearch/elasticsearch-head-master# npm install -g grunt-clinpm ERR! code ETIMEDOUTnpm ERR...

2019-08-05 15:54:38 9277

转载 javax validation--参数基础校验

Bean Validation 1.1当前实现是hibernatevalidator 5,且spring4才支持。接下来我们从以下几个方法讲解Bean Validation 1.1,当然不一定是新特性:集成Bean Validation 1.1到SpringMVC 分组验证、分组顺序及级联验证 消息中使用EL表达式 方法参数/返回值验证 自定义验证规则 类级别验证器 ...

2019-07-07 08:01:05 4549

转载 MyBatis Generator 生成器把其他数据库的同名表生成下来的问题

MyBatis Generator : Table Configuration scheme.table matched more than one table在使用生成器生成代码的时候遇到了这个错误,现象就是某个类中出来了数据库表里面没有的字段,非常奇怪.解决方法是在生成器的配置文件里的数据库连接地址中添加下列参数:nullCatalogMeansCurrent=true...

2019-07-04 07:07:52 1057 2

原创 IDEA导入已有Maven项目

为什么写这篇文章呢,原因很简单,为了做件事花了我足足2个多小时,才搞定,很是郁闷,因此记录下来,方便以后查阅。从git上面down下来了一个maven项目,src目录下面分为main和test,起初通过以下方式导入IDEA:1、创建新项目,点击Create New Project:2、选择空项目,点击NEXT:3、填写Project name及Project locatio...

2019-06-30 22:53:25 28443 1

转载 git如何管理多个ssh keys(github/gitlab)

一、生成 ssh keys1、任意目录下右击鼠标选择Git Bash Here或者win+r输入cmd回车打开终端;2、在该终端下输入命令:ssh-keygen -t rsa -C "youname@example.com"-f ~/.ssh/github_rsa:这时可以一路回车,不输入任何字符,将会在C:\Users\Administrator\.ssh下自动生成g...

2019-06-30 18:27:03 626

原创 Struts2上传

Struts2上传:1.前台用,其中enctype="multipart/form-data"表示用二进制传输数据。提交时可将该form表单的target指向一个隐藏的iframe中,这样就可以防止页面的整体刷新。2.配置struts.xml文件,可包括文件大小,文件类型,在服务器上的存储路径,action映射名称,如果用spring做注入,得将该action和真正的action做关联。

2013-01-24 17:23:36 193

原创 利用kindEditor上传

利用kindEditor上传:1、点击图片上传没有反应,发现该插件文件下引用的js文件不存在,添加该js文件;2、提示上传目录不存在,修改该插件目录下jsp文件下的upload_json.jsp中的上传路径,改路径为相对于项目根目录的文件路径:String savePath = request.getSession().getServletContext().getRealPath("

2013-01-24 17:20:06 346

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除