How to Implement a Website with MVC Architecture using PHP

The MVC Architecture, benefiting the developers maintaining and improving the web considerably, has becoming the trends and mature technique with numerous frameworks. The following slides is the simply intro and analysis about MVC using PHP (Laravel),  Hoping helps!

LeetCode - 15. 3Sum

Category: Algorithm
Difficulty: Medium
Tags: Array, Two Pointers
Discription: https://leetcode.com/problems/3sum/#/description
這題給一個數字陣列,然後要找出任三個數字相加為零之所有組合。
實作概念就是使用三個個指標,先固定其中一個,再讓另外兩個走訪加總,以此來逐步找出所組合。
class Solution {
public:
    vector<vector<int>> threeSum(vector<int>& nums) {
        vector<vector<int>> result;
        int i, j, k, numslen=nums.size();
        sort(nums.begin(), nums.end());
     
        for(i=0; i<numslen; i++){
            while (i>0 && nums[i]==nums[i-1]) i++;
            j = i+1;
            k = numslen-1;
            while(j < k){
                if(nums[i]+nums[j]+nums[k] < 0) j++;
                else if(nums[i]+nums[j]+nums[k] > 0) k--;
                else{
                    result.push_back({nums[i], nums[j], nums[k]});
                    while(j<k && nums[j]==nums[j+1]) j++;
                    while(j<k && nums[k]==nums[k-1]) k--;
                    j++;
                    k--;
                }
            }
        }
        return result;
    }
};
首先排序數字陣列,
接下來實作之巢狀迴圈:O(n*n)
第一層負責移動第一個指標,
弟二層負責移動第二及第三個指標(由外而內移動),

第一個指標便會指向陣列最初之最小元素,
第二個指標將指向最小元素隔壁之稍大元素,
第三個指標則指向陣列最後之最大元素,

若三個所指向元素相加小於零,第二個指標將會移動(但不可超過第三個指標),
若三個所指向元素相加大於零,第三個指標將會移動(但不可小於第二個指標),
如果是等於零,直接將三個元素歸入結果陣列。

留言