自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(61)
  • 收藏
  • 关注

转载 C++编写一个简单的DLL

什么是DLL:自从微软推出16位的Windows操作系统起,此后每种版本的Windows操作系统都非常依赖于动态链接库(DLL)中的函数和数据,实际上 Windows操作系统中几乎所有的内容都由DLL以一种或另外一种形式代表着,例如显示的字体和图标存储在GDI DLL中、显示Windows桌面和处理用户的输入所需要的代码被存储在一个User DLL中、Windows编程所需要的大量的API函数也被包含在Kernel DLL中。DLL是建立在客户/服务器通信的概念上,包含若干函数、类或资源的库文件,函数和

2021-03-12 15:20:55 1770

原创 零钱兑换

class Solution {public: int coinChange(vector<int>& coins, int amount) { vector<int> dp(amount+1,amount+1); dp[0] = 0; for(int i = 0;i < dp.size();i++) { for(int coin : coins){ .

2020-11-26 14:49:22 107

原创 C++类型转换

static_cast多用于将指针转换为另一同一继承体系内的指针,它是安全的类型转换。编译器会确保转换后的类型便是您所想转换的。该转换经常用于消除多重继承带来的类型歧义reinterpret_cast用于转换不相关类型。警告:不要对DWORD和指针进行相互转换。在64位平台上,它不能通过编译。const_cast用于移除对象的’const’性质。PS:不应该使用const_cast,除非是绝对需要。必须使用’const_cast’一般意味着某个API没有很恰当的使用’const’。注意:Wi..

2020-11-26 14:48:58 112 1

原创 每日温度

class Solution {public: vector<int> dailyTemperatures(vector<int>& T) { vector<int> res(T.size()); stack<int> s; for(int i = 0;i < T.size();i++){ while(!s.empty()&&T[s.top()] .

2020-11-26 14:48:52 129

原创 字符串编码

class Solution {public: string src; ssize_t ptr; int getDigits(){ int ret = 0; while(ptr < src.size()&&isdigit(src[ptr])){ ret = ret * 10 + src[ptr++]-'0'; } .

2020-11-26 14:48:35 66

原创 课程表

class Solution {public: vector<vector<int>> edges; vector<int> visited; bool valid = true;public: void dfs(int u) { visited[u] = 1; for (int v: edges[u]) { if (visited[v] == 0) { .

2020-11-26 14:48:29 135

原创 岛屿数量

class Solution {public: int numIslands(vector<vector<char>>& grid) { int row = grid.size(); if (!row) return 0; int col = grid[0].size(); int count = 0; for(int i = 0;i < row;i++){ .

2020-11-26 14:48:18 45

原创 回文子串

class Solution {public: int countSubstrings(string s) { int num = 0; for(int i = 0; i < s.size();i++){ for(int j = 0;j <= 1;j++){ int l = i; int r = i+j; while(l>=0 .

2020-11-26 14:48:13 43

原创 目标和

class Solution {public: int findTargetSumWays(vector<int>& nums, int S) { int sum = 0; for(int ch : nums){ sum += ch; } if(sum < S) return 0; if((sum + S)%2) return 0; .

2020-11-26 14:48:09 38

原创 分割等和子集

class Solution {public: bool canPartition(vector<int>& nums) { int sum = 0; for(int i = 0;i < nums.size();i++){ sum += nums[i]; } if(sum%2) return false; sum = sum/2; .

2020-11-26 14:48:03 70

原创 找到字符串中所有字母异位词

class Solution {public: vector<int> findAnagrams(string s, string p) { unordered_map<char,int> need, window; for(char ch : p){ need[ch]++; } int left = 0; int right = 0; int vali.

2020-11-26 14:47:40 91

原创 比特位计数

class Solution {public: vector<int> countBits(int num) { vector<int> v; if(num == 0){ v.push_back(0); } if(num == 1){ v.push_back(0); v.push_back(1); } if(num >= 2){ v.push_ba.

2020-11-26 14:47:30 208

原创 戳气球

class Solution {public: int maxCoins(vector<int>& nums) { int n = nums.size(); vector<vector<int>> dp(n+2,vector<int> (n+2)); vector<int> val(n+2); val[0] = val[n+1] = 1; for(i.

2020-11-26 14:47:25 54

原创 最长上升子序列

class Solution {public: int lengthOfLIS(vector<int>& nums) { int n = nums.size(); if(n==0) return 0; vector<int> dp(n,0); for(int i = 0;i < n;i++){ dp[i] = 1; for(int .

2020-11-26 14:47:19 43

原创 完全平方数

class Solution {public: int numSquares(int n) { vector<int> res(n+1,0x7FFFFFFF); res[0] = 0; for(int i = 1; i <= n;i++){ for(int j = 1;i-j*j>=0;j++){ res[i] = min(res[i],res[i-j*j] + 1);.

2020-11-26 14:47:14 47

原创 打家劫舍

class Solution {public: int rob(vector<int>& nums) { int length = nums.size(); if (nums.empty()) { return 0; } int size = nums.size(); if (size == 1) { return nums[0]; } .

2020-11-26 14:47:09 55

原创 乘积最大子数组

class Solution {public: int maxProduct(vector<int>& nums) { vector<int> max_F(nums),min_F(nums); for(int i = 1;i < nums.size();i++){ max_F[i] = max(max_F[i-1] * nums[i], max(max_F[i], min_F[i-1] * nums[i.

2020-11-26 14:47:03 39

原创 单词拆分

class Solution {public: bool wordBreak(string s, vector<string>& wordDict) { int n = s.size(); vector<bool> dp(n+1,false); dp[0] = true; for(int i = 0;i < n;i++){ if(dp[i] == false) conti.

2020-11-26 14:46:58 54

原创 买卖股票的最佳时机

class Solution {public: int maxProfit(vector<int>& prices) { int minprice = 1e9; int maxProfit = 0; for(auto price : prices){ maxProfit = max(maxProfit,price-minprice); minprice = min(minprice.

2020-11-26 14:46:52 43

原创 不同的二叉搜索树

class Solution {public: int numTrees(int n) { vector<int> v(n+1,0); v[0] = 1; v[1] = 1; for(int i = 2;i <= n;i++){ for(int j = 1;j <= i;j++){ v[i] += v[j-1]*v[i-j]; }.

2020-11-26 14:46:47 50

原创 编辑距离

class Solution {public: int minDistance(string word1, string word2) { vector<vector<int>> dp(word1.size()+1,vector<int> (word2.size()+1, 0)); for(int i = 0;i < dp.size();i++){ dp[i][0] = i; } .

2020-11-26 14:46:41 48

原创 爬楼梯

class Solution {public: int climbStairs(int n) { if(n == 1 || n == 0) return 1; if(n == 2) return 2; vector<int> v(n+1,0); v[0] = 1; v[1] = 1; v[2] = 2; for(int i = 3;i < n+1;i++){ .

2020-11-26 14:46:35 47

原创 最小路径和

class Solution {public: int minPathSum(vector<vector<int>>& grid) { int rows = grid.size(), columns = grid[0].size(); int res[1000][1000]; res[0][0] = grid[0][0]; for(int i = 1;i < rows;i++){ .

2020-11-26 14:46:29 39

原创 不同路径

class Solution {public: int uniquePaths(int m, int n) { int dp[1000][1000]; vector<vector<int>> v; for(int i = 0; i < m;i++){ for(int j = 0;j < n;j++){ if(i==0||j==0) dp[i][j] = 1;.

2020-11-26 14:46:22 28

原创 最大子序和

class Solution {public: int maxSubArray(vector<int>& nums) { vector<int> dp(nums.size(),0); dp[0] = nums[0]; int res = dp[0]; for(int i = 1;i < nums.size();i++){ dp[i] = max(nums[i],dp[i-.

2020-11-26 14:46:17 39

原创 最长回文子串

class Solution {public: string longestPalindrome(string s) { int start = 0; int end = 0; for(int i = 0;i < s.size();i++){ auto [left1,right1] = expandAroundCenter(s,i,i); auto [left2,right2] = expand.

2020-11-26 14:46:12 56

原创 和为K的子数组

class Solution {public: int subarraySum(vector<int>& nums, int k) { unordered_map<int,int> map; map[0] = 1; int count = 0, pre = 0; for(auto& x : nums){ pre += x; if(map.find.

2020-11-26 14:46:07 39

原创 只出现一次的数字

class Solution {public: int singleNumber(vector<int>& nums) { int sum = 0; for(int i = 0; i < nums.size();i++){ sum ^= nums[i]; } return sum; }};

2020-11-26 14:45:59 37

原创 字母异位词分组

class Solution {public: vector<vector<string>> groupAnagrams(vector<string>& strs) { vector<vector<string>> res; map <string,vector<string> > m; for(string& s : strs){ .

2020-11-26 14:44:21 60

原创 无重复字符的最长子串

class Solution {public: int lengthOfLongestSubstring(string s) { int start = 0; int end = 0; int len = 0; int res = 0; while(end < s.size()){ char tmp = s[end]; for(int index = start;.

2020-11-26 14:44:15 29

原创 两数之和

class Solution {public: vector<int> twoSum(vector<int>& nums, int target) { int i,j; for(int i = 0;i < nums.size();i++){ for(int j = i+1;j < nums.size();j++){ if(nums[i] + nums[j] == .

2020-11-26 14:44:09 30

原创 把二叉搜索树转换为累加树

把二叉搜索树转换为累加树给出二叉 搜索 树的根节点,该树的节点值各不相同,请你将其转换为累加树(Greater Sum Tree),使每个节点 node 的新值等于原树中大于或等于 node.val 的值之和。提醒一下,二叉搜索树满足下列约束条件:节点的左子树仅包含键 小于 节点键的节点。节点的右子树仅包含键 大于 节点键的节点。左右子树也必须是二叉搜索树。注意:本题和 1038: https://leetcode-cn.com/problems/binary-search-tree-to-.

2020-11-26 14:44:04 215

原创 合并二叉树

class Solution {public: TreeNode* mergeTrees(TreeNode* t1, TreeNode* t2) { TreeNode* root; if(t1==nullptr&&t2 == nullptr){ return 0; } else if(t1!=nullptr&&t2 == nullptr){ root =.

2020-11-26 14:43:58 51

原创 二叉树的直径

class Solution {public: int ans; int diameterOfBinaryTree(TreeNode* root) { ans = 1; dfs(root); return ans - 1; } int dfs(TreeNode* root){ if(root == NULL) return 0; int left = dfs(root->.

2020-11-26 14:43:53 67

原创 路径总和III

class Solution {public: int count = 0; int pathSum(TreeNode* root, int sum) { if(root == nullptr) return count; dfs(root,sum); pathSum(root->left,sum); pathSum(root->right,sum); return count;.

2020-11-26 14:43:49 57

原创 二叉树的最近公共祖先

class Solution {public: TreeNode* lowestCommonAncestor(TreeNode* root, TreeNode* p, TreeNode* q) { if(root==NULL) return NULL; if(root == p || root == q) return root; TreeNode *left = lowestCommonAncestor(root-.

2020-11-26 14:43:44 38

原创 翻转二叉树

class Solution {public: TreeNode* invertTree(TreeNode* root) { if(root == NULL) return NULL; root->right = invertTree(root->right); root->left = invertTree(root->left); swap(root->left,root->r.

2020-11-26 14:43:39 45

原创 二叉树展开为链表

class Solution {public: vector<TreeNode*> v; void dfs(TreeNode* root){ if(root==NULL) return; v.push_back(root); dfs(root->left); dfs(root->right); } void flatten(TreeNode* root) { .

2020-11-26 14:43:35 43

原创 二叉树的最大深度

class Solution {public: int maxDepth(TreeNode* root) { if(root == nullptr) return 0; return max(maxDepth(root->left),maxDepth(root->right))+1; }};

2020-11-26 14:43:30 43

原创 二叉树的层序遍历

class Solution {public: vector<vector<int>> levelOrder(TreeNode* root) { vector<vector<int>> res; queue<TreeNode*> q; if(root!=NULL) q.push(root); while(!q.empty()){ .

2020-11-26 14:43:25 89

空空如也

空空如也

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

TA关注的人

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