Array

414. Third Maximum Number

class Solution {
public:
    int thirdMax(vector<int>& nums) {
        long int first = LONG_MIN, second = LONG_MIN, third = LONG_MIN;
        for (int i = 0; i < nums.size(); ++i) {
            if (nums[i] == first || nums[i] == second || nums[i] == third) continue;
            if (nums[i] > first) {
                third = second;
                second = first;
                first = nums[i];
            }
            else if (nums[i] > second) {
                third = second;
                second = nums[i];
            }
            else if (nums[i] > third) {
                third = nums[i];
            }
        }
        return third == LONG_MIN?first:third;
    }
};

88. Merge Sorted Array

class Solution {
public:
    void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) {
        if (m == 0) nums1 = nums2;
        int idx = m + n - 1;
        while (m > 0 && n > 0) {
            if (nums2[n-1] < nums1[m-1]) {
                nums1[idx] = nums1[m-1];
                m--;
            }
            else {
                nums1[idx] = nums2[n-1];
                n--;
            }
            idx--;
        }
        while (n > 0) {
            nums1[idx] = nums2[n-1];
            n--;
            idx--;
        } 
    }
};

27. Remove Element

class Solution {
public:
    int removeElement(vector<int>& nums, int val) {
        int size = nums.size();
        int i = 0;
        int j = 0;
        for (i = 0; i < size; ++i) {
            if (nums[i] == val) continue;
            nums[j] = nums[i];
            j++;
        }
        return j;
    }
};











Leave a comment