rust leetcode 不明所以の报错
不知道为什么会报越界的错
自己的代码是没有问题的 😢
struct Solution;
impl Solution {
#[allow(unused)]
pub fn search(nums: Vec<i32>, target: i32) -> i32 {
let mut c = core::cell::RefCell::new(nums);
let cc = c.get_mut();
cc.sort();
let mut l = 0;
let mut r = cc.len() - 1;
while l <= r {
let mid = (l + r) >> 1;
if target == cc[mid] {
return mid as i32;
} else if target < cc[mid] {
r = mid - 1;
} else {
l = mid + 1;
}
}
-1
}
}
#[allow(unused)]
fn main() {
let v = vec![1, 2, 3, 4, 5];
let v = vec![-5];
println!("result is: {}", Solution::search(v, -5));
}
之后看了别人的题解才发先根本不用自己写 😄
nums.binary_search(&target).map_or(-1, |x| x as i32)
// 或者使用迭代器
nums.iter().position(|&x| x == target).map_or(-1, |x| x as i32)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏
· Manus爆火,是硬核还是营销?