- 博客(106)
- 收藏
- 关注
原创 Mac OS 配置iTerm2 实现 rz sz
一、安装1、从github下载这个包https://github.com/aikuyun/iterm2-zmodem2、brew install lrzsz,下载lzsz(前提你得有homebrew,网上教程比较多,不赘述)3、保存 iterm2-send-zmodem.sh 和 iterm2-recv-zmodem.sh 到mac的 /usr/local/bin/ 路径下,然后该权限chmod 777 iterm2-send-zmodem.shchmod 777 iterm2-recv-zmo
2020-12-01 16:36:03
2115
原创 使用useradd给云服务器添加用户后,使用ssh仍然是Permission denied (publickey)解决办法
为了实现云服务器多用户登录,我在云服务器用useradd 添加了很多用户名。之后su 用户名 ,然后在本机使用cat ~/.ssh/id_rsa.pub将本地的公钥放在云服务器.ssh目录下的authorized_keys文件里(如果没有这个需要创建一下)然后我直接在本地 ssh 用户名@ip地址 登录。发现怎么都是Permission denied (publickey),查了很多资料,最后就是将authorized_keys权限设置为644就可以正常登陆了,应该是这个文件权限不够,读不了公钥,导致无
2020-08-31 14:54:00
1208
原创 MacOS下使用Gtest 出现问题(no member named ‘make_tuple“)
最近在学习Gtest,在mac上安装总是出错,转了一大圈,终于解决了各种问题一、安装Gtest要提前安装cmakegit clone https://github.com/google/googletest.gitcd googletestmkdir buildcd buildcmake -DCMAKE_CXX_COMPILER="c++" -DCMAKE_CXX_FLAGS="-std=c++11 -stdlib=libc++" ../makesudo make install.
2020-07-28 17:05:55
1151
原创 用c++语言操作Redis,当使用get命令时,由于不存在的key时程序崩溃解决办法
前言今天在写项目的时候调用Redis的时候,程序一直崩溃,最后发现昨天在Redis设置的键值对过期了,导致Redis中没有需要的键值对。所以在程序中调用get命令就出错了,所以在调用redisCommand函数之后需要再进一步判断其返回值。redisContext* handle;std::string Redis::rd_get(std::string key){ redisReply *reply = (redisReply *)redisCommand(this->
2020-07-23 19:17:00
2528
1
转载 oh-my-zsh关于oh-my-zsh下载被443端口拒绝连接(ubuntu和macos均适用)
关于oh-my-zsh下载被443端口拒绝连接问题: curl: (7) Failed to connect to raw.githubusercontent.com port 443: Connection refused>>> sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)">>> curl: (7) Failed to connect t
2020-07-17 10:58:28
2167
原创 面试题36:二叉搜索树与双向链表
题目描述输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。(这道题真的很考察思路、代码其实不是很难,就是指针很多,容易眼花,所以真的是质量很高的一道题)思路1、因为是二叉搜索树,所以左子树比根值小,右子树比根值小,这就是一个突破口2、那自然想到我们排序的值应按先左子树再根再右子树,所以就用到中序遍历3、采用递归就可以很好地...
2020-03-08 17:17:00
172
原创 LeetCode 148. 排序链表
题目:在 O(n log n) 时间复杂度和常数级空间复杂度下,对链表进行排序。示例 1:输入: 4->2->1->3输出: 1->2->3->4示例 2:输入: -1->5->3->4->0输出: -1->0->3->4->5思路题中给的时间复杂度让你进行排序,基本都可以想到归并排序,但本题目复...
2020-01-27 23:45:27
147
2
原创 c语言条件运算符(?:)
int Max3( int A, int B, int C ){ /* 返回3个整数中的最大值 */ return A > B ? A > C ? A : C : B > C ? B : C;}今天遇到这个神奇的return语句,首先我是懵逼的,好久没写代码,瞬间蒙了(哭晕在厕所)首先明确一点这个?:运算符是左结合的,之后就是可以一步步的去分析。分析:第一个冒号...
2019-07-15 23:47:37
5857
转载 使用fdopen来转换open文件描述符来编写fopen
1、fdopen(int fd, const char *type)的介绍比如一写特殊文件不能用io打开,我们先要用open函数得到文件描述符,也就是这个fdopen函数的第一个参数,第二个参数是常量,不同类型不同意义,如下图2、代码演示#include<stdio.h>#include<fcntl.h> int main(void){ FILE *...
2019-03-22 15:54:41
532
2
原创 利用多线程对随机产生的1M-10M的数组进行求和
#include <iostream>#include <thread>#include<random>using namespace std;#define Pthread_num 10 线程数#define N 100000数组大小vector<int> arr//数组int begin=0;int result =0;...
2019-03-17 22:23:43
410
原创 操作系统概念 第一章导论
文章目录一、简介二、功能与组成三、计算机系统的运行四、存储机构五、CPU运行原理六、计算机系统体系结构七、操作系统的结构八、操作系统的运行九、进程管理linux下常见的I/O多路复用十、内存管理十一、同一数据可靠那个出现在储存系统的不同层次上一、简介操作系统是管理计算机硬件的软件。硬件必须提供适当机制,以确保计算机系统正确运行并且防止用户程序干扰系统的正常运行。二、功能与组成1、中间件:...
2018-12-20 14:15:42
442
原创 内存分配(持续更新)
1、brk释放内存和sbrk分配内存#include&amp;lt;unistd.h&amp;gt;int brk(void *end_data_segment);成功返回0,否则为-1将内存边界设置为参数所指定位置void *sbrk(intptr_t increment);成功返回之前的内存边界,失败返回(void*)-1增加内存边界,返回为新分配内存的起始位置(sbrk(0)就是获得堆...
2018-08-13 15:41:54
402
原创 leetcode contest95 879.盈利计划
879. 盈利计划帮派里有 G 名成员,他们可能犯下各种各样的罪行。第 i 种犯罪会产生 profit[i] 的利润,它要求 group[i] 名成员共同参与。让我们把这些犯罪的任何子集称为盈利计划,该计划至少产生 P 的利润。有多少种方案可以选择?因为答案很大,所以返回它模 10^9 + 7 的值。示例 1:输入:G = 5, P = 3, group = [2,2], ...
2018-07-30 21:41:40
1116
原创 readline库使用
以前没有认真的总结readline,发现它的功能还是很赞的,这次记录一下,方便日后查看安装在deepin下可以用这个命令(Ubuntu和deepin一样) sudo apt-get install libreadline6-dev 原型#include &lt;readline/readline.h&gt;#include &lt;readline/histor...
2018-07-30 20:45:15
6540
原创 动态规划之矩阵练乘加括号问题
/*因为相乘顺序会影响标量的乘法大小,所以加括号的位置非常影响乘法结果的大小*/#include<iostream>using namespace std;void matrix_chain_order(int *p,int m[][1000],int s[][1000],int n);void print(int s[][1000],int i,int j);int ...
2018-04-09 18:32:03
1496
原创 合并两个有序数组,要求时间复杂度为O(n),且只要到O(1)的辅助空间
i= 0表示有序数组arr1的首元素,j = 未知,表示有序数组arr2的首元素 ①首先比较第一个有序数组arr1和第二个有序数组arr2第一个元素的大小 如果arr1[i] < arr[j],i++ 否则 index记住j的位置,index就是j变化之前的位置 ②如果arr2[j] < arr[i],证明后面的元素小于后面的元素,需要进行往前的置换,所以j++,但是要保证j+...
2018-04-08 22:40:31
5362
1
转载 分治法之归并排序三种实现方法(递归、非递归和自然合并排序)
1. 递归实现归并排序基本思想:将待排元素分成大小大致相同的2个子集,分别对2个子集合进行排序,最终将排好序的子集合合并 就会得到一个排好序的集合 即为所求设归并排序的当前区间是R[low..high],分治法的三个步骤是: ① 分解:将当前区间一分为二,即求分裂点 ② 求解:递归地对两个子区间R[low..mid]和R[mid+1..high] 进行归并排序; ③ ...
2018-04-08 19:18:18
10625
4
原创 动态规划之切割绳子
/* 切割绳子,每段绳子都有一个最大值,给定长度为n的绳子,如何切割让利益最大化 自底而上的方法,对于任何子问题,直至它依赖的所有子问题都解决,才会去解决它。*/#include<iostream>#include<algorithm>#include<vector>using namespace std;vector<int&...
2018-04-07 21:03:04
1835
转载 经典算法之子数组换位问题
子数组换位问题 设a[0:n-1]是一个有n个元素的数组,k(0<=k<=n-1)是一个非负整数。 试设计一个算法将子数组a[0:k]与a[k+1,n-1]换位。要求算法在最坏情况下耗时O(n),且只用到O(1)的辅助空间。初步思考:最简单的方法就是循环(n-k-1)次,将a数组的末...
2018-04-03 22:49:49
942
原创 accumulate(将数字或者字符串累加)使用方法
头文件#include<numeric>accumulate(first,last, init);first,last可以是数字也可以是字符串,将把init 和从 first 到last 指向的值进行累加,并返回累加得到的和#include<iostream>#include<numeric>#include<vector>#include<string>using namespace st
2018-03-06 17:03:38
3008
原创 7对数字 蓝桥杯2014
今有7对数字:两个1,两个2,两个3,…两个7,把它们排成一行。 要求,两个1间有1个其它数字,两个2间有2个其它数字,以此类推,两个7之间有7个其它数字。如下就是一个符合要求的排列:17126425374635当然,如果把它倒过来,也是符合要求的。请你找出另一种符合要求的排列法,并且这个排列法是以74开头的。注意:只填写这个14位的整数,不能填写任何多余的内容,比如说明注释等。思路就是for循环
2018-03-05 22:53:49
450
原创 第六届蓝桥杯大赛个人赛(软件类)校内选拔题目X^X=10
如果x的x次幂结果为10,你能计算出x的近似值吗?显然,这个值是介于2和3之间的一个数字。请把x的值计算到小数后6位(四舍五入),并填写这个小数值。注意:只填写一个小数,不要写任何多余的符号或说明。题上说的很明确,答案是介于2到3之间的,所以暴力枚举没问题#include<iostream>#include<cmath>#include<iomanip> using namespace
2018-03-05 20:18:32
502
原创 迷宫问题(c语言)
#include#includeint maze[5][5];int mark[5][5]={0};typedef struct{ int x; int y;}offset;offset direct[8] = {-1,0, -1,-1, 0,-1, 1,-1, 1,0, 1,1, 0,1, -1,1};
2018-01-15 22:15:32
1108
原创 prim,适合稠密图,顶点少,边多(c语言)
/* * 用prim算法弄最小生成树,每次一个点都会遍历所有点,找出,两点距离最短的情况 * 再改变节点的入度和最小值 */#include#include#include#define INFINITY 1000struct{ int adjvex; int lowcost;}closedge[31]; typedef struct { int vex
2018-01-15 15:14:37
1240
原创 kruskal算法,适合稀疏图,顶点多,边少(c语言)
kruskal算法的一点就是不能形成环路,而且是从排列好的边集合依次选出最小的边,每次选出的顶点都要放在同一个边集合中,之后在顶点集合选两个顶点的边,要求这两个顶点不能在边集合中,这样才能保障不形成环路。 一、链表表示#include#include/* kruskal,最小生成树,利用链表,并查集的知识*/typedef struct{ int bef;
2018-01-15 15:08:38
1202
原创 希尔排序
#include<iostream>#include<vector>using namespace std;void shellsort(vector<int> &arr);int main(){ vector<int> arr{0,9,8,7,6,5,4,3,2,1}; shellsort(arr); for(auto i = arr.begin() + 1;i!
2018-01-14 21:55:44
291
原创 c++如何获得数组的大小
java有可以获得数组大小的函数,但是c++没有,在写函数的时候发现了一些问题,就是传数组名的时候,会在函数中将数组退化成指针,得不到想要的结果,使用引用之后就不会有这样的问题#include<iostream>#include<typeinfo>#include<vector>using namespace std;// 使用 int[]template <typename T>inli
2018-01-14 20:33:26
13353
原创 产生随机数(java)
import java.util.*;public class Main { public static void main(String[] args){ Random random = new Random(10);//随机种子 for(int i=0;i < 10;i++){ System.out.println(random.n
2018-01-10 22:48:12
206
原创 公历类GregorianCalendar(java)
使用公历类GregorianCalendar 使用公历类 GregorianCalendar,公历类 GregorianCalendar有方法setTimeInMillis(long);可以用它来设置从1970年1月1日算起的一个特定时间。请编程从键盘输入一个长整型的值,然后输出对应的年、月和日。例如输入:1234567898765,输出:2009-1-14 输入格式:输入 1234567
2018-01-10 17:15:07
2705
原创 linux下判断电脑的大小端
#include<iostream>#include<cstring>using namespace std;void byteorder();int main(){ byteorder(); return 0;}void byteorder(){ union{ short value; char u...
2017-12-27 21:25:10
628
原创 不使用中间变量交换两个变量(高端版本)
今天感谢佳露大佬,学会了特别装逼的交换两个变量不用中间变量的方法,瞬间觉得之前学的low爆了!!!直接看代码。#include<iostream>using namespace std;int main(){ int64_t a=10; int64_t b=20; printf("交换前a,b的值分别为:\n"); printf("a=%d\n",a);
2017-12-12 22:46:30
284
原创 蓝桥杯 算法训练 Lift and Throw
算法训练 Lift and Throw 问题描述 给定一条标有整点(1, 2, 3, …)的射线. 定义两个点之间的距离为其下标之差的绝对值. Laharl, Etna, Flonne一开始在这条射线上不同的三个点, 他们希望其中某个人能够到达下标最大的点. 每个角色只能进行下面的3种操作, 且每种操作不能每人不能进行超过一次. 1.移动一定的距离 2.把另一个角色高
2017-12-10 15:59:37
515
原创 Floyd 所有路径的最短距离(c语言)
#include#define MAX 6int n = MAX;int cost[][MAX] = { { 0, 50, 10,1000, 45,1000}, {1000, 0, 15,1000, 10,1000}, { 20,1000, 0, 15,1000,1000}, {1000, 20,1000, 0, 35,10
2017-12-04 21:24:51
476
原创 Dijkstra单源最短路径,适合稠密图,顶点少,边多(c语言)
思路:①随意选择一个点v,然后用distance数组记录起始点v到所有点的距离②然后在distance数组中找到起始点v到哪一个点的距离最短,以这个点u为中介,found[u]=1,证明集合中已经有这个点,证明该点走过③使用choose函数通过循环,可以知道哪一个点到起始点最短,返回该点的索引u④然后再以u这个点开始,去没有走过的点w(found数组中没有标记为1的
2017-12-04 20:47:41
1363
2
转载 表达式计算(栈)
题描述 输入一个只包含加减乖除和括号的合法表达式,求表达式的值。其中除表示整除。 输入格式 输入一行,包含一个表达式。 输出格式 输出这个表达式的值。 样例输入 1-2+3*(4-5) 样例输出 -4 数据规模和约定 表达式长度不超过100,表达式运算合法且运算过程都在int内进行。这个题的思路就是先把中缀表达式转化为后缀表达式,然后用后缀表达式计算出式子的值1
2017-11-28 21:15:07
911
转载 python3写excel
说明2007版以前的Excel(xls结尾的),需要使用xlrd读,xlwt写。 2007版以后的Excel(xlsx结尾的),需要使用openpyxl来读写。 pypi的地址:https://pypi.python.org/pypi/xlwt https://pypi.python.org/pypi/xlrd https://pypi.python.org/pypi/openpyxl o
2017-11-06 23:23:54
744
原创 根据后序和中序建立二叉树
#include<stdio.h>#include<stdlib.h>#include<string.h>typedef struct node* tree_pointer;typedef struct node{ tree_pointer left_child; tree_pointer right_child; char data;}tree;int find
2017-11-04 21:15:30
1088
原创 根据前序和中序创建二叉树
#include<stdio.h>#include<stdlib.h>#include<string.h>typedef struct node* tree_pointer;typedef struct node{ tree_pointer left_child; tree_pointer right_child; char data;}tree;int find
2017-11-04 20:42:12
2284
原创 求二叉树的前中后序递归、迭代,树的叶子节点,高度(c语言)
#include<stdio.h>#include<string.h>#include<stdlib.h>#include<assert.h>#define MAX 100typedef struct node* tree_pointer;typedef struct node{ char data; tree_pointer left_child,right_child
2017-11-02 21:57:02
771
原创 期望为线性时间的选择算法(c语言)
#include<stdio.h>#include<stdlib.h>#include<time.h>int RANDOMIZED_SELECT(int a[],int p,int r,int i);int RANDOMIZED_PARTITION(int a[],int p,int r);int PARTITION(int a[],int p,int r);void swap(int
2017-10-26 22:52:27
2784
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人