自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

bruce_zhen的博客

bruce_zhen的博客

原创 各种排序算法总结

#include<vector>#include <math.h>using namespace std;/*****************交换排序*************************///1,冒泡排序 O(n2) 稳定void bubbleSort(vector<int> *a){ int len = a->size(...

2019-05-02 12:07:22 56

原创 Pytorch可视化

一,利用 tensorboardX 可视化网络结构参考 https://github.com/lanpa/tensorboardXz支持scalar, image, figure, histogram, audio, text, graph, onnx_graph, embedding, pr_curve and video summaries.例子要求tensorboardX>=1....

2018-11-20 16:57:57 4427

原创 Anaconda命令使用

命令说明conda --version查看版本号python –versionpython版本号conda create --name X python=x.x创建一个名为X的环境,指定Python版本是x.xconda create -n Y --clone X复制X环境到Yconda info --envs列出所有环境conda re...

2018-09-18 20:31:46 174

原创 安装ubuntu18.04后我做的几件事

一.安装google chrome浏览器 二.安装搜狗输入法 1、检测是否安装fcitx 首先检测是否有fcitx,因为搜狗拼音依赖fcitx> fcitx提示: 程序“fcitx”尚未安装。 您可以使用以下命令安装:> sudo apt-get install

2018-08-15 16:25:50 10670

原创 Ubuntu常用命令

apt 命令 取代的命令 命令的功能 apt install apt-get install 安装软件包 apt remove apt-get remove 移除软件包 apt purge apt-get purge 移除软件包及配置文件 apt update apt-get update 刷新存储库索引 ...

2018-08-15 12:40:21 64

原创 Windows和虚拟机那些事

一, Windows能ping通虚拟机IP,但是不能访问端口试试关闭虚拟机防火墙,相关操作如下(参考https://www.cnblogs.com/moxiaoan/p/5683743.html)。1、firewalld的基本使用启动: systemctl start firewalld关闭: systemctl stop firewalld查看状态: systemctl status firewalld开机禁用 : systemctl disable firewalld开机启用 : sy

2020-08-04 21:04:33 13

原创 git教程

git教程入门安装初始设定设定用户名和邮箱设定SSH密钥绑定github新建数据库提交文件push到远程数据库添加远程数据库推送克隆远程数据库从远程数据库pull入门安装Linux安装方法初始设定设定用户名和邮箱安装Git之后,请输入您的用户名和电子邮件地址。该设置操作在安装Git后进行一次就够了。这些信息将作为提交者信息显示在更新历史中。$ git config --global ...

2019-11-28 12:40:04 37

原创 CentOS,Ubuntu,Debian软件源配置

CentOS 7 yum源rm -rf /etc/yum.repos.d/*.repo #删除repo文件,或者自己备份curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repocurl -o /etc/yum.repos.d/epel.repo http://mirrors.a...

2019-10-21 09:56:00 49

原创 antd中的嵌套表格使用

开发antd的嵌套表格功能,因为对antd不熟练,一顿乱操作,一天下去了,终于好了,说回正题,要实现一个嵌套表格功能,被嵌套的表格内容随着所在的主表格动态显示,说一下遇到的几个问题,1,dataSource={data},data必须为数组,形如[{key:value}],所以先把要展示的数据存放在对象{ }中,再把数据存放在数组中,最后绑定dataSource;2,dataSource中...

2019-10-11 19:42:45 1432

转载 数据结构之B树与B+树

转载

2019-08-20 18:12:56 34

原创 剑指Offer——左旋转字符串

题目描述汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。例如,字符序列S=”abcXYZdef”,要求输出循环左移3位后的结果,即“XYZdefabc”。是不是很简单?OK,搞定它!思路例如“abcde”,左移1位,先完全翻转得到“edcba”,再局部翻转得到结果“bcdea”...

2019-08-20 15:08:41 29

原创 接雨水

题目给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。 感谢 Marcos 贡献此图。示例:输入: [0,1,0,2,1,0,1,3,2,1,2,1]输出: 6思路双指针夹逼首先,找到能存水的...

2019-08-19 16:33:56 29

原创 扑克牌问题

题目手里有一副牌,取第一张牌放到桌子上,取第二张牌放到牌堆底部,取第三张牌放到桌子上,取第四张牌放到牌堆底部… 直到手里没有牌了。现在桌子上的牌是从 1 到 n 按顺序排列的,求牌在手里时的顺序是怎样的?思路比如一副牌在手里时的顺序是 [1 5 2 4 3],经过上面的规则变换后在桌子上的顺序就是 [1 2 3 4 5],变换过程是这样的:桌子手里操作0:[][...

2019-08-19 09:53:01 65 1

原创 剑指Offer——和为S的两个数字

题目描述输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。输出描述:对应每个测试案例,输出两个数,小的先输出。思路:双指针,一个在首i,一个在尾j。判断两个数的和sum,如果大于s,那么肯定让j–;如果小于s,肯定让i++。class Solution {public: vector<int&g...

2019-08-14 15:20:08 20

原创 剑指Offer——和为S的连续正数序列

题目描述小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22。现在把问题交给你,你能不能也很快的找出所有和为S的连续正数序列? Good Luck!输出描述:输出所有和为S的连续正数序列。序...

2019-08-14 15:06:52 13

原创 剑指Offer——数组中只出现一次的数字

题目描述一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。思路:如果题目说“一个整型数组里除了1个数字之外,其他的数字都出现了两次”,那么这个问题就好办了,直接拿0去遍历异或数组中的数,结果就是只出现一次的数。针对这道题来说,就是想办法把数组分成两块,可以计算数组全部异或的结果(也就是那两个只出现一次的数异或的结果),结果中二进制形式中最右边的1肯定就...

2019-08-14 10:49:56 42

原创 剑指Offer——数组中的逆序对

题目描述在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%1000000007思路:运用归并排序的思想。class Solution {public: long long InversePairsCore(vector<int> &...

2019-08-12 15:15:04 19

原创 01背包问题

测试数据#include <bits/stdc++.h>using namespace std;int getMax(vector<vector<int>> bags,int X){//bags:包裹 X:总容量 int nums = bags.size();//包裹数量 int prices[nums+1][X+1];//这里多一行多一...

2019-08-07 18:22:50 24

原创 剑指Offer——平衡二叉树

题目描述输入一棵二叉树,判断该二叉树是否是平衡二叉树。思路:平衡二叉树要么为空树要么左右子树高度差小于等于1,后序遍历,每遍历到一个节点的时候我们已经遍历了该节点的左右子树,只要在遍历每个节点的时候记录他的深度,就可以一边遍历一边判断该节点是不是平衡的。class Solution {public: bool IsBalanced_Solution(TreeNode* pRoot)...

2019-08-02 19:51:47 20

原创 剑指Offer——第一个只出现一次的字符

题目描述在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写).思路:因为char类型为1B=8bits,所以采用map来存储256个字符情况,扫描两边数组,第一遍给对应字符赋值次数,第二遍检查出现一次的字符位置。int FirstNotRepeatingChar(string str)...

2019-08-02 17:25:43 29

原创 剑指Offer——丑数

题目描述把只包含质因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含质因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。思路:1,逐个判断(判断数a是否为丑数,将a除以2,除以3,除以5直到除不尽为止,若余数为1则为丑数;2,维护一个丑数排序数组,一个丑数乘以2或者3或者5肯定还是丑数,取最小的数放入数组,将该最小数对应的乘...

2019-08-02 17:08:53 17

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

题目描述输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。思路:因为要拼接int数字,所以这里面涉及到int越界问题,所以题目返回string;主要是制定比较算法来对数组进行排序,至于比较算法什么时候返回true,规定“ab”<“ba”时返回true。例如“3”和...

2019-08-02 15:50:01 21

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

题目描述HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6,-3,-2,7,-15,1,2,2},连续子向量的最大和为8(从第0个开始,到第3个为止)。给一个数组,返回它的最大连续子序列...

2019-08-02 07:52:13 22

原创 剑指Offer——最小的k个数

题目描述输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。思路:1,快排思想,一次partition找到第low小位置,多次partition直到low==k-1为止;2,维护一个大顶推,依次遍历,更新堆,时间复杂度为O(nlogk)。class Solution {public: vector<int&...

2019-08-01 18:17:26 27

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

题目描述数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。1,map存储 int MoreThanHalfNum_Solution(vector<int> numbers) { int len = numb...

2019-08-01 17:48:11 21

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

题目描述输入一颗二叉树的根节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。(注意: 在返回值的list中,数组长度大的数组靠前)思路:先序遍历,边界条件是叶子节点、空节点、路径值吻合节点。左右子树遍历完要回退。class Solution {private: int count=0; vect...

2019-08-01 16:39:30 17

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

题目描述输入一颗二叉树的根节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。(注意: 在返回值的list中,数组长度大的数组靠前)思路:先序遍历,边界条件是叶子节点、空节点、路径值吻合节点。左右子树遍历完要回退。class Solution {private: int count=0; vect...

2019-08-01 15:44:20 17

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

题目描述输入一颗二叉树的根节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。(注意: 在返回值的list中,数组长度大的数组靠前)思路:先序遍历,边界条件是叶子节点、空节点、路径值吻合节点。左右子树遍历完要回退。class Solution {private: int count=0; vect...

2019-08-01 15:42:18 20

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

题目描述输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。思路:对于二叉搜索树的后序遍历序列来说,最后一个节点的为根节点,前面应该有一半节点大于该节点,一半小于该节点。基于此,如下代码。class Solution {public: bool VerifySquenceOfBST(vector&...

2019-08-01 15:14:45 21

原创 剑指Offer——从上往下打印二叉树

题目描述从上往下打印出二叉树的每个节点,同层节点从左至右打印。思路:借助队列,若左孩子不空,入左孩子;右孩子不空,入右孩子。vector<int> PrintFromTopToBottom(TreeNode* root) { queue<TreeNode *> q; vector<int> result; i...

2019-08-01 14:27:21 28

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

题目描述输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压栈序列的弹出序列。(注意:这两个序列的长度是相等的)思路:借助辅助栈,按出栈序列元素从压入序列进行压栈。bool IsPopOrder(...

2019-08-01 14:24:42 18

原创 剑指Offer——包含min函数的栈

题目描述定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。思路:使用两个栈,一个存数据,一个存最小值,两个栈中的元素数量始终是一致的,也就是数据栈中push元素时,也要把当前最小值push进最小值栈。class Solution {private: stack<int> m_min; stack<int&...

2019-07-31 15:17:50 24

原创 剑指Offer——树的子结构

题目描述输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)思路:要依次遍历A中的节点,找到和B的根节点一样的节点时,就检查A中以当前节点存在的子树是否包含B。class Solution {public: bool HasSubtree(TreeNode* A, TreeNode* B) { bool result =...

2019-07-31 14:58:46 18

原创 剑指Offer——二叉树的镜像

题目描述操作给定的二叉树,将其变换为源二叉树的镜像。输入描述:二叉树的镜像定义:源二叉树 8 / \ 6 10 / \ / \ 5 7 9 11 镜像二叉树 8 / \ 10 6 / \ / \ 11 9 7 5思路:先前序遍历二叉树,若有子树,就交换两个子树,若是叶子节点,就不交换。class Solu...

2019-07-31 14:21:10 17

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

非递归版ListNode* Merge(ListNode* pHead1, ListNode* pHead2) { if(!pHead1) return pHead2; if(!pHead2) return pHead1; ListNode* p1=pHead1; ListNo...

2019-07-30 21:00:36 21

原创 剑指Offer——反转链表

题目描述——输入一个链表,反转链表后,输出新链表的表头。思路:一个指针指向当前节点,一个指针指向前驱节点。 ListNode* ReverseList(ListNode* pHead) { if(!pHead) return NULL; ListNode* p = pHead; ListNode* pre = NULL;...

2019-07-30 18:36:59 14

原创 剑指Offer——链表中倒数第k个结点

题目描述输入一个链表,输出该链表中倒数第k个结点。思路:快慢指针,快的先走k步,到第k个节点,然后快慢指针一起跑,快指针到最后一个节点时,慢指针就是倒数第k个节点。注意:1,边界条件:头结点为空或者k为0;2,快指针先走k步,i<k-1即可;3,一起跑的终止条件是快指针指到最后一个节点而不是最后一个节点的next。ListNode* FindKthToTail(ListNode* p...

2019-07-30 17:39:53 30

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

思路:此题若没有“保证奇数和奇数,偶数和偶数之间的相对位置不变”这一条件,可以用快排的思想,但是条件所限,只能考虑稳定的算法,快速排序、选择排序、希尔排序都是不稳定的,只能选冒泡排序,插入排序了。void reOrderArray(vector<int> &a) {//基于冒泡排序 int len = a.size(); if(len==0)...

2019-07-30 17:13:06 29

原创 剑指Offer——数值的整数次方

思路:考虑边界情况,1:0-exponent基数为0,指数为负数的话,没有意义;2:基数不为0,指数为负数的话,要考虑结果变为倒数。class Solution {public: double Power(double base, int exponent) { if(base==0.0&&exponent<0) retur...

2019-07-30 15:33:31 22

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

思路一:让1不断左移去位与nint NumberOf1(int n) { if(n==0) return 0; int count = 0; int flag = 1; while(flag!=0) { if((n&flag)!=0) ...

2019-07-30 10:02:22 14

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