【4】阿里面试题整理

server/2025/2/6 2:34:18/

[1]. 介绍一下数据库死锁

数据库死锁是指两个或多个事务,由于互相请求对方持有的资源而造成的互相等待的状态,导致它们都无法继续执行。

死锁会导致事务阻塞,系统性能下降甚至应用崩溃。

比如:事务T1持有资源R1并等待R2,事务T2持有R2并等待R1,这就形成了一个循环等待,导致死锁。

[2]. 手撕:快排

java">public class QuickSort {public static void quickSort(int[] arr, int low, int high) {if (low < high) {int pivotIndex = partition(arr, low, high);quickSort(arr, low, pivotIndex - 1);quickSort(arr, pivotIndex + 1, high);}}// 分区函数,以最左边的元素为基准元素private static int partition(int[] arr, int low, int high) {int pivot = arr[low];  // 选择最左边的元素作为基准int i = low;    // i 指向小于基准的区域的末尾,初始指向最左边for (int j = low + 1; j <= high; j++) { // j从low+1 开始遍历if (arr[j] < pivot) {i++;swap(arr, i, j); // 将小于基准的元素交换到左侧}}swap(arr, low, i); // 将基准元素交换到正确的位置return i;           // 返回基准元素的索引}// 交换数组中两个元素private static void swap(int[] arr, int i, int j) {int temp = arr[i];arr[i] = arr[j];arr[j] = temp;}}

[3]. 手撕:二叉树的中序遍历

java">public class InorderTraversal {// 定义二叉树节点static class TreeNode {int val;TreeNode left;TreeNode right;TreeNode(int val) {this.val = val;this.left = null;this.right = null;}}// 中序遍历public static void inorderTraversal(TreeNode root) {if (root != null) {inorderTraversal(root.left);   // 遍历左子树System.out.print(root.val + " ");  // 访问根节点inorderTraversal(root.right);  // 遍历右子树}}
}

[4]. 手撕:最大子数组和

java">public class MaxSubarraySum {public static int maxSubArray(int[] nums) {// 判断输入数组是否为空或长度为0if (nums == null || nums.length == 0) {return 0; // 空数组或 null 返回0}// 记录全局最大子数组和int maxGlobalSum = nums[0];// 记录以当前元素结尾的最大子数组和int maxCurrentSum = nums[0];// 遍历数组,从第二个元素开始for (int i = 1; i < nums.length; i++) {// 更新以当前元素结尾的最大子数组和// 取当前元素值与当前元素加上以前一个元素结尾的最大子数组和中的较大值maxCurrentSum = Math.max(nums[i], maxCurrentSum + nums[i]);// 更新全局最大子数组和// 取全局最大子数组和与以当前元素结尾的最大子数组和中的较大值maxGlobalSum = Math.max(maxGlobalSum, maxCurrentSum);}// 返回全局最大子数组和return maxGlobalSum;}}

http://www.ppmy.cn/server/165303.html

相关文章

工业相机如何获得更好的图像色彩

如何获得更好的图像色彩 大部分的工业自动化检测中对物体的色彩信息并不敏感&#xff0c;因此会使用黑白的相机&#xff0c;但是在显微镜成像、颜色分类识别等领域&#xff0c;相机的色彩还原就显得格外重要&#xff0c;在调节相机色彩方面的参数时&#xff0c;有以下几个方面需…

Java Stream实战_函数式编程的新方式

1. 引言 1.1 Java Stream简介 Stream是什么:Stream是Java 8引入的一个接口,用于处理集合数据。与传统集合的区别:Stream不存储数据,而是通过管道操作(如过滤、映射)来处理数据。主要特点:惰性求值、链式调用、函数式编程风格。1.2 函数式编程基础 什么是函数式编程:一…

从零开始实现一个双向循环链表:C语言实战

文章目录 1链表的再次介绍2为什么选择双向循环链表&#xff1f;3代码实现&#xff1a;从初始化到销毁1. 定义链表节点2. 初始化链表3. 插入和删除节点4. 链表的其他操作5. 打印链表和判断链表是否为空6. 销毁链表 4测试代码5链表种类介绍6链表与顺序表的区别7存储金字塔L0: 寄存…

Nginx的路径匹配规则 笔记250203

Nginx的路径匹配规则 Nginx 的路径匹配规则主要通过 location 指令实现&#xff0c;用于根据请求的 URI&#xff08;路径&#xff09;将请求路由到不同的处理逻辑。其匹配规则灵活且功能强大&#xff0c;但也需要谨慎配置以避免冲突。以下是 Nginx 路径匹配规则的详细解析&…

[权限提升] Windows 提权 维持 — 系统错误配置提权 - Trusted Service Paths 提权

关注这个专栏的其他相关笔记&#xff1a;[内网安全] 内网渗透 - 学习手册-CSDN博客 0x01&#xff1a;Trusted Service Paths 提权原理 Windows 的服务通常都是以 System 权限运行的&#xff0c;所以系统在解析服务的可执行文件路径中的空格的时候也会以 System 权限进行解析&a…

CSS关系选择器详解

CSS关系选择器详解 学习前提什么是关系选择器&#xff1f;后代选择器&#xff08;Descendant Combinator&#xff09;语法示例注意事项 子代选择器&#xff08;Child Combinator&#xff09;语法示例注意事项 邻接兄弟选择器&#xff08;Adjacent Sibling Combinator&#xff0…

吴恩达深度学习——卷积神经网络基础

本文来自https://www.bilibili.com/video/BV1FT4y1E74V&#xff0c;仅为本人学习所用。 文章目录 矩阵和张量边缘检测计算方式检测原理 Valid卷积和Same卷积卷积步长三维卷积单层卷积网络总结符号定义输入输出维度其他参数维度 举例 池化层示例输入层第一层卷积 - 池化第二层卷…

【Rust自学】19.1. 摆脱安全性限制的unsafe Rust

喜欢的话别忘了点赞、收藏加关注哦&#xff08;加关注即可阅读全文&#xff09;&#xff0c;对接下来的教程有兴趣的可以关注专栏。谢谢喵&#xff01;(&#xff65;ω&#xff65;) 19.1.1. 匹配命名变量 到目前为止我们讨论的所有代码都在编译时强制执行Rust的内存安全保证…