自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(57)
  • 资源 (2)
  • 收藏
  • 关注

原创 买卖股票的最佳时机 I II III IV动态规划 C++

优秀解答: https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-iii/solution/yi-ge-tong-yong-fang-fa-tuan-mie-6-dao-gu-piao-wen/不可重复购买,非动态规划 ,维持两个变量,一个是之前的最小值(高买低卖),一个是得到的最大的返回值。int maxProfi...

2019-12-09 13:37:24 368

原创 二叉树的前序 中序 后续 递归与非递归 C++

#include <iostream>#include<vector>#include<stack>#include<algorithm>#include<set>#include<set>#include<queue>#include<map>#include<unordered...

2019-12-05 19:51:44 202

原创 阿里云或者华为云装python3(记录一下 防止再踩坑)

sudo add-apt-repository ppa:jonathonf/python-3.6sudo apt-get updatesudo apt-get install python3.6sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.5 1sudo update-alterna...

2019-12-04 10:30:13 384

转载 [c++]--c++后台面试总结干货

转载来源 http://blog.csdn.net/shanghairuoxiao/article/details/72876248C和C++语言基础参考书籍:《C++ primer》,《effective C++》,《STL源码解析》,《深度搜索C++对象模型》extern关键字作用extern声明变量在在外部定义?extern修饰函数?extern C的作用?用法?static关...

2019-11-15 09:47:54 317

原创 654. 最大二叉树 C++

给定一个不含重复元素的整数数组。一个以此数组构建的最大二叉树定义如下:二叉树的根是数组中的最大元素。左子树是通过数组中最大值左边部分构造出的最大二叉树。右子树是通过数组中最大值右边部分构造出的最大二叉树。通过给定的数组构建最大二叉树,并且输出这个树的根节点。示例 :输入:[3,2,1,6,0,5]输出:返回下面这棵树的根节点: 6/ \3 5\ /2 ...

2019-10-16 19:30:29 270

原创 21. 合并两个有序链表

将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4简单题 注意 不修改 内存,只修改指针就行了。 ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) { ...

2019-10-16 15:25:09 97

原创 23. 合并K个排序链表

合并 k 个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。示例:输入:[1->4->5,1->3->4,2->6]输出: 1->1->2->3->4->4->5->6这种题目用堆来解决。堆的大小为数组链表的大小,当堆顶元素所在的那个链表到达顶端的时候,堆的大小进行缩小,知道堆为空。建立小堆顶,需要...

2019-10-16 15:03:57 107

原创 789. 逃脱阻碍者

在进行一个简化版的吃豆人游戏。你从 (0, 0) 点开始出发,你的目的地是 (target[0], target[1]) 。地图上有一些阻碍者,第 i 个阻碍者从 (ghosts[i][0], ghosts[i][1]) 出发。每一回合,你和阻碍者们可以同时向东,西,南,北四个方向移动,每次可以移动到距离原位置1个单位的新位置。如果你可以在任何阻碍者抓住你之前到达目的地(阻碍者可以采取任意行动...

2019-10-15 18:39:12 116

原创 1011. 在 D 天内送达包裹的能力 C++

传送带上的包裹必须在 D 天内从一个港口运送到另一个港口。传送带上的第 i 个包裹的重量为 weights[i]。每一天,我们都会按给出重量的顺序往传送带上装载包裹。我们装载的重量不会超过船的最大运载重量。返回能在 D 天内将传送带上的所有包裹送达的船的最低运载能力。示例 1:输入:weights = [1,2,3,4,5,6,7,8,9,10], D = 5输出:15解释:船舶最低...

2019-10-09 17:24:05 219 1

原创 846. 一手顺子 C++

爱丽丝有一手(hand)由整数数组给定的牌。现在她想把牌重新排列成组,使得每个组的大小都是 W,且由 W 张连续的牌组成。如果她可以完成分组就返回 true,否则返回 false。这题用了 一map,map 排序字典,key 为数字,值为数字出现的次数,由于是排序的,只需要在字典中每W个遍历,出现一次value 就减少1,如果出现 不连续,那就输出false。bool isNStr...

2019-10-09 15:56:50 216

原创 917. 仅仅反转字母 C++ 两种写法

给定一个字符串 S,返回 “反转后的” 字符串,其中不是字母的字符都保留在原地,而所有字母的位置发生反转。双指针,一个从前往后记录位置,一个从后往前记录字母。string reverseOnlyLetters(string S) { int i = 0, j = S.size() - 1; string new_string = ""; while (i < S.size()) ...

2019-10-09 10:25:10 482

原创 107. 二叉树的层次遍历 II 递归 与非递归

给定一个二叉树,返回其节点值自底向上的层次遍历。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)递归写法:vector<vector<int>> res;void dfs(TreeNode* root, int n){ if (root == NULL) return; else { if (n >= res.size()) {...

2019-10-06 21:37:37 141

原创 637. 二叉树的层平均值 C++

给定一个非空二叉树, 返回一个由每层节点平均值组成的数组.简单题 层次遍历vector<double> averageOfLevels(TreeNode* root) { vector<double>res; if (root == NULL) return res; else { queue<TreeNode *>temp; te...

2019-10-06 20:39:43 361 2

原创 897. 递增顺序查找树 重新构建树与修改原树指针 C++

给定一个树,按中序遍历重新排列树,使树中最左边的结点现在是树的根,并且每个结点没有左子结点,只有一个右子结点。直接中序遍历构造一颗新树,这个最简单,注意找到第一个根节点就行了。TreeNode* increasingBST(TreeNode* root){ if (root == nullptr) return nullptr; else { stack<TreeNo...

2019-10-06 19:44:20 161

原创 669. 修剪二叉搜索树 C++递归

给定一个二叉搜索树,同时给定最小边界L 和最大边界 R。通过修剪二叉搜索树,使得所有节点的值在[L, R]中 (R>=L) 。你可能需要改变树的根节点,所以结果应当返回修剪好的二叉搜索树的新的根节点。递归写法,非递归暂时没写,当根节点的值小于L时,代表左子树所有节点的值,和根节点都需要舍去,同理当根节点的值大于R时,右子树所有节点的值和根节点的值都需要舍去。TreeNode* tri...

2019-10-06 11:22:25 190

原创 965. 单值二叉树 C++ 递归与非递归

如果二叉树每个节点都具有相同的值,那么该二叉树就是单值二叉树。只有给定的树是单值二叉树时,才返回 true;否则返回 false。bool isUnivalTree(TreeNode* root)//递归写法{ if (root == NULL) return 1; else { if (!root->left && !root->right)...

2019-10-06 10:47:09 211

原创 559. N叉树的最大深度 C++ 递归 与非递归

一般看到树 ,就喜欢递归。 参考二叉树的最大深度。int maxDepth(Node* root) { if (root == NULL) return 0; else { int Max = 0; for (auto i = 0; i < root->children.size(); i++) Max = max(Max, maxDepth(root...

2019-10-06 10:15:59 215

原创 108. 将有序数组转换为二叉搜索树 递归写法与非递归写法

将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。这种题目一看 有序,自然反应就该是二分法。中间节点作为当前树的根节点,左边有序为左子树,右边有序为右子树,这样就能保证左子树右子树的节点个数基本一致,在重复构建左子树和右子树就行了 。Tips:一颗二叉搜索树的中序遍历一定是递增的。 Tr...

2019-10-05 20:47:04 287

原创 合并二叉树

给定两个二叉树,想象当你将它们中的一个覆盖到另一个上时,两个二叉树的一些节点便会重叠。你需要将他们合并为一个新的二叉树。合并的规则是如果两个节点重叠,那么将他们的值相加作为节点合并后的新值,否则不为 NULL 的节点将直接作为新二叉树的节点。递归写法: TreeNode* mergeTrees(TreeNode* t1, TreeNode* t2) { ...

2019-10-02 10:22:02 107

原创 96. 不同的二叉搜索树 C++代码

给定一个整数 n,求以 1 … n 为节点组成的二叉搜索树有多少种?示例:输入: 3输出: 5解释:给定 n = 3, 一共有 5 种不同结构的二叉搜索树:1 3 3 2 1\ / / / \ 3 2 1 1 3 2...

2019-09-29 09:41:06 200

原创 判断B是否是A的子树 用了递归加先序遍历的非递归

#include <iostream> #include<string>#include<vector>#include<algorithm>#include<stdlib.h>#include<unordered_map>#include<set> #include<stack>#in...

2019-09-24 14:20:00 184

原创 二叉树的先序遍历 中序遍历 后续遍历 递归与非递归

#include <iostream> #include<string>#include<vector>#include<algorithm>#include<stdlib.h>#include<unordered_map>#include<set> #include<stack>#i...

2019-09-24 10:20:41 107

原创 114. 二叉树展开为链表 C++

给定一个二叉树,原地将它展开为链表。例如,给定二叉树看其他题解,说什么后续遍历,没怎么理解,一般做树这种东西,我都喜欢用递归。简单思路: 先把左子树搞成全部是右节点,再把右子树搞成全部是右节点,然后把左子树安到右子树,将左子树 搞成空的。 且每次返回都返回最后一个有叶子节点。TreeNode* DFS(TreeNode* root)//返回排好的树的右节点{ if (root =...

2019-08-16 12:09:01 178

原创 257. 二叉树的所有路径 c++

给定一个二叉树,返回所有从根节点到叶子节点的路径。说明: 叶子节点是指没有子节点的节点。示例:递归遍历,一个to_string(int )函数想了 好长时间,后来 发现 还是用string类自带的吧。class Solution {public: vector<vector<int>> res; vector<int> temp; void S...

2019-08-15 22:30:45 239

原创 113. 路径总和 II C++ 递归

给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径。说明: 叶子节点是指没有子节点的节点。示例:给定如下二叉树,以及目标和 sum = 22,递归 要注意终止条件,以及 缓存数组中什么时候进入元素 和出元素。及到该节点的时候,该节点的数值进入数组,当左子树和右子树搜索完毕的时候,当前节点值出缓存数组。class solution{ vector&...

2019-08-15 22:04:32 189

原创 112. 路径总和 C++

定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。说明: 叶子节点是指没有子节点的节点。示例:给定如下二叉树,以及目标和 sum = 22,返回 true, 因为存在目标和为 22 的根节点到叶子节点的路径 5->4->11->2。递归。bool hasPathSum(TreeNode* root, int su...

2019-08-15 21:09:17 199

原创 110. 平衡二叉树 C++递归

给定一个二叉树,判断它是否是高度平衡的二叉树。本题中,一棵高度平衡二叉树定义为:一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1。示例 1:给定二叉树 [3,9,20,null,null,15,7]3/ 9 20/ 15 7返回 true 。示例 2:给定二叉树 [1,2,2,3,3,null,null,4,4] 1 / \ 2 2 / \...

2019-08-15 17:41:47 194

原创 637. 二叉树的层平均值 递归写法 c++

给定一个非空二叉树, 返回一个由每层节点平均值组成的数组.示例 1:输入:3/ 9 20/ 15 7输出: [3, 14.5, 11]解释:第0层的平均值是 3, 第1层是 14.5, 第2层是 11. 因此返回 [3, 14.5, 11].class Solution{public: vector<pair<double,int>> ...

2019-08-15 16:31:57 218

原创 101. 对称二叉树 C++

Leetcode:https://leetcode-cn.com/classic/problems/symmetric-tree/description/给定一个二叉树,检查它是否是镜像对称的。例如,二叉树 [1,2,2,3,4,4,3] 是对称的。1/ 2 2/ \ / 3 4 4 3但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的:1...

2019-08-15 10:55:46 199

原创 100. 相同的树 C++

给定两个二叉树,编写一个函数来检验它们是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。示例 1:输入: 1 1/ \ / 2 3 2 3 [1,2,3], [1,2,3]输出: true示例 2:输入: 1 1/ 2 ...

2019-08-14 23:06:33 246

原创 二叉树的最大深度 和 最小深度 递归写法(C++)

int maxDepth(TreeNode* root)//最大深度{ if (root == NULL) return 0; else return max(maxDepth(root->left), maxDepth(root->left)) + 1;}int minDepth(TreeNode* root)//最小深度,要考虑该节点是否为叶子节点{ if ...

2019-08-13 10:39:51 318

原创 98. 验证二叉搜索树(C++)中序遍历的递归与非递归解法

给定一个二叉树,判断其是否是一个有效的二叉搜索树。假设一个二叉搜索树具有如下特征:节点的左子树只包含小于当前节点的数。节点的右子树只包含大于当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。示例 1:输入:2/ 1 3输出: true示例 2:输入:5/ 1 4/ 3 6输出: false解释: 输入为: [5,1,4,null,null,3...

2019-08-07 09:24:20 365

原创 22. 括号生成(C++)

给出 n 代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合。例如,给出 n = 3,生成结果为:[“((()))”,“(()())”,“(())()”,“()(())”,“()()()”]用了集合去重 和 DFS扩展。当 搜索到n时,遇到’(’ 之后在当前串插入一个"()“就是其中一个目标值,加上“()”+当前串、当前串加上”()" 就是所有可能值...

2019-08-05 18:34:04 436

原创 17. 电话号码的字母组合(C++)

给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。输入:“23”输出:[“ad”, “ae”, “af”, “bd”, “be”, “bf”, “cd”, “ce”, “cf”].建立好对应关系,用DFS解决。DFS的结束条件是访问到最后一个电话号码,否则的话,要遍历当前号码中的每一个字符,插入一个字...

2019-08-05 16:38:30 864

原创 15. 三数之和(C++)

给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。例如, 给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[[-1, 0, 1],[-1, -1, 2]]先排序加上遍历双指针,复杂度O(nlg...

2019-08-04 22:40:24 314

原创 16. 最接近的三数之和(C++)

给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。例如,给定数组 nums = [-1,2,1,-4], 和 target = 1.与 target 最接近的三个数的和为 2. (-1 + 2 + 1 = 2).排序后使用双指针,与三数之和类似,因为题目说只...

2019-08-04 22:34:05 289

原创 1. 两数之和

给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]来源:力扣(LeetC...

2019-08-04 18:23:27 103

原创 12. 整数转罗马数字

罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II ,即为两个并列的 1。12...

2019-08-03 19:28:02 122

原创 25. K 个一组翻转链表

给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表。k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。示例 :给定这个链表:1->2->3->4->5当 k = 2 时,应当返回: 2->1->4->3->5当 k = 3 时,应当返回: 3->2->...

2019-08-02 22:18:34 589

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

给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。示例:给定 1->2->3->4, 你应该返回 2->1->4->3.这题有个坑,要注意节点个数为单数!带头结点的链表有个小技巧不用对头结点进行特殊化处理,此时在头结点加入一个无意义的节点Head,返回时返回Head->next....

2019-08-02 21:36:37 69

后台开发核心技术面试集锦

后台开发核心技术

2019-04-21

20分钟 centos7 装Hyperdger Fabirc

20分钟 centos7 装Hyperdger Fabirc ,20分钟 centos7 装Hyperdger Fabirc20分钟 centos7 装Hyperdger Fabirc

2018-10-23

空空如也

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

TA关注的人

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