分类: 算法

28 篇文章

LeetCode hot100@矩阵
73. 矩阵置零✅ Solution1:先把零的位置找出来,用二维数组存起来,但这样额外空间是O(mn) Solution2改进:仅使用常量空间,即O(1) class Solution1 { public: void setZeroes(vector<vector<int>>& matrix) { int m = …
C++算法模板
C++ Array/Vector 二分 int search(vector<int>& nums, int target) {    int left = 0;    int right = nums.size() - 1; // 定义target在左闭右闭的区间里,[left, righ…
LeetCode hot100@数组
53. 最大子数组和❌ 贪心:不能让“连续和”为负数的时候加上下一个元素(因为直接把前面这一堆和为负数的子串抛弃就回来,后面怎么也会比加上个负数更大),而不是不让“连续和”加上一个负数(加上负数也没事,只要整体还算大) class Solution { public: int maxSubArray(vector<int>& n…
LeetCode hot100@二分查找
35. 搜索插入位置✅ 二分模板题 class Solution { public: int searchInsert(vector<int>& nums, int target) { int left = 0, right = nums.size() - 1, mid; while(left <= right) { mi…
LeetCode hot100@双指针
双指针法:通过两个指针在一个for循环下完成两个for循环的工作,一般是将O(n^2)的时间复杂度,降为O(n) 283. 移动零✅ 简单模拟 不改变数组内元素的相对位置 复杂度O(n) class Solution { public: void moveZeroes(vector<int>& nums) { int slow …
LeetCode hot100@哈希
1. 两数之和✅ 错过一次没关系,第二次把握住就好 class Solution { public: vector<int> twoSum(vector<int>& nums, int target) { unordered_map<int, int> mp; vector<int> res;…