欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java去除已排序數(shù)組中的重復(fù)元素

 更新時(shí)間:2016年09月17日 16:56:47   作者:u014717036  
這篇文章主要為大家詳細(xì)介紹了java去除已排序數(shù)組中重復(fù)元素的方法,感興趣的小伙伴們可以參考一下

題目描述

給定一個(gè)已排序的數(shù)組,去除數(shù)組中的重復(fù)元素,只保留一個(gè)重復(fù)的元素,并且返回新的數(shù)組長(zhǎng)度。

要求:
不要給數(shù)組分配額外的空間,你必須使用常量的內(nèi)存大小進(jìn)行原地操作。

例如:
給出數(shù)組A=[1,1,2],你的函數(shù)調(diào)用之后必須返回長(zhǎng)度length=2,并且A現(xiàn)在變成[1,2]。

輸入

一個(gè)已排序的數(shù)組,例如[1,1,2]。

輸出

返回?cái)?shù)組新的長(zhǎng)度,例如length=2。

快慢指針?lè)?/strong>

設(shè)置fast指針遍歷數(shù)組,slow指針指向不重復(fù)元素的下一位。

public static int removeDuplicates(int[] nums)
{
  if (nums.length < 1)
    return nums.length;
  int slow = 1;
  for (int fast = 1; fast < nums.length; fast++) {
    if (nums[fast] != nums[slow - 1]) {
      nums[slow++] = nums[fast];
    }
  }
  return slow;
}

動(dòng)畫(huà)演示:

擴(kuò)展

去除已排序數(shù)組中的重復(fù)元素,保留指定位數(shù)。

public static int removeDuplicatesN(int[] nums, int repeatN)
{
 if (nums.length <= repeatN)
  return nums.length;
 int index = repeatN;
 for (int i = repeatN; i < nums.length; i++) {
  if (nums[i] != nums[index - repeatN]) {
   nums[index++] = nums[i];
  }
 }
 return index;
}

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論