C++  short , easy , two pointers solution
\nvector<vector<int>> fourSum(vector<int>& nums, int target) {\n        int n = nums.size();  \n        sort(nums.begin() , nums.end());  // sort the array to u
```\nvector<vector<int>> fourSum(vector<int>& nums, int target) {\n        int n = nums.size();  \n        sort(nums.begin() , nums.end());  // sort the array to use the two pointers method\n        vector<vector<int>> ans;  \n        set<vector<int>> store;   // to store and remove the duplicate answers\n\t\t\n        for(int i = 0 ; i < n; i++){\n\t\t\n            for(int j = i + 1; j < n ; j++){\n\t\t\t\n                int new_target  =  target - nums[i] - nums[j];\n                \n                int x = j+1 , y = n-1;\n                \n                while(x < y){\n\t\t\t\t\n                    int sum = nums[x] + nums[y];\n                    \n                    if(sum > new_target) y--;\n                    else if(sum < new_target ) x++;\n                    else  {\n                        store.insert({nums[i] , nums[j] , nums[x] , nums[y]});\n                        x++;\n                        y--;\n                    };\n                }\n            }\n        }\n\t\t\n        for(auto i : store){\n            ans.push_back(i);  // store the answers in an array(ans)\n        }\n\t\t\n        return ans;\n    }\n```
['Two Pointers', 'C']