剑指offer-70、把数字翻译成为字符串
题⽬描述
有⼀种将字⺟编码成数字的⽅式:'a'->1, 'b->2', ... , 'z->26'。
现在给⼀串数字,返回有多少种可能的译码结果
示例1
输⼊:"12"
返回值:2
说明:2种可能的译码结果(”ab” 或”l”)
示例2
输⼊:"31717126241541717"
返回值:192
说明:192种可能的译码结果
仔细观察,就会发现上⾯的编码从 1 到 26,也就是 ...
Mac电脑上传ZIP图片压缩包时垃圾文件清理问题解决
问题解决记录:Mac系统上传目录时的垃圾文件清理
问题背景
在上传图片系统中,当用户使用苹果本(Mac)压缩并上传目录时,系统出现异常。经过排查发现,Mac 系统在压缩时会自动生成大量隐藏文件和元数据目录,这些"垃圾文件"在解压后会干扰系统的正常业务逻辑。
Mac 系统自动生成的垃圾文件包括:
.DS_Store - 存储文件夹 ...
剑指offer-69、数字序列中某⼀位的数字
题⽬描述
数字以 0123456789101112131415... 的格式作为⼀个字符序列,在这个序列中第 2 位(从下标 0 开始计算)是 2 ,第 10 位是 1 ,第 13 位是 1 ,以此类题,请你输出第 n 位对应的数字。
示例1
输⼊:0
返回值:0
示例2
输⼊:2
返回值:2
示例3
输⼊:13
返回值:1
思路及解答
暴力法
通过逐步构造数字序列来找到第 ...
剑指offer-68、调整数组顺序使奇数位于偶数前⾯(⼆)
题⽬描述
输⼊⼀个⻓度为 n 整数数组,数组⾥⾯可能含有相同的元素,实现⼀个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前⾯部分,所有的偶数位于数组的后⾯部分,对奇数和奇数,偶数和偶数之间的相对位置不做要求,但是时间复杂度和空间复杂度必须如下要求。
数据范围:0 ≤ n ≤ 50000,数组中每个数的值 0 ...
wso2~通过三方IDP的token置换wso2的token
参数:https://datatracker.ietf.org/doc/html/rfc7523
oauth2.0中的三方另类授权
了解OAuth 2.0中特定的授权类型(Grant Type)对于构建安全的认证流程至关重要。下面为你详细介绍这三种基于URN声明的扩展授权类型。
🔐 设备代码授权 (urn:ietf:paramsauth:grant-type:device_code)
这种授权模式专为输入能力受限或没有浏 ...
CopyOnWriteArrayList:写时复制机制与高效并发访问
前言
Vector无论是add方法还是get方法都加上了synchronized修饰,当多线程读写List必须排队执行,很显然这样效率比较是低下的,CopyOnWriteArrayList是读写分离的,好处是提高线程访问效率。
CopyOnWrite容器即写时复制的容器。通俗的理解是当往一个容器添加元素的时候,不直接往当前容器添加,而是先将当前容器里的值Copy ...
JAVA自学之路1.1:JAVA入门纠错
1.1、JAVA入门纠错
在JAVA入门这篇文章里有些问题和错误需要纠正,懒得再改那篇文章了,直接写在这好了。
package test.test1;
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World");
}
}
在之前的文章里,我将HelloWorld.java文件放在了E盘根目录下 ...
java研发工程师必知必会
java作为一种跨平台、面向对象的编程语言,广泛应用于企业级Web开发和移动应用开发。其核心特性包括可移植性(一次编写,到处运行)、安全性、分布式支持以及泛型编程能力。又因其简单易学深受广大程序员所喜爱。自1995年推出以来,语言也经历了多次的迭代更新,而对于一些较早接触该语言的老程序员来说,对一些新特征甚至 ...
Spring AI学习:工具调用实践(基于和风天气api)
工具调用总体实现:
设计工具类:
@Component
public class WeatherInquiryTools {
@Autowired
private WeatherService weatherService;
@Tool(description = "根据城市名称查询城市LocationID")
public String getLocationId(@ToolParam(description = "城市名称") String cityName){
return w ...
Queue & Stack:实现机制与使用场景深度分析
为什么不推荐使用Stack
Java已不推荐使用Stack,而是推荐使用更高效的ArrayDeque
为什么不推荐使用
性能低:是因为 Stack 继承自 Vector, 而 Vector 在每个方法中都加了锁。由于需要兼容老的项目,很难在原有的基础上进行优化,因此 Vector 就被淘汰掉了,使用 ArrayList 和 CopyOnWriteArrayList 来代替,如果在非线程 ...
Spring AI学习:配置redis向量数据库&RAG实践
配置redis向量数据库:
配置依赖:
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-starter-vector-store-redis</artifactId>
</dependency>
配置redis数据库属性:
RAG实践:
使用spring ai提供的环绕增强(advisor)功能实现RAG。
配置依赖:
<depen ...
一个月搞定100+表迁移:我的“偷师”Navicat实战复盘
个人声明:本文所有代码示例均已脱敏处理,仅保留核心技术逻辑,不涉及任何敏感业务信息。
前情提要:一个堪称"社死"的工期
还记得那天,老板把我叫到办公室,递过来一份需求文档:"下个月要把项目迁移到新平台,数据这块你来搞定。"
我打开文档,扫了一眼,差点当场石化:
需求清单:
100+张数据表要迁移(还要支持后 ...
剑指offer-67、剪绳⼦
题目描述
给你⼀根⻓度为n 的绳⼦,请把绳⼦剪成整数⻓的m 段( m 、n 都是整数, n>1 并 且m>1 , m<=n ),每段绳⼦的⻓度记为k[1],...,k[m]。请问k[1]x...xk[m] 可能的最⼤乘积是多少?例如,当绳⼦的⻓度是8 时,我们把它剪成⻓度分别为2 、3 、3 的三段,此时得到的最⼤乘积是18`。
输⼊描述:输⼊⼀个数n,意义⻅题⾯ ...
10408_基于SSM的野营用品租赁管理系统
1、项目包含
项目源码、项目文档、数据库脚本、软件工具等资料;
带你从零开始部署运行本套系统。
2、项目介绍
随着互联网技术的发展与普及,传统的经营方式受到很大影响。野营用品租赁系统是以互联网为基础的线上租赁方式。传统野营用品店的纸质化服务流程繁琐,浪费人力物力。线上租赁可以实现网页挑选野营用品并完成一系 ...
Arthas使用
1. Arthas 介绍
Arthas 是阿里巴巴开源的 Java 诊断工具,用于:
实时监控线上应用(无需重启)
快速定位 CPU、内存、线程问题
分析方法执行耗时、参数、返回值
支持 JDK 6+(包括 JDK 21)
✅ 核心优势:通过 JVM Attach 机制动态注入 Agent,不修改代码、不重启应用。
2. Arthas 的使用(下载安装 + 启动 ...
Java自学之路1:Hello World
1、JAVA入门
本文将通过演示一个简单的hello world代码来简单讲解java代码的执行过程,不会涉及太多底层原理。
1、编写源代码
代码如下:
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World");
}
}
上面的代码称为源代码,是由程序员编写的人类能看懂 ...
剑指offer-66、机器⼈的运动范围
题目描述
地上有⼀个 m ⾏和 n 列的⽅格。⼀个机器⼈从坐标(0,0) 的格⼦开始移动,每⼀次只能向左,右,上,下四个⽅向移动⼀格,但是不能进⼊⾏坐标和列坐标的数位之和⼤于 k 的格⼦。 例如,当k 为 18 时,机器⼈能够进⼊⽅格(35,37) ,因为 3+5+3+7 = 18 。但是,它不能进⼊⽅格(35,38) ,因为 3+5+3+8 = 19 。请 ...
Spring AI学习:Advisor&Tool
一句话总结:
Advisor = AI的"高级秘书" :先帮你查资料、整理思路,再让AI回答,并把ai的回答整理/处理好展现给你。
Tool = AI的"专属工具箱" :AI可以直接使用里面的工具完成任务。
Advisor:
Advisor会在提示词(prompt)发送给大模型前拦截它(提示词),并对提示词进行加工或其他处理;也会在大模型的回答展示在你眼中前 ...
剑指offer-65、矩阵中的路径
题目描述
请设计⼀个函数,⽤来判断在⼀个矩阵中是否存在⼀条包含某字符串所有字符的路径。路径可以从矩阵中的任意⼀个格⼦开始,每⼀步可以在矩阵中向左,向右,向上,向下移动⼀个格⼦。如果⼀条路径经过了矩阵中的某⼀个格⼦,则该路径不能再进⼊该格⼦。 例如矩阵:
中包含⼀条字符串 " bcced " 的路径,但是矩阵中不 ...
Spring AI学习:基本配置&聊天客户端
创建spring boot项目并选择ai功能:
spring boot版本不能过高,4.x.x暂时不支持ai
非本地部署可以使用openai,本地部署可以使用ollama。对应的,在创建项目初(上一步)选择的ai功能需与客户端一致。
配置基本如下:
创建一个文本交流客户端,交由spring boot管理:
defaultSystem可以告诉大模型它在 ...