Sorting || Easy || Greedy || Beats 97%
Intuition\n Describe your first thoughts on how to solve this problem. \n\n# Approach\n Describe your approach to solving the problem. \n\n# Complexity\n- Time 
# Intuition\n<!-- Describe your first thoughts on how to solve this problem. -->\n\n# Approach\n<!-- Describe your approach to solving the problem. -->\n\n# Complexity\n- Time complexity:\n<!-- Add your time complexity here, e.g. $$O(n)$$ -->\n\n- Space complexity:\n<!-- Add your space complexity here, e.g. $$O(n)$$ -->\n\n# Code\n```\nclass Solution {\npublic:\n    int minRectanglesToCoverPoints(vector<vector<int>>& points, int w) {\n        int count = 0;\n\n        sort(points.begin(),points.end());\n\n        int i = 0;\n\n        while(i < points.size()){\n            int start = points[i][0];\n            bool visited = false;\n            while(i < points.size() && points[i][0]-start+1 <= w+1){\n                i++;\n                visited = true;\n            }\n            if(visited == false){\n                i++;\n            }\n            count++;\n        }\n        return count;\n    }\n};\n```
['Array', 'Greedy', 'Sorting', 'C++']