在leetcode上做题,发现编译不过,提示类型不匹配。请问怎么把usize转换成i32,或者有其它的解决办法?万分感谢!
代码:
impl Solution {
pub fn two_sum(nums: Vec<i32>, target: i32) -> Vec<i32> {
let mut finder: i32;
let mut indices = Vec::new();
for (i, i_v) in nums.iter().enumerate() {
finder = target - i_v;
for (j, j_v) in nums.iter().enumerate() {
if j_v == &finder && j != i {
indices.push(i);
indices.push(j);
break;
}
}
}
indices
}
}
报错信息:
mismatched types
expected i32, found usize
note: expected type `std::vec::Vec<i32>`
found type `std::vec::Vec<usize>`
1
共 8 条评论, 1 页
评论区
写评论感谢感谢!! 对以下内容的回复:
感谢感谢!! 对以下内容的回复:
感谢感谢!! 对以下内容的回复:
indices.push(i as i32); indices.push(j as i32);
就行,rust要求显式转换。
as
嗯嗯,多谢建议,我可能太急了 对以下内容的回复:
你应该回去看官方书复习下基础知识