自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

湖人名宿Onebear的博客

脚踏实地,仰望星空

  • 博客(118)
  • 收藏
  • 关注

原创 Webstorm配置nodemon启动

Node parameters换成nodemon的安装路径,一般nodemon都是会选择全局。运行程序 shift+F10 或者鼠标点击,此时就能显示是nodemon启动的了。安装,因此在全局的node包目录下。编辑配置信息,主要是添加。右上角,程序运行配置。

2023-04-13 15:26:02 520 1

原创 switchyomega插件快速配置

简单来说,就是当访问列表中的网址的时候,将切换为proxy模式。其次配置auto switch情景模式,这也是插件的核心功能。就只使用默认的两个情景模式。首先配置proxy情景模式。修改proxy服务器为。

2023-04-12 21:56:27 4143 2

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

给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”来源:力扣(LeetCode)链接:https://leetcode.cn/problems/lowest-common-ancestor-of-a-binary-tree著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。...

2022-05-20 22:26:56 187

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

2022-05-03 11:55:29 531

原创 202. 快乐数

快乐数思路:代码:class Solution {public: int getSum(int n){ int sum = 0; while(n){ sum += (n % 10) * (n %10); n /= 10; } return sum; } bool isHappy(int n) { // 定义快慢指针 int.

2022-03-04 17:01:47 58

原创 面试题 02.07. 链表相交

/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) {.

2022-02-27 21:22:50 60

原创 19. 删除链表的倒数第 N 个结点

/** * 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.

2022-02-26 22:58:38 448

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

/** * 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.

2022-02-26 22:22:37 603

原创 剑指 Offer 31. 栈的压入、弹出序列

思路K神的,模拟栈作者:jyd链接:https://leetcode-cn.com/problems/zhan-de-ya-ru-dan-chu-xu-lie-lcof/solution/mian-shi-ti-31-zhan-de-ya-ru-dan-chu-xu-lie-mo-n-2/来源:力扣(LeetCode)著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。class Solution {public: bool validateStackSequenc.

2021-10-09 16:40:23 47

原创 剑指 Offer 62. 圆圈中最后剩下的数字——约瑟夫环

思路作者:sweetieeyi链接:https://leetcode-cn.com/problems/yuan-quan-zhong-zui-hou-sheng-xia-de-shu-zi-lcof/solution/javajie-jue-yue-se-fu-huan-wen-ti-gao-su-ni-wei-sh/来源:力扣(LeetCode)著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。class Solution {public: int lastRem.

2021-10-08 12:50:58 54

原创 剑指 Offer 57 - II. 和为s的连续正数序列

思路解一下K神的图作者:jyd链接:https://leetcode-cn.com/problems/he-wei-sde-lian-xu-zheng-shu-xu-lie-lcof/solution/jian-zhi-offer-57-ii-he-wei-s-de-lian-xu-t85z/来源:力扣(LeetCode)著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。class Solution {public: vector<vector<int.

2021-10-08 11:02:49 36

原创 剑指 Offer 14- I. 剪绳子

思路class Solution {public: int cuttingRope(int n) { if (n<4) return n-1;// n=2,返回1, n=3, 返回2 int k = n / 3; int res; if(n%3==1){ res = pow(3, k-1) * 2 * 2; }else if (n%3==2){ res = .

2021-10-08 10:02:57 40

原创 剑指 Offer 66. 构建乘积数组

思路根据表格的主对角线(全为 1),可将表格分为 上三角 和 下三角 两部分。分别迭代计算下三角和上三角两部分的乘积,即可获得结果。作者:jyd链接:https://leetcode-cn.com/problems/gou-jian-cheng-ji-shu-zu-lcof/solution/mian-shi-ti-66-gou-jian-cheng-ji-shu-zu-biao-ge-fe/来源:力扣(LeetCode)著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。.

2021-10-07 20:08:35 41

原创 剑指 Offer 39. 数组中出现次数超过一半的数字

思路1 排序由于最多的数字 出现的次数超过了数组长度的一半,因此排序之后正中间的数字就是这个众数一定要记住快排模板。很遗憾,当数字很长的时候,超过时间限制了 = =class Solution {public: // 排序 int majorityElement(vector<int>& nums) { quickSort(nums,0,nums.size()-1); return nums[nums.size()/2]; .

2021-10-07 16:57:48 48

原创 剑指 Offer 54. 二叉搜索树的第k大节点

/** * 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: vector<int> res; int

2021-10-07 16:11:05 41

原创 2021-10-06

思路1 哈希哈希,简单是简单,就是怕面试挂的太快class Solution {public: int singleNumber(vector<int>& nums) { // B A B C C B C // 哈希 unordered_map<int, int> dic; for(int num:nums){ dic[num]++; } .

2021-10-06 18:24:45 56

原创 剑指 Offer 56 - I. 数组中数字出现的次数

思路class Solution {public: vector<int> singleNumbers(vector<int>& nums) { // 1 求异或和,其结果也就是两个不同数的异或结果 int xorsum = 0; for(auto num:nums){ xorsum ^= num; } // 2 建立mask (one-hot), 找到.

2021-10-06 17:06:43 38

原创 剑指 Offer 65. 不用加减乘除做加法

写在那面计算机位运算相关概念举例推演上面的结论:

2021-10-04 12:25:38 80

原创 剑指 Offer 15. 二进制中1的个数

写在前面关于 Brian Kernighan 算法,可以查看这篇博客https://www.cnblogs.com/jerryfish/p/15307637.html它用于将一个二进制数最右边的1变为0算法核心就是 n & (n-1),其中&就是按位与题目class Solution {public: int hammingWeight(uint32_t n) { int res = 0; while(n){ n

2021-10-04 10:01:02 46

原创 剑指 Offer 33. 二叉搜索树的后序遍历序列

class Solution {public: bool verifyPostorder(vector<int>& postorder) { // 后序遍历中倒数第一个结点为根节点root // 如果是二叉搜索树的后序(根据左小右大,并且后序先左后右) // 那么遍历结果存在一个拐点k,k之前都小于root,从k开始都大于root // 如果从k开始到root之前的结点,存在小于root的结点,那就返回false.

2021-10-03 14:15:00 48

原创 剑指 Offer 16. 数值的整数次方

关于快速幂下面的图来自于K神简而言之求n的二进制,如果当前位(n&1)为1,那么就可以相乘,否则x不断乘以本身,x^2, x^4, x^8…直到n二进制某位为1,就可以进行相乘。class Solution {public: double myPow(double x, int n) { if(n==0 || x==1) return 1; if(n==1) return x; // 题目给出的n的范围很大,为防止溢出,将其变为lon

2021-10-03 11:25:02 33

原创 剑指 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* lowestCommonAncestor.

2021-10-02 12:07:25 47

原创 剑指 Offer 64. 求1+2+…+n

思路本来是可以用等差数列,一步到位。return n*(1+n)/2但是题目规定了不能用乘除法。于是想到递归。递归的思路如下: if(n=1) return n; else // 隐形条件就是n>1 return n+sumNums(n-1);但是题目规定了不能用if,所以就用逻辑短路 n>1 && n += sumNums(n-1); // 只有当n>1时会进行递归 return n;解答代码如下:class Solution {.

2021-10-02 10:23:47 47

原创 剑指 Offer 55 - 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: int maxDepth(TreeNode* root) {.

2021-10-01 10:20:07 41

原创 剑指 Offer 41. 数据流中的中位数(优先队列-堆)

写在前面先了解一下priority_queue而它的底层实际上就是用堆(Heap)实现的C++关于Priority_queue的实现#include<iostream>#include<queue>#include<vector>#include<algorithm>using namespace std;int main(){ priority_queue<int> heap0; // 默认 prior

2021-09-30 20:30:38 111

原创 剑指 Offer 45. 把数组排成最小的数

作者:jyd链接:https://leetcode-cn.com/problems/ba-shu-zu-pai-cheng-zui-xiao-de-shu-lcof/solution/mian-shi-ti-45-ba-shu-zu-pai-cheng-zui-xiao-de-s-4/来源:力扣(LeetCode)著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。多写写快排算法,注意有递归就得有返回条件class Solution {public: string m..

2021-09-29 11:41:43 29

原创 剑指 Offer 34. 二叉树中和为某一值的路径

按模板,1,2,3,4步,可以查看代码随想录中的回溯精讲/** * 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(n.

2021-09-28 12:01:54 28

原创 剑指 Offer 36. 二叉搜索树与双向链表

作者:logilong链接:https://leetcode-cn.com/problems/er-cha-sou-suo-shu-yu-shuang-xiang-lian-biao-lcof/solution/offer36er-cha-sou-suo-shu-yu-shuang-xian-1ant/来源:力扣(LeetCode)著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。/*// Definition for a Node.class Node {public:.

2021-09-28 11:57:44 41

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

写在前面之前也写过类似的https://blog.csdn.net/qq_42133142/article/details/111594025上代码递归四个方向(与第二十题类似)class Solution {public: int movingCount(int m, int n, int k) { vector<vector<int>> visit(m, vector<int>(n)); return dfs(vi

2021-09-27 10:17:42 30

原创 剑指 Offer 12. 矩阵中的路径

写在前面之前写过一篇类似的https://blog.csdn.net/qq_42133142/article/details/111560333这个代码只能通过一半,思考了半天搞不明白,求大佬解答class Solution {public: bool exist(vector<vector<char>>& board, string word) { int len = 0; // 记录当前匹配长度 for(int

2021-09-27 09:48:48 28

原创 剑指 Offer 21. 调整数组顺序使奇数位于偶数前面

思路双指针,(类似于快排的两个指针 = =)class Solution {public: vector<int> exchange(vector<int>& nums) { int i = 0, j = nums.size()-1; while(i<j){ while(j>=0 && nums[j]%2==0){ // 加入是否越界判断 .

2021-09-26 15:51:24 31

原创 剑指 Offer 57. 和为s的两个数字

思路双指针,大了往左,小了往右class Solution {public: vector<int> twoSum(vector<int>& nums, int target) { vector<int> res; int i = 0, j = nums.size()-1; while(i<j){ int sum = nums[.

2021-09-26 15:49:16 29

原创 剑指 Offer 58 - I. 翻转单词顺序

字符串模板代码这类题目我的惯常做法,也是核心思想,就是先把句子中所有字符串取出放入字符串数组,再对数组中的字符串进行操作后重新连接即可,具体问题具体细节还需要按题目要求分析而遍历句子取字符串的思路,就是遇到字符把它放入临时字符串,遇到空格或者标点(如果有标点),就把临时字符串输出,并且清空需要注意的是这类题目可以分为两类,一类是有前置或者后置空格的,另一类是没有前置和后置空格的。1、如果有前后置空格,那么必须判断临时字符串非空才能输出,否则会输出空串 s += " "; //这里在最后一.

2021-09-26 15:45:16 29

原创 剑指 Offer 52. 两个链表的第一个公共节点

思路:由于两条链表在相交节点后面的部分完全相同,因此我们可以先对两条链表进行遍历,分别得到两条链表的长度,并计算差值 d。让长度较长的链表先走 d 步,然后两条链表同时走,第一个相同的节点即是节点作者:AC_OIer链接:https://leetcode-cn.com/problems/liang-ge-lian-biao-de-di-yi-ge-gong-gong-jie-dian-lcof/solution/gong-shui-san-xie-zhao-liang-tiao-lian-b-if.

2021-09-25 23:27:21 62

原创 剑指 Offer 25. 合并两个排序的链表

/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) { ListN.

2021-09-25 21:51:05 31

原创 剑指 Offer 18. 删除链表的节点

思路: 就是正常思路。建立头结点是为了统一(如果第一个结点head就是需要删除的,那么可能需要分情况讨论。有了头节点就可以统一了)/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: L.

2021-09-24 15:34:59 29

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

思路1:使用栈(内存大)/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution{public: ListNode* getKthFromEnd(ListNode* head, int k) { .

2021-09-24 15:32:33 26

原创 剑指 Offer 46. 把数字翻译成字符串

思路:作者:xiao_ben_zhu链接:https://leetcode-cn.com/problems/ba-shu-zi-fan-yi-cheng-zi-fu-chuan-lcof/solution/shou-hui-tu-jie-dfsdi-gui-ji-yi-hua-di-gui-dong-ta/来源:力扣(LeetCode)著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。class Solution {public: int translateNum(i.

2021-09-23 20:44:59 35

原创 剑指 Offer 47. 礼物的最大价值

思路转移方程:dp[i][j] = max(dp[i-1][j], dp[i][j-1]) + grid[i-1][j-1];走到当前格时累计礼物最大价值为 走到**当前格的左一格(dp[i][j-1])或上一格(dp[i-1][j])时累计礼物最大价值加上当前格礼物(grid[i-1][j-1])**的价值dp从(1,1)开始索引,这样确保第一个值等于grid中的第一个值。这也是为什么dp数组要进行扩容class Solution {public: int maxValue(vec.

2021-09-22 14:30:22 33

原创 剑指 Offer 42. 连续子数组的最大和

class Solution {public: int maxSubArray(vector<int>& nums) { // 1. 确定dp数组以及下标含义 // dp[i] 是指截至到i元素出现的最大和 // 2. 状态转移方程 // 加上nums[i] or 重新开始 // dp[i] = max(dp[i-1]+nums[i], nums[i]); // res = .

2021-09-22 11:08:33 47

空空如也

空空如也

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

TA关注的人

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