1. 程式人生 > >26. 刪除排序陣列中的重複項/27. 移除元素/80. 刪除排序陣列中的重複項 II

26. 刪除排序陣列中的重複項/27. 移除元素/80. 刪除排序陣列中的重複項 II

26. 刪除排序陣列中的重複項
class Solution {
 public:
	 //劍指offer面試3不一樣,這題用的雙指標Ori,New

	 int removeDuplicates(vector<int>& nums) {
		 int len = nums.size();
		 if (len <= 0)return 0;
		 int New = 0,Ori = 0;
		 for (New, Ori; New < len&&Ori < len;)
		 {			 
			 int temp = nums[Ori];
while (Ori < len&& temp == nums[Ori] )// 跳過重複的數 Ori++; nums[New] = temp; New++; } nums.erase(nums.begin()+New,nums.end());//刪除最後的New到最後的資料 len = nums.size(); return len; } };

vector::erase

27. 移除元素
class Solution {
 public:
	 //再用雙指標
	 int removeElement(vector<
int>& nums, int val) { int len = nums.size(); if (len <= 0)return 0; int New = 0, Ori = 0; for (New, Ori; New < len&&Ori < len;) { while (Ori< len&&nums[Ori] == val)Ori++; if (Ori < len)//防止上面最後一個元素相等 { nums[New] = nums[Ori]; New++
; Ori++; } } nums.erase(nums.begin() + New, nums.end()); return nums.size(); } };
80. 刪除排序陣列中的重複項 II

要求:給定一個排序陣列,你需要在本體刪除重複出現的元素,使得每個元素最多出現兩次,返回移除後陣列的新長度。