- 博客(21)
- 收藏
- 关注
原创 二叉树的层次遍历
二叉树的层次遍历主要用到了队列。先将根节点放入队列,节点出队,打印节点若该节点有子节点,则子节点入队队首出队,打印节点,若该节点有子节点,则子节点入队,直到队列为空void Level(TreeNode* root){ queue<TreeNode*> q; if(root==NULL) return; q.push(root);...
2019-09-09 23:30:56
236
原创 根据层次遍历重建完全二叉树
#include<iostream>#include<vector>#include<math.h>using namespace std;struct TreeNode{ int val; TreeNode* left; TreeNode* right; TreeNode(int x) : val(x), left(...
2019-09-09 22:38:19
1223
原创 链表环的相关题目
判断链表是否有环可用快慢指针的方法来判断。慢指针每走一步,快指针走两步,若两者能够相遇则有环。/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {...
2019-09-08 13:01:40
187
原创 删除链表倒数第k个节点
此题要注意的是,需要预先建立一个下一个元素指向head的链表,同时本题返回值也是该链表的下一个元素而不能直接返回head。如:链表为 [1] 时,删除倒数第一个节点,应得空链表,如果返回head,则会输出 [1],即第一个节点的值。/** * Definition for singly-linked list. * struct ListNode { * int val; * ...
2019-09-07 06:34:13
133
原创 反转链表
反转链表难处在三指针滑动的逻辑,可参考博文:图解反转单向链表/*struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { }};*/class Solution {public: ListNode* ReverseList(ListNode* pH...
2019-09-07 04:33:24
120
原创 n个数中选m个数组合
#include<iostream>#include<vector>using namespace std;void GetCombinations(int n,int m,vector<int> &result){ if(m==0) { for(auto x:result) cout&l...
2019-09-06 20:01:40
604
原创 二叉树的重建
#include<iostream>#include<vector>using namespace std;struct TreeNode { int val; TreeNode *left; TreeNode *right; TreeNode(int x) : val(x), left(NU...
2019-09-06 14:41:41
118
原创 Top-K问题之堆排序
堆排序可将top-k时间复杂度降到O(n*logk)。#include<iostream>#include<vector>using namespace std; // 递归方式构建大根堆(len是arr的长度,index是第一个非叶子节点的下标)void adjust(vector<int> &arr, int len, int index...
2019-09-03 02:45:53
251
原创 24点程序记录
#include<iostream>#include<vector>using namespace std;bool is24(vector<double> a, int tot, double result){ if(a.empty()) { return result==tot; } for(int i...
2019-08-29 16:53:47
289
原创 爬楼梯问题以及硬币问题
爬楼梯问题为:有三种爬楼梯方式,你可以一次上1个台阶,可以一次上2个台阶,也可以一次上3个台阶。问对于一个100级台阶,有多种爬楼梯方法?硬币问题为:现有1分、2分、5分硬币,问有多少种方法凑出1元钱?乍看这两道题很相似,其实爬楼梯问题为排列问题,而硬币问题为组合问题。如:4个台阶可由 [ 1 1 1 1 ] [ 1 1 2 ] [ 1 2 1] [ 2 1 1] [ 2 2 ] 组成;4...
2019-08-29 15:00:42
477
原创 01背包问题
原始状态转移式为:f[i][j]=max(f[i][j],f[i-1][j-w[i]+v[i])i表示是否放入第i个物品,j表示此时背包已占有容量。max()第一个参数表示背包已满,放不下第i个物品,第二个参数表示背包正好能容纳第i个物品。由于不放入第i个物品时,背包总价值等于上一个状态,即放与不放第i-1个物品的最大值。由此可得:if(不放第i个物品) f[i][j]=f[i-1]...
2019-08-29 01:35:45
143
原创 栈进栈出 - 逆波兰表示法计算包含括号的四则运算
华为面试时被问到如何计算包含括号的四则运算,现在做一个规范总结。#include <iostream>#include <vector>#include <stack>using namespace std;vector<char> CovToPol(const vector<char> &str){ sta...
2019-08-28 13:53:23
342
原创 字节跳动提前批后端开发工程师一面
本次面试内容主要包括C++基础知识、操作系统、计算机网络、数据结构与算法。这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富...
2019-07-16 11:35:57
1004
原创 MySQL创建用户
本文将创建三种不同的用户,并且以三种不同的方式进行连接: - 从本地机器连接 - 从IP地址在192.168.0.0 ~ 192.168.0.255范围内的任何机器连接 - 从wiley.com域中的任何机器连接
2017-06-30 20:17:12
574
原创 Linux初步认识
Linux在硬件开发,服务器架设中使用广泛,学习Linux对于未来的职业发展相信会有很大帮助。对于初学者来说学习Linux可能会把握不住方向,同时为了加强自身记忆,在此把我的学习过程记录下来以便未来查询,同时供大家参考。
2017-06-28 14:36:42
720
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人