2022-06-04:给定一个数字n,表示一开始有编号1~n的树木,列成一条直线, 给定一个有序数组arr,表示现在哪些树已经没了,arr[i]一定在[1,n]范围, 给定一个数字m,表示你可以补种多
2022-06-04:给定一个数字n,表示一开始有编号1~n的树木,列成一条直线,
给定一个有序数组arr,表示现在哪些树已经没了,arr[i]一定在[1,n]范围,
给定一个数字m,表示你可以补种多少棵树。
返回补种之后,最长的连续树木,有多少棵。
答案2022-06-04:
连续补种。滑动窗口。
代码用rust编写。代码如下:
fn main() {
let mut arr: Vec<isize> = vec![3, 9, 13, 17, 24, 36];
let ans = longest_trees(50, 2, &mut arr);
println!("ans = {}", ans);
}
fn longest_trees(n: isize, m: isize, arr: &mut Vec<isize>) -> isize {
let mut ans = 0;
let mut start = 1;
let mut i = 0 as isize;
let mut j = m;
while j < arr.len() as isize {
ans = get_max(ans, arr[j as usize] - start);
start = arr[i as usize] + 1;
i += 1;
j += 1;
}
ans = get_max(ans, n - start + 1);
return ans;
}
fn get_max<T: Clone + Copy + std::cmp::PartialOrd>(a: T, b: T) -> T {
if a > b {
a
} else {
b
}
}
执行结果如下:
公众号:福大大架构师每日一题
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
2021-06-04 2021-06-04:给定三个参数:二叉树的头节点head,树上某个节点target,正数K,从target开始,可以向上走或者向下走。返回与target的距离是K的所有节点。