自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(246)
  • 资源 (1)
  • 收藏
  • 关注

原创 【C++重载new和delete运算符实现一个对象池】

使用对象池的原因类似于SGI的二级空间配置器,但是对象池的实现比二级空间配置器实现的原理简单了很多。想了解二级空间配置器可以查看博主的另外一篇文章https://blog.csdn.net/qq_42418668/article/details/94740594当我们需要,多次使用new和delete操作向系统申请和释放堆空间会使得我们的程序进程的开销变得非常的大而且效率也非常...

2019-07-08 18:46:12 347

原创 【SGI二级空间配置器】

开发环境Windows 10 专业版开发工具Microsoft Visual Studio Community 2017版本15.9.12参考书籍《STL 源码剖析》分析SGI STL包含了一级空间配置器和二级空间配置器,其中一级空间配置器allocator采用malloc和free来管理内存,和C++标准库中提供的默认allocator是一样的;而二级空间配置器a...

2019-07-05 16:47:58 237

原创 QT Creator代码有中文出现“常量中有换行符”的解决办法

QMAKE_CXXFLAGS += /utf-8 # 修正中文编码乱码以及字符串字面量导致 c2001 问题。代码中有中文经常出现这个错误。在.pro 文件中增加。

2023-05-31 20:06:41 205

原创 Qt windows平台判断窗口是否在当前虚拟桌面

Qt windows平台判断窗口是否在当前桌面

2022-08-25 20:34:29 567

原创 qt mac平台下让窗口一直在当前桌面显示

qt mac平台下让窗口一直在当前桌面显示

2022-08-25 20:31:59 462

原创 【数组】1417. 重新格式化字符串

class Solution {public: string reformat(string s) { int digitCount = 0; int letterCount = 0; for (auto ch : s) { if (isdigit(ch)) { digitCount++; } else if(isalpha(ch)) { .

2021-05-25 11:31:14 113

原创 【线段树】307. 区域和检索 - 数组可修改

class NumArray {public: vector<int> tree; int n; NumArray(vector<int> nums) { n = nums.size(); tree.resize(n * 2); for (int i = n; i < 2 * n; i++) { tree[i] = nums[i - n]; } f.

2021-05-22 11:41:12 108

原创 【数学推理】【异或】leetcode.810. 黑板异或游戏

class Solution {public: bool xorGame(vector<int>& nums) { return !(nums.size() & 1) || !accumulate(nums.begin(), nums.end(), 0, bit_xor<int>{}); }};

2021-05-22 10:27:22 123 1

原创 【数组】【二分】leetcode.1482. 制作 m 束花所需的最少天数

class Solution {public: int minDays(vector<int>& bloomDay, int m, int k) { int n = bloomDay.size(); if(m*k > n) return -1; int l = *min_element(bloomDay.begin(),bloomDay.end()), r = *max_element(bloomDay.begin(),..

2021-05-09 19:35:58 79

原创 【异或】【数组】leetcode.1720.解码异或后的数组

class Solution {public: vector<int> decode(vector<int>& encoded, int first) { vector<int> ans; ans.push_back(first); for (auto obj : encoded) { int tmp = obj ^ ans.back(); ans.push.

2021-05-06 17:24:33 74

原创 【位运算】【数组】leetcode.137.只出现一次的数字 II

class Solution {public: int singleNumber(vector<int>& nums) { int ans = 0; for (int i = 0; i < 32; i++) { int total = 0; for (auto num : nums) { total += (num >> i) & 1; .

2021-04-30 16:01:43 80 1

原创 【LRU】leetcode. LRU缓存

class LRUCache {public: LRUCache(int capacity) { capacity_ = capacity; } void put(int key, int value) { if (table_.count(key) != 0) { lru_.splice(lru_.begin(), lru_, table_[key]); table_[key]->secon.

2021-04-30 11:13:04 72

原创 【双指针】【数组】leetcode.16.最接近的三数之和

class Solution {public: int threeSumClosest(vector<int>& nums, int target) { sort(nums.begin(),nums.end()); int minOffset = INT_MAX; int ans = 0; for(int i = 0; i < nums.size() - 2; i++) { int .

2021-04-29 22:02:11 64

原创 【中心点向俩段遍历】【数组】leetcode.5.最长回文子串

class Solution {public: string longestPalindrome(string s) { vector<int> range = { 0,0 }; for (int i = 0; i < s.size(); i++) { i = function(range, s, i); } return s.substr(range[0], range[1] - rang.

2021-04-29 21:13:49 95

原创 【哈希表】leetcode.1.俩数之和

class Solution {public: vector<int> twoSum(vector<int>& nums, int target) { unordered_map<int,int> m; for(int i = 0;i < nums.size(); ++i) { if(m.count(target - nums[i]) != 0) { retu.

2021-04-29 19:59:20 75

原创 【字符串】leetcode.43 字符串相乘

在这里插入代码片

2021-04-27 11:09:26 56

原创 【数组】【俩俩抵消】leetcode.169. 多数元素

class Solution {public: int majorityElement(vector<int>& nums) { if (nums.size() == 0) { return 0; } int flag = nums[0]; int count = 1; for (int i = 1; i < nums.size(); ++i) { if (nums[i] == fl.

2021-04-27 11:07:41 131

原创 【回溯】【递归】leetcode.22.括号生成

class Solution {public: vector<string> generateParenthesis(int n) { vector<string> res; string cur; dfs(res,cur,0,0,n); return res; } void dfs(vector<string>& res,string &cur,int open,.

2021-04-27 11:07:22 63

原创 【回溯】leetcode.78.子集

class Solution {public: vector<vector<int>> subsets(vector<int>& nums) { vector<vector<int>> ans; vector<bool> flag(nums.size()); dfs(ans,nums,0,flag); return ans; } void.

2021-04-27 11:06:56 57

原创 【回溯】leetcode.46.全排列

class Solution {public: vector<vector<int>> permute(vector<int>& nums) { vector<vector<int>> ans; dfs(ans,nums,0); return ans; } void dfs(vector<vector<int>> &res,vecto.

2021-04-27 11:06:43 73

原创 【数组】【动态规划】leetcode.53.最大子序和

class Solution {public: int maxSubArray(vector<int>& nums) { if (nums.size() == 0) return 0; int pre = nums[0]; int max_val = nums[0]; for (int i = 1; i < nums.size(); i++) { pre = (max(nums[i].

2021-04-27 11:06:30 66

原创 【数组】【动态规划】leetcode.121.买卖股票的最佳时机

class Solution {public: int maxProfit(vector<int>& prices) { if(prices.size() == 0) return 0; int min_buy = prices[0]; int max_value = 0; for(int i = 1;i<prices.size();++i) { max_value = max(ma.

2021-04-27 11:06:17 72

原创 【数组】【读写双指针】26. 删除有序数组中的重复项

class Solution {public: int removeDuplicates(vector<int>& nums) { if (nums.size() < 2) { return nums.size(); } int l = 0; int h = 1; while (h < nums.size()) { if (nums[l..

2021-04-26 22:13:31 121 1

原创 【数字】leetcode.9. 回文数

class{public:bool isPalindrome(int x) { if (x < 0 || (x % 10 == 0 && x != 0)) { return 0; } int rec = 0; while (x > rec) { rec = rec * 10 + x % 10; x /= 10; } return rec == x || x == (rec / 1.

2021-04-26 22:09:56 54

原创 【链表】【指针】leecode.206. 反转链表

/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListNode(int x) : val(x), next(nullptr) {} * ListNode(int x, ListNode *next) : val(x), next(next.

2021-04-26 22:05:10 49

原创 【二叉树】【小顶堆】leetcode.230. 二叉搜索树中第K小的元素

/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), left(nullptr), right(nullptr) {} * TreeNode(int x) : val(x), left(nullptr), right(nullptr) {} ..

2021-04-26 22:03:19 64

原创 【数组】【二分】33. 搜索旋转排序数组

class Solution {public: int search(vector<int>& nums, int target) { int l = 0; int h = nums.size() - 1; while(l <= h) { int mid = (l + h) / 2; if(target == nums[mid]) { ret.

2021-04-26 22:00:13 45

原创 【数组】【大顶堆】leetcode.215. 数组中的第K个最大元素

class Solution {public: int findKthLargest(vector<int>& nums, int k) { priority_queue<int, vector<int>, greater<int>> heap; for(auto ch : nums) { heap.push(ch); if(heap.size() > k.

2021-04-26 21:57:07 46

原创 【二叉树】【递归】Leetcode.124. 二叉树中的最大路径和

class Solution {public: int max_path_ = INT_MIN; int maxPathSum(TreeNode* root) { path(root); return max_path_; } int path(TreeNode *root) { if(root == nullptr) return 0; int left = max(path(root->left)..

2021-04-26 21:53:58 67

原创 【二叉树】【递归】剑指 Offer 68 - II. 二叉树的最近公共祖先

/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public: TreeNode* lowestCommonAncesto.

2021-04-26 21:50:30 46

原创 【二叉树】【递归】剑指 Offer 68 - I. 二叉搜索树的最近公共祖先

/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public: TreeNode* lowestCommonAncesto.

2021-04-26 21:48:17 46

原创 【二叉树】【递归】剑指Offer.55.二叉树的深度

/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), left(nullptr), right(nullptr) {} * TreeNode(int x) : val(x), left(nullptr), right(nullptr) {} *.

2021-04-26 21:46:03 53

原创 【数组】【头到尾尾到头】leetcode.238. 除自身以外数组的乘积

class Solution {public: vector<int> productExceptSelf(vector<int>& nums) { if(nums.size() == 0 ) { return {}; } vector<int> ans(nums.size()); int L = 1; ans[0] = 1; for.

2021-04-25 23:07:23 47

原创 【数组】leetcode.54螺旋矩阵

class Solution {public: vector<int> spiralOrder(vector<vector<int>>& matrix) { if(matrix.size() == 0 || matrix[0].size() == 0) { return {}; } int top = 0; int left = 0; int rig.

2021-04-25 22:41:55 58

原创 【数组】【双指针】leetcode.88 合并两个有序数组

class Solution {public: void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) { int p1 = m - 1; int p2 = n - 1; int h = nums1.size() - 1; while(p1 >= 0 && p2 >= 0 &&.

2021-04-25 22:26:16 44

原创 【数组】【哈希表】leetcode.217 存在重复元素

class Solution {public: bool containsDuplicate(vector<int>& nums) { set<int> m; for(auto ch : nums) { if(m.count(ch) != 0) { return true; } m.insert(ch); } .

2021-04-25 22:18:08 43

原创 leetcode. 头文件

// C++ includes used for precompiling -*- C++ -*-// Copyright (C) 2003-2013 Free Software Foundation, Inc.//// This file is part of the GNU ISO C++ Library. This library is free// software; you can redistribute it and/or modify it under the// terms

2021-04-25 22:13:12 716

原创 【数组】【二分】leetcode.15三数之和

class Solution {public: vector<vector<int>> threeSum(vector<int>& nums) { set<vector<int>> rst; sort(nums.begin(), nums.end()); int length = nums.size() - 2; for (int.

2021-04-25 22:12:13 64

原创 【数组】【二分查找】leetcode.4 寻找两个正序数组的中位数

class Solution {public: int getKthElement(const vector<int>& nums1, const vector<int>& nums2, int k) { /* 主要思路:要找到第 k (k>1) 小的元素,那么就取 pivot1 = nums1[k/2-1] 和 pivot2 = nums2[k/2-1] 进行比较 * 这里的 "/" 表示整除 *.

2021-04-25 22:10:59 65

原创 【字符串】leetcode.14 最长公共前缀

class Solution {public: string longestCommonPrefix(vector<string>& strs) { if (strs.size() == 0) { return ""; } //1.横向扫描 /*string pre = strs[0]; int i = 0; for (; i < strs.size(.

2021-04-25 22:08:52 55

vs_community__zip

现在官网不太好下载这个,我之前由于重新安装系统想装vs2017,在官网找了好久没找到vs2017的下载地方,不过还好在之前的移动硬盘里面找到了之前没有删除的下载器。现在提供给同样需要这个资源的同学们,嘻嘻。

2019-07-04

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除