C++算法学习
一叶孤舟渡
想来杭州华为工作的可以联系我~
展开
-
创建哈希集合&哈希映射
哈希集合#define MAX_LEN 100000 // the amount of bucketsclass MyHashSet {private: vector<int> set[MAX_LEN]; // hash set implemented by array /** Returns the corresponding bucket index. */ int getIndex(int key) { retu原创 2021-03-21 11:11:44 · 232 阅读 · 0 评论 -
逆波兰表达式求值
栈class Solution {public: int evalRPN(vector<string>& tokens) { stack<int> stk; int n = tokens.size(); for (int i = 0; i < n; i++) { string& token = tokens[i]; if (isNumber(token).原创 2021-03-20 21:09:10 · 105 阅读 · 0 评论 -
找到K个最接近的元素-滑窗、二分
二分法:左闭右开class Solution {public: vector<int> findClosestElements(vector<int>& arr, int k, int x) { int left = 0; int right = arr.size() - k; while(left < right){ int mid = left + (right - left) /.原创 2021-03-20 14:24:35 · 186 阅读 · 0 评论 -
对称二叉树
/** * 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(nullptr), right(nullptr) {} *原创 2021-03-18 20:52:39 · 109 阅读 · 0 评论 -
算法-矩阵-螺旋矩阵Ⅱ(按层模拟)
// class Solution {// public:// vector<vector<int>> generateMatrix(int n) {// queue<int> que;// for(int i = 1; i <= n * n; i++){// que.push(i);// }// //新建返回数组// vector<.原创 2021-03-16 10:36:16 · 136 阅读 · 0 评论 -
算法-矩阵-螺旋矩阵(按层模拟)
class Solution {public: vector<int> spiralOrder(vector<vector<int>>& matrix) { //若空 if(matrix.size() == 0 || matrix[0].size() == 0) return {}; //行列 int rows = matrix.size(), columns = matrix[0].si.原创 2021-03-16 08:58:39 · 140 阅读 · 0 评论 -
算法-二叉树-从中序与后序遍历序列构造二叉树(递归)
/** * 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(nullptr), right(nullptr) {} *原创 2021-03-15 21:22:13 · 236 阅读 · 0 评论 -
算法-二叉树-路径总和(广度优先搜索)
/** * 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(nullptr), right(nullptr) {} *原创 2021-03-15 18:24:52 · 142 阅读 · 0 评论 -
算法-二叉树-层序遍历(广度优先搜索)
利用队列先入先出的特点,从根节点开始,循环遍历二叉树每一层。/** * 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(原创 2021-03-15 09:15:44 · 194 阅读 · 0 评论