s
爬比我。
这个作者很懒,什么都没留下…
展开
-
bst
// BST树代码实现template<typename T, typename Comp = less<T>>class BSTree{public: // 初始化根节点和函数对象+lambda表达式 BSTree(Comp comp = Comp()) :root_(nullptr) , comp_(comp) {} // 层序遍历思想释放BST树所有节点资源 ~BSTree() { if (root_ != nullptr) { qu.原创 2021-03-13 23:18:57 · 154 阅读 · 0 评论 -
232. 用栈实现队列
class MyQueue {private: stack<int> inStack, outStack; void in2out() { while (inStack.empty() != true) { outStack.push(inStack.top()); inStack.pop(); } }public: MyQueue() {}...原创 2021-03-05 13:33:00 · 121 阅读 · 0 评论 -
354. 俄罗斯套娃信封问题
class Solution {public: int maxEnvelopes(vector<vector<int>>& envelopes) { if (envelopes.empty()) { return 0; } sort(envelopes.begin(), envelopes.end(), [](auto e1, auto e2) { ...原创 2021-03-04 23:33:11 · 166 阅读 · 1 评论 -
338. 比特位计数
class Solution {public: int countOnes(int x) { int ones = 0; while (x > 0) { x &= (x - 1); ones++; } return ones; } vector<int> countBits(int num) { ...原创 2021-03-03 09:59:15 · 114 阅读 · 0 评论 -
303. 区域和检索 - 数组不可变
class NumArray {public: vector<int> sums; NumArray(vector<int>& nums) { int n = nums.size(); sums.resize(n + 1); for (int i = 0; i < n; i++) { sums[i + 1] = sums[i] + nums[i]...原创 2021-03-01 13:11:01 · 71 阅读 · 0 评论 -
896. 单调数列
class Solution {public: bool isMonotonic(vector<int> &A) { bool inc = true, dec = true; int n = A.size(); for (int i = 0; i < n - 1; ++i) { if (A[i] > A[i + 1]) { inc = false; ...原创 2021-02-28 21:48:27 · 65 阅读 · 0 评论 -
867. 转置矩阵
class Solution {public: vector<vector<int>> transpose(vector<vector<int>>& matrix) { int m = matrix.size(), n = matrix[0].size(); vector<vector<int>> transposed(n, vector<int>(m)); ...原创 2021-02-25 10:39:49 · 104 阅读 · 0 评论 -
832. 翻转图像
class Solution {public: vector<vector<int>> flipAndInvertImage(vector<vector<int>>& A) { int n = A.size(); for (int i = 0; i < n; i++) { int left = 0, right = n - 1; whi...原创 2021-02-24 10:53:50 · 96 阅读 · 0 评论 -
1052. 爱生气的书店老板
class Solution {public: int maxSatisfied(vector<int>& customers, vector<int>& grumpy, int X) { int total = 0; int n = customers.size(); for (int i = 0; i < n; i++) { if (grumpy[i] == 0) { ...原创 2021-02-23 17:23:50 · 81 阅读 · 0 评论 -
766. 托普利茨矩阵
class Solution {public: bool isToeplitzMatrix(vector<vector<int>>& matrix) { int m = matrix.size(), n = matrix[0].size(); for (int i = 1; i < m; i++) { for (int j = 1; j < n; j++) ...原创 2021-02-22 09:25:02 · 111 阅读 · 0 评论 -
1438. 绝对差不超过限制的最长连续子数组
class Solution {public: int longestSubarray(vector<int>& nums, int limit) { multiset<int> s; int n = nums.size(); int left = 0, right = 0; int maxlen = 0; while (right < n) { ...原创 2021-02-21 22:35:16 · 74 阅读 · 0 评论 -
697. 数组的度
class Solution {public: int findShortestSubArray(vector<int>& nums) { // 定义统计哈希表和最大频数 unordered_map<int, int> mp; int max_fre = 0; // 统计频数,并计算最大频数 for(int i = 0; i < nums.size(); i ++) { ...原创 2021-02-20 10:33:13 · 82 阅读 · 0 评论 -
1004. 最大连续1的个数 III
class Solution {public: int longestOnes(vector<int>& A, int K) { int zero = 0,left = 0,right = 0; while(right < A.size()) { if(A[right] == 0) { zero ++; ...原创 2021-02-19 11:35:54 · 89 阅读 · 0 评论 -
566. 重塑矩阵
class Solution {public: vector<vector<int>> matrixReshape(vector<vector<int>>& nums, int r, int c) { vector<vector<int>> ans(r,vector<int>(c,0)); int m = nums.size(); int n ...原创 2021-02-17 09:53:49 · 117 阅读 · 0 评论 -
119. 杨辉三角 II
class Solution {public: vector<int> getRow(int rowIndex) { vector<int> row(rowIndex + 1); row[0] = 1; for (int i = 1; i <= rowIndex; ++i) { for (int j = i; j > 0; --j) { ...原创 2021-02-12 13:07:41 · 67 阅读 · 0 评论 -
567. 字符串的排列
class Solution {public: bool checkInclusion(string s1, string s2) { int n = s1.length(), m = s2.length(); if (n > m) { return false; } vector<int> cnt1(26), cnt2(26); for (int i = 0;...原创 2021-02-11 19:41:17 · 116 阅读 · 0 评论 -
978. 最长湍流子数组
class Solution {public: int maxTurbulenceSize(vector<int>& arr) { int n = arr.size(); int ret = 1; int left = 0, right = 0; while (right < n - 1) { if (left == right) {...原创 2021-02-08 23:08:16 · 91 阅读 · 0 评论 -
665. 非递减数列
class Solution {public: bool checkPossibility(vector<int> &nums) { int n = nums.size(), cnt = 0; for (int i = 0; i < n - 1; ++i) { int x = nums[i], y = nums[i + 1]; if (x > y) ...原创 2021-02-07 15:29:30 · 82 阅读 · 1 评论 -
1423. 可获得的最大点数
class Solution {public: int maxScore(vector<int>& cardPoints, int k) { int n = cardPoints.size(); int preSum = 0; for(int i = 0; i < k; i ++) preSum += cardPoints[i]; int ans = preSum; ...原创 2021-02-06 11:30:17 · 77 阅读 · 0 评论 -
1208. 尽可能使字符串相等
class Solution {public: int equalSubstring(string s, string t, int maxCost) { if(t.size() == 0) { return 1; } int left = 0; // 窗口左边界 int cost = 0; // 当前窗口消耗 // i作为窗口右边界 f...原创 2021-02-05 12:15:27 · 81 阅读 · 0 评论 -
643. 子数组最大平均数 I
class Solution {public: double findMaxAverage(vector<int>& nums, int k) { int sum = 0; int n = nums.size(); for (int i = 0; i < k; i++) { sum += nums[i]; } int maxSum = sum;...原创 2021-02-04 12:46:56 · 58 阅读 · 0 评论 -
480. 滑动窗口中位数
首先定义了结果数组 res 和 multiset;遍历输入中的每个元素;如果 multiset 中的元素超过了 k 个,需要把滑动窗口最左边 i - k 位置元素从 multiset 中删除(multiset 自动维护有序性);把遍历到的当前元素插入到 multiset 中(multiset 自动维护有序性);如果当前的位置达到了下标 k - 1,说明滑动窗口中有 k 个元素,开始求滑动窗口的中位数。class Solution {public: vector<double..原创 2021-02-03 12:12:44 · 114 阅读 · 0 评论 -
424. 替换后的最长重复字符
class Solution {public: int characterReplacement(string s, int k) { // 用一个数组来保存当前窗口内每个字符的最大的长度 vector<int> cnt (26,0); // 滑动窗口的最左侧 int left = 0; // 记录当前相同的单个字符的最大个数 int maxCharCnt = 0; ...原创 2021-02-02 20:04:43 · 52 阅读 · 0 评论 -
888. 公平的糖果棒交换
class Solution {public: vector<int> fairCandySwap(vector<int>& A, vector<int>& B) { int diff = 0; //A集合元素和与B集合元素和的差值 unordered_set<int> dicB; //B元素的哈希集合 for (auto a : A) diff += a; ...原创 2021-02-01 11:54:16 · 45 阅读 · 0 评论 -
724. 寻找数组的中心索引
class Solution {public: int pivotIndex(vector<int> &nums) { int total = accumulate(nums.begin(), nums.end(), 0); int sum = 0; for (int i = 0; i < nums.size(); ++i) { if (2 * sum + nums[...原创 2021-01-28 11:18:47 · 69 阅读 · 0 评论 -
1128. 等价多米诺骨牌对的数量
class Solution {public: int numEquivDominoPairs(vector<vector<int>>& dominoes) { int res = 0; vector<int> ans(100); for(auto v: dominoes) { int val = v[0]>v[1]?v[1]*10+v[0]:v...原创 2021-01-26 12:00:31 · 64 阅读 · 0 评论 -
674. 最长连续递增序列
class Solution {public: int findLengthOfLCIS(vector<int>& nums) { int ans = 0; int n = nums.size(); int start = 0; for (int i = 0; i < n; i++) { if (i > 0 &&...原创 2021-01-24 22:25:26 · 85 阅读 · 0 评论 -
989. 数组形式的整数加法
class Solution {public: vector<int> addToArrayForm(vector<int> &A, int K) { vector<int> res; int n = A.size(); for (int i = n - 1; i >= 0 || K > 0; --i, K /= 10) { if (i >= 0) { ...原创 2021-01-22 09:57:28 · 54 阅读 · 0 评论 -
1232. 缀点成线
class Solution {public: bool checkStraightLine(vector<vector<int>>& coordinates) { int x = coordinates[0][0], y = coordinates[0][1]; int chax = coordinates[1][0] -x , chay = coordinates[1][1] - y; for(in...原创 2021-01-17 11:41:20 · 97 阅读 · 0 评论 -
1018. 可被 5 整除的二进制前缀
class Solution {public: vector<bool> prefixesDivBy5(vector<int>& A) { vector<bool> list; int prefix = 0; int length = A.size(); for (int i = 0; i < length; i++) { prefix...原创 2021-01-14 22:47:49 · 53 阅读 · 0 评论 -
684. 冗余连接
class Djset {public: vector<int> parent; // 记录节点的根 vector<int> rank; // 记录根节点的深度(用于优化) Djset(int n): parent(vector<int>(n)), rank(vector<int>(n)) { for (int i = 0; i < n; i++) { parent[i] = i...原创 2021-01-13 20:47:31 · 144 阅读 · 0 评论 -
228. 汇总区间
class Solution {public: vector<string> summaryRanges(vector<int>& nums) { vector<string> ret; int i = 0; int n = nums.size(); while (i < n) { int low = i; ...原创 2021-01-10 12:30:03 · 68 阅读 · 0 评论 -
189. 旋转数组
class Solution {public: void reverse(vector<int>& nums, int start, int end) { while (start < end) { swap(nums[start], nums[end]); start += 1; end -= 1; } } void rotate(vector...原创 2021-01-08 11:18:27 · 70 阅读 · 0 评论 -
830. 较大分组的位置
class Solution {public: vector<vector<int>> largeGroupPositions(string s) { vector<vector<int>> ans; int n = s.size (); int num = 1; for(int i=0; i<n; i++) { if(i==...原创 2021-01-05 11:45:14 · 70 阅读 · 0 评论 -
509. 斐波那契数
class Solution {public: int fib(int n) { if(n<=1) return n; vector<int> ans(n+1,0); ans[1] = 1; for(int i = 2; i<=n; i++) { ans[i] = ans[i-1] +ans[i-2]; } ...原创 2021-01-04 10:39:01 · 137 阅读 · 0 评论 -
86. 分隔链表
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode* partition(ListNode* head, int x) { ...原创 2021-01-03 16:14:48 · 57 阅读 · 0 评论 -
239. 滑动窗口最大值
class Solution {public: vector<int> maxSlidingWindow(vector<int>& nums, int k) { int n = nums.size(); priority_queue<pair<int, int>> q; for (int i = 0; i < k; ++i) { q.emplace(nums[...原创 2021-01-02 11:57:38 · 114 阅读 · 0 评论 -
605. 种花问题 新年第一道简单题
新年第一道简单题,哈哈哈!!!!class Solution {public: bool canPlaceFlowers(vector<int>& flowerbed, int n) { int count = 0; int m = flowerbed.size(); int prev = -1; for (int i = 0; i < m; ++i) { if (flowe原创 2021-01-01 22:57:46 · 125 阅读 · 0 评论 -
435. 无重叠区间
class Solution {public: int eraseOverlapIntervals(vector<vector<int>>& intervals) { if (intervals.empty()) { return 0; } sort(intervals.begin(), intervals.end(), [](const auto& u, con...原创 2020-12-31 22:15:03 · 132 阅读 · 0 评论 -
1046. 最后一块石头的重量
class Solution {public: int lastStoneWeight(vector<int>& stones) { priority_queue<int> q; for (int s: stones) { q.push(s); } while (q.size() > 1) { int a = q.top(); ...原创 2020-12-30 23:47:34 · 96 阅读 · 0 评论