自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Ember_Sky

敲击代码使我敲击快乐!!!

  • 博客(81)
  • 资源 (1)
  • 收藏
  • 关注

原创 LeetCode剑指 Offer 05. 替换空格

//剑指 Offer 05. 替换空格class Solution {public: string replaceSpace(string s) { string ans; for (auto x : s) if (x == ' ') ans += "%20"; else ans += x; return ans; }};

2020-09-29 21:59:11 193

原创 LeetCode面试题 01.01.判定字符是否唯一

//面试题 01.01.判定字符是否唯一class Solution {public: bool isUnique(string astr) { int s = 0; for (auto x : astr) { if (s >> (x - 'a') & 1) return false; s = s | (1 << (x - 'a')); } return true; }};...

2020-09-29 21:56:35 91

原创 LeetCode63. 不同路径 II

//63. 不同路径 II//算是dp吧,最简单的dp实现class Solution {public: int uniquePathsWithObstacles(vector<vector<int>>& grid) { int n = grid.size(); if (n == 0) return 0; int m = grid[0].size(); if (m == 0) return 0; vector<vecto

2020-09-29 21:48:26 153

原创 LeetCode剑指 Offer 13. 机器人的运动范围

//剑指 Offer 13. 机器人的运动范围class Solution {public: bool get(int i, int j, const int& k) { int ans = 0; while (i) { ans += i % 10; i /= 10; } while (j) { ans += j % 10; j /= 10; } return ans <= k; }

2020-09-29 21:13:47 119

原创 LeetCode剑指 Offer 06. 从尾到头打印链表

//剑指 Offer 06. 从尾到头打印链表class Solution {public: vector<int>ans; void dfs(ListNode* node) { if (node == NULL) return; dfs(node->next); ans.emplace_back(node->val); } vector<int> reversePrint(ListNode* head) { dfs(h

2020-09-29 20:38:10 49

原创 LeetCode剑指 Offer 22. 链表中倒数第k个节点

//剑指 Offer 22. 链表中倒数第k个节点class Solution {public: ListNode* getKthFromEnd(ListNode* head, int k) { if (head == NULL) return head; auto p = head; auto q = head; while (k-- && q != NULL) q = q->next; while (q != NULL) {

2020-09-29 20:21:30 53

原创 LeetCode240. 搜索二维矩阵 II

//240. 搜索二维矩阵 II //这个超时,应该是s=matrix这里的复制操作时间有点久class Solution {public: vector<vector<int>>s; bool dfs(int i, int j, const int& target) { if (i >= s.size() || j < 0) return false; if (s[i][j] == target) return true;

2020-09-29 10:35:41 53

原创 LeetCode剑指 Offer 04. 二维数组中的查找

//剑指 Offer 04. 二维数组中的查找class Solution {public: vector<vector<int>>s; bool dfs(int i, int j, const int& target) { if (i >= s.size() || j < 0) return false; if (s[i][j] == target) return true; else if (s[i][j] < tar

2020-09-29 10:24:07 41

原创 LeetCode120. 三角形最小路径和

//120. 三角形最小路径和class Solution {public: int minimumTotal(vector<vector<int>>& s) { if (s.empty()) return 0; int n = s.size(); auto f(s); for (int i = 1; i < n; i++) for (int j = 0; j <= i; j++) if (j =

2020-09-29 10:13:51 70

原创 LeetCode39. 组合总和

//39. 组合总和class Solution {public: vector<vector<int>>ans; vector<int>s; vector<int>sstack; void dfs(int it, int sum, const int& target) { if (sum == target) { ans.emplace_back(sstack); return; }

2020-09-29 09:32:03 51

原创 LeetCode409. 最长回文串

//409. 最长回文串class Solution {public: int longestPalindrome(string s) { int num[300] = { 0 }; for (auto x : s) num[x]++; int i = 0; int ans = 0; for (; i < 300; i++) { ans += num[i]; if (num[i] & 1) break; }

2020-09-28 11:10:00 52

原创 LeetCode226. 翻转二叉树

//226. 翻转二叉树class Solution {public: void dfs(TreeNode* node) { if (node == NULL) return; swap(node->left, node->right); dfs(node->left); dfs(node->right); } TreeNode* invertTree(TreeNode* root) { dfs(root); retur

2020-09-28 11:02:57 66

原创 LeetCode78. 子集

//78. 子集class Solution {public: vector<vector<int>>ans; vector<int>s; void dfs(int u, int vis) { if (u == s.size()) { vector<int>t; for (int i = 0; i < s.size(); i++) if (vis >> i & 1) t.

2020-09-28 10:41:16 51

原创 LeetCode94. 二叉树的中序遍历

//94. 二叉树的中序遍历class Solution {public: vector<int>ans; void dfs(TreeNode* node) { if (node == nullptr) return; dfs(node->left); ans.emplace_back(node->val); dfs(node->right); } vector<int> inorderTraversal(Tree

2020-09-28 10:29:21 48

原创 LeetCode876. 链表的中间结点

//876. 链表的中间结点class Solution {public: ListNode* middleNode(ListNode* head) { if (head == NULL || head->next == NULL) return head; auto p = head; auto q = head->next; while (q != NULL) { p = p->next; q = q->next;

2020-09-28 10:16:02 50

原创 LeetCode111. 二叉树的最小深度

//111. 二叉树的最小深度class Solution {public: int ans = 0x3f3f3f3f; void dfs(TreeNode* node, int len) { if (node == NULL) return; if (node->left == NULL && node->right == NULL) ans = min(ans, len); dfs(node->left, len + 1);

2020-09-28 10:07:49 59

原创 LeetCode100. 相同的树

//100. 相同的树class Solution {public: bool dfs(TreeNode* p, TreeNode* q) { if (p == nullptr && q == nullptr) return true; if (p == nullptr || q == nullptr) return false; return p->val == q->val && dfs(p->left, q->le

2020-09-28 09:53:06 53

原创 LeetCode392. 判断子序列

//392. 判断子序列class Solution {public: bool isSubsequence(string s, string t) { int i = 0; int j = 0; for (; i < t.size() && j < s.size(); i++) if (t[i] == s[j]) j++; return j==s.size(); }};

2020-09-28 09:46:55 63

原创 LeetCode69. x 的平方根

//69. x 的平方根//调用库函数class Solution {public: int mySqrt(int x) { return (int)sqrt(x); }};//暴力枚举class Solution {public: int mySqrt(int x) { long long ans = 1; while (ans * ans <= x) ans++; return ans - 1; }};//先指数下降,在

2020-09-28 09:39:29 58

原创 LeetCode剑指 Offer 40. 最小的k个数

//剑指 Offer 40. 最小的k个数class Solution {public: vector<int> getLeastNumbers(vector<int>& arr, int k) { sort(arr.begin(), arr.end()); return vector<int>(arr.begin(), arr.begin() + k); }};

2020-09-28 09:14:39 85

原创 LeetCode200. 岛屿数量

//200. 岛屿数量class Solution {public: vector<vector<char>>s; void dfs(int i, int j) { if (i < 0 || j < 0 || i >= s.size() || j >= s[0].size()) return; if (s[i][j] == '0') return; s[i][j] = '0'; dfs(i - 1, j);

2020-09-27 20:54:25 44

原创 LeetCode62. 不同路径

//62. 不同路径class Solution {public: int uniquePaths(int m, int n) { int f[105][105] = { 0 }; f[0][1] = 1; for (int i = 1; i <= n; i++) for (int j = 1; j <= m; j++) f[i][j] = f[i - 1][j] + f[i][j - 1]; return f[n][m];

2020-09-27 20:43:46 51

原创 LeetCode215. 数组中的第K个最大元素

//215. 数组中的第K个最大元素class Solution {public: int findKthLargest(vector<int>& nums, int k) { sort(nums.begin(), nums.end()); return nums[nums.size() - k]; }};

2020-09-27 20:39:43 79

原创 LeetCode125. 验证回文串

//125. 验证回文串class Solution {public: bool isPalindrome(string s) { string ns; for (auto x : s) { if ('A' <= x && x <= 'Z')ns += (char)(x - 'A' + 'a'); else if ('a' <= x && x <= 'z') ns += x; else if

2020-09-27 20:20:35 157

原创 LeetCode67. 二进制求和

//67. 二进制求和class Solution {public: string addBinary(string a, string b) { if (a.size() < b.size()) swap(a, b); reverse(a.begin(), a.end()); reverse(b.begin(), b.end()); a += '0'; int i = 0; for (; i < b.size(); i++) {

2020-09-27 20:15:02 46

原创 LeetCode136. 只出现一次的数字

//136. 只出现一次的数字class Solution {public: int singleNumber(vector<int>& nums) { int ans = 0; for (auto x : nums) ans ^= x; return ans; }};

2020-09-27 18:30:25 46

原创 LeetCode64. 最小路径和

//64. 最小路径和class Solution {public: int minPathSum(vector<vector<int>>& grid) { if (grid.empty()) return 0; int n = grid.size(); int m = grid[0].size(); const int inf = 0x3f3f3f3f; vector<vector<int>> f(n

2020-09-27 18:26:27 51

原创 LeetCode23. 合并K个升序链表

//23. 合并K个升序链表class Solution {public: ListNode* mergeKLists(vector<ListNode*>& lists) { if (lists.empty()) return nullptr; ListNode* head = new ListNode; head->next = lists[0]; for (int i = 1; i < lists.size(); i++) {

2020-09-27 17:53:19 56

原创 LeetCode122. 买卖股票的最佳时机 II

//122. 买卖股票的最佳时机 IIclass Solution {public: int maxProfit(vector<int>& s) { int ans = 0; for (int i = 1; i < s.size(); i++) if (s[i] > s[i - 1]) ans += s[i] - s[i - 1]; return ans; }};

2020-09-27 17:15:43 46

原创 LeetCode994. 腐烂的橘子

//994. 腐烂的橘子class Solution {public: vector<vector<int>>s; vector<vector<int>>f; const int inf = 0x3f3f3f3f; int m, n; bool legal(int i, int j) { return (0 <= i && i < n && 0 <= j && j

2020-09-27 17:10:27 84

原创 LeetCode34. 在排序数组中查找元素的第一个和最后一个位置

//34. 在排序数组中查找元素的第一个和最后一个位置class Solution {public: vector<int> searchRange(vector<int>& nums, int target) { int start = lower_bound(nums.begin(), nums.end(), target) - nums.begin(); int end = upper_bound(nums.begin(), nums.end()

2020-09-26 22:59:14 55

原创 LeetCode101. 对称二叉树

//101. 对称二叉树class Solution {public: vector<vector<TreeNode*>> s; bool dfs(TreeNode* l, TreeNode* r) { if (l == NULL && r == NULL) return true; if (l == NULL || r == NULL) return false; if (l->val == r->val) retur

2020-09-26 22:55:01 49

原创 LeetCode56. 合并区间

//56. 合并区间class Solution {public: static bool cmp(vector<int>a, vector<int>b) { if (a[0] == b[0]) return a[1] > b[1]; return a[0] < b[0]; } vector<vector<int>> merge(vector<vector<int>>& s) {

2020-09-26 22:08:48 86

原创 C++关于使用memcmp判断结构体是否相等的隐患问题

memcmp基本知识memcmp就是将两个变量在底层按字节进行比较,相等返回0,不等返回非0其他详细知识可以参考大佬博客结构体structC++除了除了比较高级的class之外,还有跟他很像的struct,但是如何比较两个结构体是否相等呢(结构体的每个变量都相等),这时候很容易想到了c里面的memcmp函数。经检验,在使用memcmp比较结构体的时候,有个问题:有时候明明两个结构体的所有变量都是一样的,返回的还是非0。找到原因找了很多博客之后,都说和字节对齐有关,之前看过字节对齐,还是不懂为什

2020-09-26 18:03:20 1215

原创 LeetCode33. 搜索旋转排序数组

//LeetCode33. 搜索旋转排序数组class Solution {public: vector<int>s; int it; void dfs(int l, int r) { if (l == r) { it = l + 1; return; } int mid = (l + r) >> 1; if (s[l] <= s[mid] && s[mid + 1] <= s[r])

2020-09-26 10:07:40 95

原创 LeetCode24.两两交换链表中的节点

//LeetCode24.两两交换链表中的节点/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode* swapPairs(ListNode* head) { List

2020-09-25 22:52:05 45

原创 LeetCode55. 跳跃游戏

//LeetCode55. 跳跃游戏class Solution {public: bool canJump(vector<int>& s) { int maxlen = s[0]; int i = 1; for (; i < s.size(); i++) { if (i > maxlen) return false; maxlen = max(maxlen, i + s[i]); } return tr

2020-09-25 22:43:50 44

原创 LeetCode242. 有效的字母异位词

//LeetCode242. 有效的字母异位词class Solution {public: bool isAnagram(string s, string t) { int a[26] = { 0 }; int b[26] = { 0 }; for (int i = 0; i < s.size(); i++) a[s[i] - 'a']++; for (int i = 0; i < t.size(); i++) b[t[i]

2020-09-25 22:05:45 70

原创 LeetCode169. 多数元素

//LeetCode169. 多数元素class Solution {public: int majorityElement(vector<int>& s) { int count = 0; int temp = 0; for (int i = 0; i < s.size(); i++) { if (count == 0) { temp = s[i]; count++; } else

2020-09-25 18:08:07 46

原创 LeetCode102. 二叉树的层序遍历

//LeetCode102. 二叉树的层序遍历class Solution {public: vector<vector<int>>ans; void dfs(TreeNode* node, int n) { if (node == NULL) return; while (ans.size() <= n) ans.emplace_back(vector<int>{}); ans[n].emplace_back(node->

2020-09-25 17:41:48 72

控制器自动升级逻辑.xmind

控制器自动升级逻辑.xmind

2022-01-22

空空如也

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

TA关注的人

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