剑指offer
qq_1213701132
这个作者很懒,什么都没留下…
展开
-
剑指 Offer 35. 复杂链表的复制
参考原创 2020-09-02 14:19:41 · 78 阅读 · 0 评论 -
剑指 Offer 34. 二叉树中和为某一值的路径
class Solution { vector<vector<int>> res; void bacttrack(vector<int>& track,int sum,TreeNode* root){ if(!root) return ; track.push_back(root->val); sum-=root->val; if(sum==0 &.原创 2020-09-02 14:07:10 · 77 阅读 · 0 评论 -
剑指 Offer 33. 二叉搜索树的后序遍历序列
class Solution { bool recur(vector<int> postorder,int i,int j){ if(i>=j) return true; int p=i; while(postorder[p]<postorder[j]) ++p; int m=p; //寻找 第一个大于根节点 的节点,位置为m while(pos.原创 2020-09-02 11:01:03 · 85 阅读 · 0 评论 -
剑指 Offer 32 - III. 从上到下打印二叉树 III
class Solution {public: vector<vector<int>> levelOrder(TreeNode* root) { vector<vector<int>> res; if(!root) return res; //空树 queue<TreeNode*> q; q.push(root); bool flag=true; .原创 2020-09-01 21:06:14 · 80 阅读 · 0 评论 -
剑指 Offer 32 - II. 从上到下打印二叉树 II
参考原创 2020-09-01 21:00:06 · 83 阅读 · 0 评论 -
剑指 Offer 32 - I. 从上到下打印二叉树
class Solution {public: vector<int> levelOrder(TreeNode* root) { vector<int> res; if(!root) return res; queue<TreeNode*> q; q.push(root); while(!q.empty()){ int n=q.siz.原创 2020-09-01 20:55:11 · 89 阅读 · 0 评论 -
剑指 Offer 31. 栈的压入、弹出序列
class Solution {public: bool validateStackSequences(vector<int>& pushed, vector<int>& popped) { stack<int> st; int pos=0; //出栈位置 for(int i=0;i<pushed.size();i++){ st.push(pushed[i]); /.原创 2020-09-01 20:44:13 · 79 阅读 · 0 评论 -
剑指 Offer 30. 包含min函数的栈
参考原创 2020-09-01 20:15:53 · 82 阅读 · 0 评论 -
剑指 Offer 29. 顺时针打印矩阵
参考原创 2020-09-01 20:14:43 · 77 阅读 · 0 评论 -
剑指 Offer 28. 对称的二叉树
参考原创 2020-09-01 20:13:26 · 67 阅读 · 0 评论 -
剑指 Offer 27. 二叉树的镜像
参考原创 2020-09-01 20:12:16 · 66 阅读 · 0 评论 -
剑指 Offer 26. 树的子结构
class Solution { bool isSameTree(TreeNode* A,TreeNode* B){ if(!B) return true; if(!A || A->val != B->val) return false; return isSameTree(A->left,B->left) && isSameTree(A->right,B-.原创 2020-09-01 20:10:36 · 69 阅读 · 0 评论 -
剑指 Offer 25. 合并两个排序的链表
参考原创 2020-08-23 15:51:40 · 82 阅读 · 0 评论 -
剑指 Offer 24. 反转链表
参考原创 2020-08-23 15:36:48 · 65 阅读 · 0 评论 -
剑指 Offer 22. 链表中倒数第k个节点
/** * 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) { ListNode*p.原创 2020-08-23 15:23:05 · 68 阅读 · 0 评论 -
剑指 Offer 21. 调整数组顺序使奇数位于偶数前面
class Solution {public: vector<int> exchange(vector<int>& nums) { vector<int> res; vector<int> ou; for(int i=0;i<nums.size();i++){ if(nums[i]%2==1) res.push_back(num.原创 2020-08-23 15:18:34 · 108 阅读 · 0 评论 -
剑指 Offer 20. 表示数值的字符串
class Solution {public: bool sacnUnsigned(string s,int& index){ //扫描无符号整数 int start=index; while(index<s.size() && s[index]>='0' && s[index]<='9') ++index; return index > start; .原创 2020-08-23 15:04:49 · 72 阅读 · 0 评论 -
剑指 Offer 19. 正则表达式匹配
参考原创 2020-08-22 21:33:58 · 69 阅读 · 0 评论 -
剑指 Offer 18. 删除链表的节点
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode* deleteNode(ListNode* head, int val) { if(head->.原创 2020-08-22 21:31:18 · 96 阅读 · 0 评论 -
剑指 Offer 17. 打印从1到最大的n位数
class Solution {public: vector<int> printNumbers(int n) { vector<int> res; int max=1; for(int i=0;i<n;i++){ max*=10; } for(int i=1;i<max;i++){ res.push_back(i); .原创 2020-08-22 21:05:50 · 74 阅读 · 0 评论 -
剑指 Offer 16. 数值的整数次方
参考原创 2020-08-22 11:35:08 · 77 阅读 · 0 评论 -
剑指 Offer 15. 二进制中1的个数
class Solution {public: int hammingWeight(uint32_t n) { int res=0; while(n>0){ ++res; n&=(n-1); } return res; }};原创 2020-08-22 11:27:40 · 72 阅读 · 0 评论 -
剑指 Offer 14- II. 剪绳子 II
这题与上一题不同,不能用动态规划,数组会越界,要有大数的处理。尽可能将绳子以长度 33 等分为多段时,乘积最大。class Solution {public: int cuttingRope(int n) { if(n<=3) return n-1; long res=1; while(n>4){ res=res*3%1000000007; n-=3; .原创 2020-08-22 11:25:14 · 64 阅读 · 0 评论 -
剑指 Offer 14- I. 剪绳子
参考原创 2020-08-22 11:00:37 · 61 阅读 · 0 评论 -
剑指 Offer 13. 机器人的运动范围
class Solution {public: int res=0; int dirs[4][2]={{1,0},{-1,0},{0,1},{0,-1}}; //方向数组 int cnt(int x){ //计算整数各位和 int res=0; while(x>0){ res+=x%10; x/=10; } return res; } vo.原创 2020-08-22 10:33:36 · 70 阅读 · 0 评论 -
剑指 Offer 12. 矩阵中的路径
参考原创 2020-08-22 09:47:50 · 67 阅读 · 0 评论 -
剑指 Offer 11. 旋转数组的最小数字
class Solution {public: int minArray(vector<int>& numbers) { int res=INT_MAX; for(int i=0;i<numbers.size();i++){ if(numbers[i]<res) res=numbers[i]; } return res; }};二分.原创 2020-08-22 09:46:02 · 67 阅读 · 0 评论 -
剑指 Offer 10- II. 青蛙跳台阶问题
参考class Solution {public: //const int m=1e9+7; int numWays(int n) { if(n<2) return 1; vector<int> dp(n+1); dp[0]=dp[1]=1; for(int i=2;i<=n;i++){ dp[i]=(dp[i-1]+dp[i-2])% 1000000.原创 2020-08-21 16:21:01 · 81 阅读 · 0 评论 -
剑指 Offer 10- I. 斐波那契数列
class Solution {public: //const int m=1e9+7; int fib(int n) { if(n<2) return n; vector<int> dp(n+1,0); dp[1]=1; for(int i=2;i<=n;i++) dp[i]=(dp[i-1]+dp[i-2]) % 1000000007; //dp.原创 2020-08-21 16:06:35 · 80 阅读 · 0 评论 -
剑指 Offer 09. 用两个栈实现队列
参考class CQueue {private: stack<int> s1; //队列 stack<int> s2; //栈public: CQueue() { } void appendTail(int value) { while(!s1.empty()){ //将队列顺序内容以栈顺序进入s2 s2.push(s1.top()); s1.pop(); .原创 2020-08-21 15:53:46 · 70 阅读 · 0 评论 -
剑指 Offer 07. 重建二叉树
参考原创 2020-08-21 15:14:03 · 82 阅读 · 0 评论 -
剑指 Offer 06. 从尾到头打印链表
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: vector<int> reversePrint(ListNode* head) { vector<.原创 2020-08-21 15:03:28 · 86 阅读 · 0 评论 -
剑指 Offer 05. 替换空格
class Solution {public: string replaceSpace(string s) { for(int i=0;i<s.size();i++){ if(s[i]==' '){ s.replace(i,1,"%20"); } } return s; }};原创 2020-08-21 15:00:42 · 144 阅读 · 0 评论 -
剑指 Offer 04. 二维数组中的查找
class Solution {public: bool findNumberIn2DArray(vector<vector<int>>& matrix, int target) { for(int i=0;i<matrix.size();i++){ for(int j=0;j<matrix[0].size();j++){ if(matrix[i][j]==target) .原创 2020-08-21 14:53:25 · 98 阅读 · 0 评论 -
剑指 Offer 03. 数组中重复的数字
class Solution {public: int findRepeatNumber(vector<int>& nums) { vector<int> hash(nums.size()); for(int i=0;i<nums.size();i++){ if(++hash[nums[i]] == 2) return nums[i]; } .原创 2020-08-21 14:49:25 · 65 阅读 · 0 评论