【4】阿里面试题整理

embedded/2025/2/8 3:08:02/

[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/embedded/160446.html

相关文章

Linux网络配置(超详细)

Linux网络配置大全 Linux网络配置 一.网络地址配置 网络地址查看–ifconfig使用网络配置命令 设置网络接口参数-ifconfig禁用(临时)或者重新激活网卡设置虚拟网络接口 修改网络配置文件 网络接口配置文件 IP命令详解 OPTIONS选项OBJECT对象 ip link 二、获取和修改主机名hostn…

Java实习生面试题汇总

Java实习生面试题汇总 简介 本人是二本大三学生&#xff0c;下半年大四。暑假在上海这边找实习工作&#xff0c;面了几家公司&#xff0c;所问到的问题记录在下面。 因为是在校生&#xff0c;没任何实习经历&#xff0c;一般找我面试的都是小公司&#xff0c;一般问的比较简…

蓝桥杯备赛——进制转化相关问题

目录 一、基础概念 二、问题研究&#xff08;1&#xff09; 代码解读&#xff1a; 1. transfer 函数 代码功能概述 详细步骤 2. main 函数 代码功能概述 详细步骤 三、运用递归解决 &#xff08;一&#xff09; 代码如下&#xff1a; 代码解读&#xff1a; &#…

深度剖析FFmpeg视频解码后的帧处理到Qt显示 从AVFrame到QImage的转换(二)

五、实战案例&#xff1a;视频解码后的图像处理 5.1 实时视频流的处理 在实际应用中&#xff0c;我们常常需要处理实时的视频流&#xff0c;例如监控摄像头的视频流、直播视频等。这些视频流的特点是数据量大&#xff0c;更新频率高&#xff0c;对处理速度和效率要求极高。下…

2.6学习总结

写了两道题 #include <stdio.h> #include <stdlib.h> struct hly {int left;int right;int d; }q[100005]; int main() {int n,m,k,p;scanf("%d",&n);q[1].left0;q[1].right0;q[0].left1;q[0].right1;for(int i2;i<n;i){scanf("%d %d",…

高可用架构设计

1.全链路服务保护方案 - 接入层防护: * 使用Sentinel实现接口级限流,支持QPS、并发线程数等多维度限流 * 配置基于滑动时间窗口的热点参数限流策略 * 实现自适应限流算法,根据系统负载动态调整阈值 - 服务层防护: * 实现基于RateLimiter的方法级限流 * 配置线程池隔…

java每日精进1.31(SpringSecurity)

在所有的开发的系统中&#xff0c;都必须做认证(authentication)和授权(authorization)&#xff0c;以保证系统的安全性。 一、基础使用 1.依赖 <dependencies><!-- 实现对 Spring MVC 的自动化配置 --><dependency><groupId>org.springframework.bo…

55【ip+dns+域名关系】

ip有一个最大的特点就是难记&#xff0c;为了解决这个问题&#xff0c;就引入了域名的概念&#xff0c;比如iyyy.com&#xff0c;这是我的域名&#xff0c;当访问这个域名时如果找到服务器呢 这便是dns服务器&#xff0c;当访问域名时&#xff0c;首先向dns服务器发送查询请…