27. 移除元素

題目

題解
必須在原地修改輸入數(shù)組并在使用 O(1) 額外空間的條件下完成
所以只能修改原數(shù)組。
題解一:

直接對(duì)滿足 nums[i] == val 的值進(jìn)行依次覆蓋即可。
public?int?removeElement(int[]?nums,?int?val)?{
????int?idx?=?0;
????for?(int?i?=?0;?i?????????if?(nums[i]?!=?val)?{
????????????nums[idx]?=?nums[i];
????????????idx++;
????????}
????}
????return?idx;
}
題解二:
元素的順序可以改變
因?yàn)閷?duì)順序沒有要求,所以可以直接使用數(shù)組尾部的值覆蓋前面的值。

class?Solution?{
????public?int?removeElement(int[]?nums,?int?val)?{
????????int?idx?=?0;
????????int?last?=?nums.length;
????????while?(idx?????????????if?(nums[idx]?==?val)?{
????????????????nums[idx]?=?nums[last?-?1];
????????????????last--;
????????????}?else?{
????????????????idx++;
????????????}
????????}
????????return?idx;
????}
}
-
評(píng)論
圖片
表情
