LeetCode 26題目解答

2021-12-29 23:27:45 字數 772 閱讀 2619

leetcode 26題目解答:給乙個陣列,刪去其中相同的元素,最後返回無重複元素的個數len,並且這個陣列的前len個元素就是。

無重複的這些元素。考慮使用left,right兩個指標來看。具體過程在函式中有注釋,只需要注意一些邊界的處理。

值得注意的是,不允許使用額外的空間,不允許重開陣列。//29ms ac

class solution {

public:

int removeduplicates(vector& nums) {

int left = 0, right = left+1;

//left存放最後無重複陣列的末位址

int len = nums.size();

if(len == 0)

return 0;

sort(nums.begin(),nums.end());

while(right < len)

{if(nums[right] != nums[left])//當前元素不重複,放入目標陣列

{left++;

swap(nums[left],nums[right]);

right++;

while(right= len)//已經超出陣列範圍

break;

left++;

swap(nums[left],nums[right]);

right++;//先讓right+1,不然這個right放的數字是剛才才換過來的數字,會錯誤!

while(right

Leetcode 3題目解答

leetcode 3題目解答 乙個字串,要得到連續各個元素都不同的最長子串長度。該函式返回乙個maxlen即最長子串的長度,用乙個hashmap存放字母以及其對應下標,利用for迴圈裡的i遍歷該string,則對於每個字母,有以下兩種情況 1 若當前字母不在hashmap中則放入,用乙個len來記錄...

leetcode題目和解答集合

102.二叉樹的層序遍歷 給你乙個二叉樹,請你返回其按層序遍歷得到的節點值。即逐層地,從左到右訪問所有節點 解答103.二叉樹的鋸齒形層序遍歷 給定乙個二叉樹,返回其節點值的鋸齒形層序遍歷。即先從左往右,再從右往左進行下一層遍歷,以此類推,層與層之間交替進行 解答其他題 大數相加演算法 題目 實現兩...

LeetCode26 合併倆個有序鍊錶

將兩個有序鍊錶合併為乙個新的有序鍊錶並返回。新煉表是通過拼接給定的兩個鍊錶的所有節點組成的。輸入 1 2 4,1 3 4 輸出 1 1 2 3 4 4 package lc21 public class lc21 else p p.next if l1 null else return head.n...