算法问题-求数组排序后最大相邻数差
求最大相邻数字
2,6,3,4,5,10,9
利用位图概念,讲最大值作为新数组长度,最小值作为偏移量,通过当前元素减去偏移量,放到位图里,设置为1,其他的设置为0
package algorithm.ispowerof2.getmaxsorteddistance;
public class GetMaxSortedDistance {
//利用类似位图的概念去解决
public static int getMaxDistance(int[] arr) {
int min = arr[0];
int max = arr[0];
for (int i = 0; i < arr.length; i++) {
min = min < arr[i] ? min : arr[i];
max = max >= arr[i] ? max : arr[i];
}
int[] temp = new int[max];
for (int i = 0; i < arr.length; i++) {
temp[arr[i] - min] = 1;
}
int res = 0;
int start = 0;
for (int i = 0; i < temp.length; i++) {
if(temp[i]==0 && i-1!=-1 && temp[i-1]!=0){
start = i-1;
}
if(temp[i]!=0 && i-1!=-1 && temp[i-1]==0){
res = res>(i-start)?res:(i-start);
}
}
return res;
}
public static void main(String[] args) {
int[] arr = {2,6,3,4,5,10,9};
System.out.println(getMaxDistance(arr));
}
}
结果
3
不恋尘世浮华,不写红尘纷扰
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
2020-11-25 mysql 远程连接速度慢的解决方案