这题可以用java里面的vector写吗

来源:3-3 在LeetCode上解决第一个问题 Move Zeros

v不离不弃v

2020-02-12

波波老师,为什么这一题我用arraylist做就accept了,然后用vector做就报错呢?
public static void moveZeroes(int[] nums) {
/*
ArrayList array=new ArrayList<>();
for(int i=0;i<nums.length;i++) {
if(nums[i]!=0)
array.add(nums[i]);
}
for(int i=0;i<nums.length;i++) {
if(i<array.size())
nums[i]=array.get(i);
else
nums[i]=0;
}
}

写回答

1回答

liuyubobobo

2020-02-12

Leetcode 本身没有默认 import Vector 类,你需要手动导入。


一下代码可 AC。

import java.util.Vector;

class Solution {
    public static void moveZeroes(int[] nums) {
        Vector<Integer> array=new Vector<>();
        for(int i=0;i<nums.length;i++) {
            if(nums[i]!=0)
                array.add(nums[i]);
        }
        
        for(int i=0;i<nums.length;i++) {
            if(i<array.size())
                nums[i]=array.get(i);
            else
                nums[i]=0;
        }
    }
}


不过,通常情况下,没有特殊情况,在 Java 中不需要使用 Vector。Vector 和 ArrayList 的区别是线程安全。通常的算法问题,都是串行算法,不需要考虑线程安全的问题。


继续加油!:)

0
0

玩转算法面试-- Leetcode真题分门别类讲解

课程配套大量BAT面试真题,高频算法题解析,强化训练

7408 学习 · 1150 问题

查看课程