Kennem's Blog
  • 🏠主页
  • 🔍搜索
  • 📚文章
  • ⏱时间轴
  • 🔖标签
  • 🗂️分类
  • 🙋🏻‍♂️关于
主页 » 📚文章

💻技术

LeetCode周赛395(240428)

周赛20230428 第四题134. 找出唯一性数组的中位数 题目大意:给定一个整数数组nums,唯一性数组是一个按元素从小到大排序的数组,包含了nums的所有非空子数组中不同元素的个数。要求返回nums唯一性数组的中位数,即有序唯一性数组的中间元素。 ...

2024-04-30 · 1 分钟 · 403 字 · updated: 2024-04-30 · ShowGuan

Java Web开发(3)

Java Web开发(3) Maven Maven是一款管理和构建java项目的工具 依赖管理 统一的项目结构 项目构建 <maven.compiler.source>11</maven.compiler.source> <maven.compiler.target>11</maven.compiler.target> MVN坐标 Maven中的坐标是资源的唯一标识,通过该坐标可以唯一定位资源位置 使用坐标来定义项目或引入项目中所需要的依赖 Maven的坐标主要组成 ...

2024-04-27 · 8 分钟 · 3752 字 · updated: 2024-04-27 · ShowGuan

Java Web开发(4)

Java Web开发(4) 数据库 数据库:DataBase(DB) , 是存储和管理数据的仓库 DBMS, SQL MySql登录,首先在服务中启动mysql mysql -uroot -p"password" 或者 mysql -uroot -p 之后输入密码 ...

2024-04-27 · 19 分钟 · 9098 字 · updated: 2024-04-27 · ShowGuan

Java Web开发(1)

Java Web开发(1) 什么是Web? Web:全球广域网,也成为万维网(World Wide Web),能够通过浏览器访问的网站 CRM OA ERP 不谋全局者不足以谋一域 前后端分离开发 混合开发 ...

2024-04-22 · 13 分钟 · 6362 字 · updated: 2024-04-22 · ShowGuan

Java Web开发(2)

Java Web开发(2) Vue Vue是一套前端框架,免除原生的JavaScript中的DOM操作,简化书写。 基于MVVM(Model-View-View-Model)思想,实现数据的双向绑定,将编程的关注点放在数据上。 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Vue</title> <!-- 引入Vue.js库 --> <script src="../js/vue.js"></script> </head> <body> <div id="app"> <!-- 输入框,使用v-model指令实现双向数据绑定 --> <input type="text" v-model="message"> <!-- 使用插值表达式显示message变量的值 --> {{ message }} </div> </body> <script> // 创建一个Vue实例 new Vue({ // 将Vue实例挂载到id为"app"的元素上 el: "#app", // 定义数据对象 data: { message: "Hello Vue" // 初始值为"Hello Vue" } }) </script> </html> Vue常用指令 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Vue</title> <!-- 引入 Vue.js 文件 --> <script src="../js/vue.js"></script> </head> <body> <!-- Vue 实例挂载的根节点 --> <div id="app"> <table border="1" cellspacing="0" width="60%"> <tr> <th>编号</th> <th>姓名</th> <th>年龄</th> <th>性别</th> <th>成绩</th> <th>等级</th> </tr> <!-- 使用 v-for 循环渲染列表 --> <tr align="center" v-for="(user, index) in users"> <td>{{index + 1}}</td> <td>{{user.name}}</td> <td>{{user.age}}</td> <td> <!-- 使用 v-if 条件渲染 --> <span v-if="user.gender == 1">男</span> <span v-if="user.gender == 2">女</span> </td> <td>{{user.score}}</td> <td> <!-- 使用 v-if、v-else-if、v-else 实现多条件渲染 --> <span v-if="user.score >= 60 && user.score < 85">优秀</span> <span v-else-if="user.score >= 85">及格</span> <span style="color:red" v-else>不及格</span> </td> </tr> </div> </body> <script> // 创建 Vue 实例 new Vue({ el: "#app", // 指定实例挂载的根节点 data: { // 用于存储数据的对象 users: [{ name: "Tom", age: 20, gender: 1, score: 30 }, { name: "Rose", age: 18, gender: 2, score: 99 }, { name: "Jerry", age: 16, gender: 1, score: 98 }, { name: "Kennem", age: 21, gender: 1, score: 100 }] }, }) </script> </html> Vue生命周期 new new Vue({ el: "#app", //接管区域 data: { }, methods: { }, mounted() { alert("挂载完成!"); }, }) Ajax Asynchronous JavaScript And XML, 异步的JavaScript和XML 作用: 数据交换:通过Ajax可以给服务器发送请求,并获取服务器响应的数据。 异步交互:可以在不重新加载整个页面的情况下,与服务器交换数据并更新部分网页的技术,如:搜索联想,用户名是否可用的校验等。 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>原生Ajax</title> </head> <body> <input type="button" value="获取数据" onclick="getData()"> <div id="div1"></div> </body> <script> function getData() { // 创建XMLHttpRequest对象 var xmlHttpRequest = new XMLHttpRequest(); // 发送异步请求 xmlHttpRequest.open('GET', 'https://xxx/json_demo.json'); xmlHttpRequest.send(); // 发送请求 // 获取服务响应数据 xmlHttpRequest.onreadystatechange = function () { if (xmlHttpRequest.readyState == 4 && xmlHttpRequest.status == 200) { document.getElementById('div1').innerHTML = xmlHttpRequest.responseText; } } } </script> </html> Axios Axios对原生的Ajax进行了封装,简化书写,快速开发。 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Ajax-Axios-案例</title> <!-- 引入axios库 --> <script src="js/axios-0.18.0.js"></script> <!-- 引入Vue.js --> <script src="js/vue.js"></script> </head> <body> <div id="app"> <!-- 数据展示表格 --> <table border="1" cellspacing="0" width="60%"> <!-- 表头 --> <tr> <th>编号</th> <th>姓名</th> <th>图像</th> <th>性别</th> <th>职位</th> <th>入职日期</th> <th>最后操作时间</th> </tr> <!-- 数据行,使用Vue.js的v-for指令循环渲染 --> <tr align="center" v-for="(emp,index) in emps"> <td>{{index + 1}}</td> <!-- 显示编号 --> <td>{{emp.name}}</td> <!-- 显示姓名 --> <td> <img :src="emp.image" width="70px" height="50px"> <!-- 显示图像 --> </td> <td> <span v-if="emp.gender == 1">男</span> <!-- 根据性别显示男或女 --> <span v-if="emp.gender == 2">女</span> </td> <td>{{emp.job}}</td> <!-- 显示职位 --> <td>{{emp.entrydate}}</td> <!-- 显示入职日期 --> <td>{{emp.updatetime}}</td> <!-- 显示最后操作时间 --> </tr> </table> </div> </body> <script> new Vue({ el: "#app", data: { emps: [] // 存储员工数据的数组 }, mounted () { // 在Vue实例mounted生命周期钩子中发送异步请求加载数据 axios.get("http://yapi.smart-xwork.cn/mock/169327/emp/list").then(result => { // 异步请求成功后将数据赋值给emps数组 this.emps = result.data.data; }) } }); </script> </html> 接口管理平台 Yapi apifox ...

2024-04-22 · 8 分钟 · 3959 字 · updated: 2024-04-22 · ShowGuan

Java20天速成——进阶课程(5)

Java20天速成——进阶课程(5) 网络编程 可以让设备中的程序与网络上其他设备中的程序进行数据交互(实现网络通信) 基本的通信架构 基本的通信架构有2中形式:CS架构(Client客户端/Server服务端)、BS架构(Browser浏览器/Server服务器) 无论是CS架构,还是BS架构的软件都必须要依赖网络编程 ...

2024-04-21 · 17 分钟 · 8167 字 · updated: 2022-01-08 · ShowGuan

LeetCode周赛240421

力扣周赛394(20240421) 第三题100290. 使矩阵满足条件的最少操作次数 题目大意:给定一个大小为 m x n 的二维矩形 grid,每次操作可以将任意格子的值修改为任意非负整数。完成所有操作后,需要确保每个格子 grid[i][j] 的值满足以下条件:如果下面相邻格子存在的话,它们的值相等;如果右边相邻格子存在的话,它们的值不相等。返回需要的最少操作次数。 记忆化 实现思路:首先,统计每一列中各个数字的出现次数。然后,使用动态规划的方法,定义函数dfs(i, pre),表示处理到第i列时,前一列的值为pre时的最大操作次数。在dfs中,对于当前列的每个数字,考虑是否修改当前列的值,然后递归处理下一列。利用缓存来避免重复计算。最后返回总的操作次数。 class Solution: # 如果你想不出来,1、你不知道这个知识点 2、 你知道这个知识点但是方向错了 def minimumOperations(self, g: List[List[int]]) -> int: n, m = len(g), len(g[0]) cnt = [[0]*10 for _ in range(m)] for row in g: for k, v in enumerate(row): cnt[k][v]+=1 @cache def dfs(i, pre): if i<0: return 0 res = 0 for v in range(10): if v!=pre: res = max(res, dfs(i-1, v) + cnt[i][v]) return res return m*n - dfs(m-1, -1) 递推 实现思路:首先,对每一列进行遍历,并统计每列中每个数字的出现次数。然后,通过动态规划的方法,使用两个变量f0和f1分别表示当前列处理时,前一列最大能保留的个数和次大能够保留的个数。接着,通过遍历每列中的每个数字,计算当前列的最大操作次数,并更新f0和f1。最后返回总的操作次数。 class Solution: def minimumOperations(self, grid: List[List[int]]) -> int: n, m = len(grid), len(grid[0]) f0, f1, pre = 0, 0, -1 for col in zip(*grid): mx, mx2, x = f0, f1, -1 for v, c in Counter(col).items(): res = (f0 if v!=pre else f1) + c if res > mx: mx, mx2, x = res, mx, v elif res > mx2: mx2 = res f0, f1, pre = mx, mx2, x return m*n - f0 第四题100276. 最短路径中的边 题目大意:给定一个包含n个节点的无向带权图,节点编号从0到n-1,总共有m条边。对于节点0为出发点,节点n-1为结束点的所有最短路,需要返回一个长度为m的布尔数组,如果edges[i]至少在其中一条最短路上,则answer[i]为true,否则为false。 ...

2024-04-21 · 2 分钟 · 989 字 · updated: 2024-04-21 · ShowGuan

Java20天速成——进阶课程(4)

Java20天速成——进阶课程(4) 特殊文件 properties, xml 为什么要用这些特殊文件? 存储多个用户的:用户名, 密码, 家乡, 性别 日志技术 把程序运行的信息,记录到文件中,方便程序员定位bug, 并了解程序的执行情况等。 ...

2024-04-20 · 20 分钟 · 9840 字 · updated: 2024-09-11 · ShowGuan

Java20天速成——进阶课程(3)

Java20天速成——进阶课程(3) 文件操作 File对象 常用方法 public static void main(String[] args) { // 创建File对象,表示文件test.txt的绝对路径 File f1 = new File("D:/JAVA/JavaSeProMax/file-io-app/src/com/showguan/FileDemo/test.txt"); // 创建File对象,表示文件夹JavaSeProMax的绝对路径 File f2 = new File("D:/JAVA"); // 创建File对象,表示不存在的文件路径t.txt File f3 = new File("D:/JAVA/t.txt"); // 输出文件f1的长度(字节数) System.out.println(f1.length()); // 输出文件夹f2的长度,由于f2表示文件夹,而不是文件,因此返回值没有意义 System.out.println(f2.length()); // 输出文件f3的长度,由于文件路径不存在,因此返回0 System.out.println(f3.length()); // 检查文件f3是否存在,返回false,因为文件路径不存在 System.out.println(f3.exists()); // 创建File对象,表示相对路径下的文件test.txt // 相对路径默认从当前工程的根目录开始寻找,因此文件路径不存在 File f4 = new File("file-io-app\\src\\com\\showguan\\FileDemo\\test.txt"); // 检查文件f4是否存在,返回false,因为文件路径不存在 System.out.println(f4.exists()); // 输出文件f4的长度,由于文件路径不存在,因此返回0 System.out.println(f4.length()); } public static void main(String[] args) { // 创建File对象,表示相对路径下的文件test.txt File f1 = new File("file-io-app\\src\\com\\showguan\\FileDemo\\test.txt"); // 创建File对象,表示文件夹file-io-app的路径 File f2 = new File("file-io-app"); // 检查文件f1是否存在,返回true,因为文件路径存在 System.out.println(f1.exists()); // 检查f1是否表示一个文件,返回true System.out.println(f1.isFile()); // 检查f1是否表示一个文件夹,返回false System.out.println(f1.isDirectory()); // 检查f2是否表示一个文件夹,返回true System.out.println(f2.isDirectory()); // 获取文件f1的名称,输出test.txt System.out.println(f1.getName()); // 获取文件f1的长度(字节数) System.out.println(f1.length()); // 获取文件f1最后修改时间 long time = f1.lastModified(); // 格式化最后修改时间并输出 SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); System.out.println(sdf.format(time)); // 获取文件f1的路径(创建时使用的路径),输出相对路径file-io-app\src\com\showguan\FileDemo\test.txt System.out.println(f1.getPath()); // 获取文件f1的绝对路径,输出完整的绝对路径 System.out.println(f1.getAbsolutePath()); } 创建文件、目录 import java.io.File; import java.io.IOException; public static void main(String[] args) throws IOException { // 创建File对象,表示新文件test2.txt的路径 File f1 = new File("file-io-app\\src\\com\\showguan\\FileDemo\\test2.txt"); // 创建新文件test2.txt,如果文件不存在则创建并返回true,否则返回false System.out.println(f1.createNewFile()); // 创建File对象,表示新文件夹aaa的路径 File f2 = new File("file-io-app\\src\\com\\showguan\\FileDemo\\aaa"); // 创建新文件夹aaa,如果文件夹不存在则创建并返回true,否则返回false System.out.println(f2.mkdir()); // 创建File对象,表示新文件夹路径a\b\c File f3 = new File("file-io-app\\src\\com\\showguan\\FileDemo\\a\\b\\c"); // 创建新文件夹路径a\b\c,如果路径中的文件夹不存在则递归创建,创建成功返回true,否则返回false System.out.println(f3.mkdirs()); // 删除文件test2.txt,删除成功返回true,否则返回false System.out.println(f1.delete()); // 删除文件夹a,由于文件夹非空,因此删除失败返回false File f4 = new File("file-io-app\\src\\com\\showguan\\FileDemo\\a"); System.out.println(f4.delete()); } public static void main(String[] args) { // 遍历方法,只能遍历一级文件 File f1 = new File("D:\\JAVA"); // 获取D:\JAVA目录下的所有一级文件名 String[] names = f1.list(); // 遍历打印所有一级文件名 for (String name : names) { System.out.println(name); } // 获取D:\JAVA目录下的所有一级文件对象 File f2 = new File("D:\\JAVA"); // 获取D:\JAVA目录下的所有一级文件对象 File[] files = f2.listFiles(); // 遍历打印所有一级文件对象的绝对路径 for (File file : files) { System.out.println(file.getAbsoluteFile()); } // 尝试获取不存在的目录的一级文件对象,返回null File f3 = new File("D:\\JAVA1"); System.out.println(f3.listFiles()); // null // 尝试获取非文件夹的一级文件对象,返回null File f4 = new File("D:\\JAVA\\test1"); // 因为f4代表的路径不是文件夹,因此listFiles()返回null File[] files4 = f4.listFiles(); System.out.println(Arrays.toString(files4)); // null } 递归查找 public static void main(String[] args) throws IOException { searchFile(new File("D:\\文档"), "23暑期青训营笔记"); // 调用搜索文件的方法 } /** * 递归搜索指定目录下的文件,并打印找到的文件的绝对路径,并使用系统默认程序打开该文件。 * @param dir 要搜索的目录 * @param fileName 要搜索的文件名 * @throws IOException 如果发生I/O错误 */ public static void searchFile(File dir, String fileName) throws IOException { // 如果目录为空、不存在或者是文件,则直接返回 if(dir==null || !dir.exists() || dir.isFile()){ return ; } // 获取目录下的所有文件和子目录 File[] files = dir.listFiles(); // 如果目录下存在文件 if(files!=null && files.length>0){ // 遍历目录下的所有文件和子目录 for (File file : files) { // 如果是文件 if(file.isFile()){ // 判断文件名是否包含指定的文件名 if(file.getName().contains(fileName)){ System.out.println("找到了!" + file.getAbsoluteFile()); // 打印找到的文件的绝对路径 Runtime runtime = Runtime.getRuntime(); runtime.exec(file.getAbsolutePath()); // 使用系统默认程序打开该文件 return; // 找到文件后直接返回 } }else{ // 如果是目录,则递归调用搜索文件的方法 searchFile(file, fileName); } } } } 递归删除 public static void main(String[] args) throws IOException { File file = new File("D:\\JAVA\\test1\\test"); // 要删除的目录的路径 deleteDir(file); // 调用删除目录的方法 } /** * 递归删除目录及其所有子目录和文件。 * @param dir 要删除的目录 */ public static void deleteDir(File dir){ // 如果目录为空或者不存在,则直接返回 if(dir==null || !dir.exists()){ return ; } // 如果是文件,则直接删除并返回 if(dir.isFile()){ dir.delete(); return; } // 获取目录下的所有文件和子目录 File[] files = dir.listFiles(); // 如果目录为空,则直接返回 if(files==null){ return; } // 遍历目录下的所有文件和子目录 for (File file : files) { if(file.isFile()){ // 如果是文件,则直接删除 file.delete(); } deleteDir(file); // 递归删除子目录 } dir.delete(); // 删除当前目录 } 字符集 UTF-32 ...

2024-04-19 · 17 分钟 · 8234 字 · updated: 2024-04-19 · ShowGuan

LeetCode笔记

LeetCode笔记 目标:2500分 HOT100 301. 删除无效的括号 题目大意: 给你一个由若干括号和字母组成的字符串 s ,删除最小数量的无效括号,使得输入的字符串有效。 返回所有可能的结果。答案可以按 任意顺序 返回。 ...

2024-04-17 · 26 分钟 · 12788 字 · updated: 2024-10-06 · ShowGuan

Linux

Linux 快捷键: ctrl + l 清空屏幕 Linux文件系统 FHS3.0(File system Hierarchy Standard) / etc 配置文件 bin 必要命令 usr 二级目录 home 家目录 var 动态数据 VFS虚拟文件系统 内核层抽象出通用的文件系统接口 支持文件、网络、特殊文件系统 ...

2024-04-17 · 17 分钟 · 8497 字 · updated: 2024-04-17 · ShowGuan

LeetCode每日一题(202404)

每日一题(202404) 2009. 使数组连续的最少操作数 题意:给定一个可能有重复元素的数组,可以修改数组中值为任意其他值,问使数组连续的最小操作数。 思路:由于只能改动元素,所以最后的元素个数不变,去重后,枚举每个值作为左端点,则右端点为nums[i]+n-1, 用双指针计算在区间内的元素个数即为可以保留的数字,其他数字修改元素值填满空隙即可。 ...

2024-04-17 · 12 分钟 · 5983 字 · updated: 2024-04-22 · ShowGuan

LeetCode每日一题(202404)

每日一题(202404) 2009. 使数组连续的最少操作数 题意:给定一个可能有重复元素的数组,可以修改数组中值为任意其他值,问使数组连续的最小操作数。 思路:由于只能改动元素,所以最后的元素个数不变,去重后,枚举每个值作为左端点,则右端点为nums[i]+n-1, 用双指针计算在区间内的元素个数即为可以保留的数字,其他数字修改元素值填满空隙即可。 ...

2024-04-17 · 11 分钟 · 5131 字 · updated: 2024-04-22 · ShowGuan

剑指Offer

剑指Offer 数据流中的中位数 用两个堆模拟, 左边大顶堆,右边小顶堆,则两个堆顶是最中间的数字。 添加数字时: 如果输入的是第奇数个(比如第一个,则N初始化为0,插入后N为1,代表一共有一个数字),则先插入大顶堆,然后把堆顶插入小顶堆。保证小顶堆的任意一个值都比大顶堆大。 同样,如果输入的是第偶数个(第二个),则先插入小顶堆,然后将小顶堆最小值插入大顶堆。同样是保证小顶堆的任意一个值都比大顶堆大。 至于先插入哪一个堆是没有关系的,只要保证交替插入不同的堆即可,并且要确保边界问题(比如在奇数个元素的的中位数, 只有一个数据时应返回先插入的堆顶值, 否则堆为空会报错)。 ...

2024-04-17 · 3 分钟 · 1359 字 · updated: 2024-04-22 · ShowGuan

LeetCode Hot 100 精练🥸(1)

LeetCode Hot 100 精练🥸(1) 记忆中的东西一定会消退,真正留下的才是学到的,一定要及时回顾。 题目表 (序号) 标题 (1) 160. 相交链表 (2) 236. 二叉树的最近公共祖先 (3) 234. 回文链表 (4) 739. 每日温度 (5) 226. 翻转二叉树 (6) 221. 最大正方形 (7) 215. 数组中的第K个最大元素 (8) 208. 实现 Trie (前缀树) (9) 207. 课程表 (10) 206. 反转链表 (11) 200. 岛屿数量 (12) 198. 打家劫舍 (13) 169. 多数元素 (14) 238. 除自身以外数组的乘积 (15) 155. 最小栈 (16) 152. 乘积最大子数组 (17) 148. 排序链表 (18) 146. LRU 缓存 (19) 142. 环形链表 II (20) 141. 环形链表 (21) 139. 单词拆分 (22) 136. 只出现一次的数字 (23) 647. 回文子串 (24) 128. 最长连续序列 (25) 124. 二叉树中的最大路径和 (26) 322. 零钱兑换 (27) 494. 目标和 (28) 461. 汉明距离 (29) 448. 找到所有数组中消失的数字 (30) 438. 找到字符串中所有字母异位词 (31) 437. 路径总和 III (32) 416. 分割等和子集 (33) 406. 根据身高重建队列 (34) 399. 除法求值 (35) 394. 字符串解码 (36) 347. 前 K 个高频元素 (37) 338. 比特位计数 (38) 337. 打家劫舍 III (39) 121. 买卖股票的最佳时机 (40) 312. 戳气球 (41) 309. 买卖股票的最佳时机含冷冻期 (42) 301. 删除无效的括号 (43) 300. 最长递增子序列 (44) 297. 二叉树的序列化与反序列化 (45) 287. 寻找重复数 (46) 283. 移动零 (47) 279. 完全平方数 (48) 253. 会议室 II (49) 240. 搜索二维矩阵 II (50) 239. 滑动窗口最大值 (51) 22. 括号生成 (52) 49. 字母异位词分组 (53) 48. 旋转图像 (54) 46. 全排列 (55) 42. 接雨水 (56) 39. 组合总和 (57) 543. 二叉树的直径 (58) 34. 在排序数组中查找元素的第一个和最后一个位置 (59) 33. 搜索旋转排序数组 (60) 32. 最长有效括号 (61) 31. 下一个排列 (62) 538. 把二叉搜索树转换为累加树 (63) 23. 合并 K 个升序链表 (64) 560. 和为 K 的子数组 (65) 21. 合并两个有序链表 (66) 20. 有效的括号 (67) 19. 删除链表的倒数第 N 个结点 (68) 17. 电话号码的字母组合 (69) 15. 三数之和 (70) 11. 盛最多水的容器 (71) 10. 正则表达式匹配 (72) 5. 最长回文子串 (73) 4. 寻找两个正序数组的中位数 (74) 3. 无重复字符的最长子串 (75) 2. 两数相加 (76) 79. 单词搜索 (77) 114. 二叉树展开为链表 (78) 621. 任务调度器 (79) 617. 合并二叉树 (80) 105. 从前序与中序遍历序列构造二叉树 (81) 104. 二叉树的最大深度 (82) 102. 二叉树的层序遍历 (83) 101. 对称二叉树 (84) 98. 验证二叉搜索树 (85) 96. 不同的二叉搜索树 (86) 94. 二叉树的中序遍历 (87) 85. 最大矩形 (88) 84. 柱状图中最大的矩形 (89) 1. 两数之和 (90) 78. 子集 (91) 76. 最小覆盖子串 (92) 75. 颜色分类 (93) 72. 编辑距离 (94) 70. 爬楼梯 (95) 581. 最短无序连续子数组 (96) 64. 最小路径和 (97) 62. 不同路径 (98) 56. 合并区间 (99) 55. 跳跃游戏 (100) 53. 最大子数组和 (1)160. 相交链表 题目大意: ...

2024-04-17 · 18 分钟 · 8652 字 · updated: 2025-12-20 · ShowGuan
« 上一页  下一页  »
© 2026 Kennem's Blog · Powered by Hugo & PaperMod
👤 Visitors: 👀 Views: