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)
浙公网安备 33010602011771号