代码: class Solution41_meduim { public: void nextPermutation(vector<int>& nums) { if (nums.empty()) return; int subMax = nums[nums.size() - 1]; for (int i = nums.size() - 2; i >= 0; i--) { if (subMax > nums[i]) { // 逆序查找最小元素进行交换 vector<int>…

2020年11月10日 0条评论 3点热度 阅读全文

采用优先队列(即大顶堆)的方法:代码: class Solution973_medium { public: vector<vector<int>> kClosest(vector<vector<int>>& points, int K) { int index = 0; vector<vector<int>> output; priority_queue<Item, vector<Item>, cmp> pq;…

2020年11月9日 0条评论 0点热度 阅读全文

代码:  class Solution { public: int longestMountain(vector<int>& A) { int max_length = 0, index = 0; while(index + 1 < A.size()) { while(index + 1 < A.size() && A[index] >= A[index + 1]) index++; int up = 0, down = 0; while(index …

2020年10月25日 0条评论 0点热度 阅读全文

给定一个仅包含 0 和 1 的二维二进制矩阵,找出只包含 1 的最大矩形,并返回其面积。 示例: 输入:   [   ["1","0","1","0","0"],   ["1","0","1","1","1"],   ["1","1","1","1","1"],   ["1","0","0","1","0"] ] 输出: 6 代码: // 动态规划的思想 int MaximumRectangle(const vector<vector<char…

2020年10月20日 0条评论 2点热度 阅读全文

给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 你可以假设数组中无重复元素。   int binarySearch(vector<int> &nums, int target, int lo, int hi) { if(lo == hi) return lo; int mid = (lo + hi) / 2; if(nums[mid] == target) return mid; else if(nums[mid…

2020年5月1日 0条评论 0点热度 阅读全文

给定一个包含 n 个整数的数组 nums 和一个目标值 target,判断 nums 中是否存在四个元素 a,b,c 和 d ,使得 a + b + c + d 的值与 target 相等?找出所有满足条件且不重复的四元组。 注意: 答案中不可以包含重复的四元组。   这里需要考虑去重。  vector<vector<int>> fourSum(vect…

2020年4月30日 0条评论 0点热度 阅读全文