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)

题解来源于:https://leetcode.cn/u/jedske/

posted on   Slime04  阅读(20)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏
· Manus爆火,是硬核还是营销?
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示