自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(36)
  • 收藏
  • 关注

原创 除了业务开发以外 程序员还能做什么 职业生涯走得更远

3.深耕技术 做一个领域的专家 专注解决一类市面上有需求的问题 (如左耳听风浩哥 解决其他企业遇到的技术难题 拿到的收入比工资高 前提是技术足够深,并且积累起了技术影响力)从0干起 你得能折腾 但是大部分人下班后都躺平了 能做到和浩子叔一样的 有技术热情和折腾劲的人总是少数。没成功就和我前公司某盛优选一样 人走茶凉 大裁员 成功了的一部分人 在早期也拿到了相对丰厚的报酬。1.ai大模型技术 (目前最火的方向之一 未来也会有人工智能AICG等技术 应用广泛的空间)个人的成长比较依赖于能否接到有挑战的需求。

2024-04-18 16:47:25 183

原创 兴盛优选后端技术栈的理解

毕业三个月,入职了长沙兴盛优选后端开发工程师一职,这里用的技术栈十分类似阿里淘系,因为大部分员工都是社招从阿里挖过来的.既然是淘系技术栈,常见的就是那一套dubbo+zk当分布式框架,spring全家桶,常见中间件redis,mq等,还使用到了携程研发的配置中心Apollo。缓存的使用,消息队列的使用都是很基本的层面。兴盛优选后端技术栈的理解。

2024-04-16 21:25:39 251 1

原创 oauth2学习

另外即使code被黑客拿到了,由于token只能被兑换一次,当用户出现token兑换失败,证明code已经被黑客窃取了,授权服务器会重新授权,之前的token也就失效了。首先token是用户同意授权重定向到自己的页面时携带在url中的,也就是说很不安全,如果直接返回了token,那用户和其他人都能直接拿到这个token。接着,我们的服务器再拿着这个code去微信的授权服务器获取access_token,拿到这个token后才可以去微信访问特点的资源。

2023-04-08 10:02:34 88

原创 近期的工作记录博客

最近的工作每天就是自己或有或无目的浏览技术文章,内心想保持技术的学习和更新,但时间久后,还是感觉到刚毕业时面临团队成员纷纷离职,工作没有合适自己的项目做的无奈和无力感,内心也比较的压抑,职业的开端并不顺利,同时和留下来的几位同事之间也没有过多的交流,导致团队关系一直比较闷,最近想了想,还是打算和leader聊一聊更换团队的事情,毕竟一个所在的团队对发展较为重要。近期感受到了什么是职业成长的焦虑,周围同事团队骨干的纷纷离职,导致我所在的团队氛围受到极大冲击,我们团队也因此一直被搁置在公司一旁。

2022-10-26 16:54:49 78

原创 KMP算法求解串的模式匹配

测试样例this is a simple textsimplep大致思路:暴力求解进行了大量无关紧要的比较,kmp使得只有遍历一边串就可以得出结果,算法核心思想是,为串和模式分别设置两个指针i,j,都从头开始扫描,如果字符可以匹配,两指针都前进,问题主要在如果匹配失败的处理上,kmp不会让i回溯,只会让j回退(回退需要用到next数组,next数组的求法参考算法浙江大学mooc视频,结合视频更容易理解)到前缀和后缀相同的最大的前缀下标处,然后看j+1处的字符可否与i处的字符匹配,如果可以则二指针同时+

2021-02-08 16:46:37 135

原创 2021-02-03

1084 Broken Keyboard (20 分)On a broken keyboard, some of the keys are worn out. So when you type some sentences, the characters corresponding to those keys will not appear on screen.Now given a string that you are supposed to type, and the string that yo

2021-02-03 13:59:43 119

原创 pta A 1062 Talent and Virtue

大致思路:对于读入的数据,进行学生分类并存储在结构体中,然后进行多标尺的排序,第一标尺是学生类别,第二标尺是学生的总成绩,第三标尺是学生的道德成绩,最后是学号的字典序本题的关键是结构体的设计和cmp函数的编写,结构体中用flag标志进行学生类别的区分属于典型的排序题#include<cstdio>#include<cmath>#include<vector>#include<algorithm>#include<string>#in

2021-02-03 13:31:02 102

原创 pta A 1012 The Best Rank

大致思路:先预处理,对每个学生,将其各科成绩名次存储在结构体中,然后对某个要查找的学生,对其rank数组进行二次打擂台第一次打擂台求出该学生的最高名次,第二次打擂台求出最高名次中的最大权值的课程需要注意,在给某科目排序时,成绩相同的名次一致,若不注意这点,测试不能通过本题还可以优化减少代码量,不用写多个cmp函数,也不用写多个sort,也可以不用map存储课程与权值的映射,直接用一维数组下标对应权值总体来说不是很难,排序的一道典型题#include<cstdio>#include&l

2021-02-03 13:27:12 92

原创 动态规划初步,最大子序列和问题

测试样例6-2 11 -4 13 -5 -2#include<stdio.h>#include<string.h>#include<math.h>#include<vector>#include<algorithm>#include<queue>#define maxn 1000using namespace std;int n;//动态规划,重叠子问题,递推写法,开一个dp数组存储子问题的答案,动态规划两个关

2021-01-24 12:06:39 178

原创 初识动态规划,实践求解数塔问题

#include<stdio.h>#include<string.h>#include<math.h>#include<vector>#include<algorithm>#include<queue>#define maxn 1000using namespace std;int n,m;//动态规划,重叠子问题,数塔,递推写法,开一个dp数组存储子问题的答案,动态规划两个关键重叠子问题,最优子结构,注意和分治和贪心

2021-01-24 11:38:40 80

原创 拓扑排序

#include<stdio.h>#include<string.h>#include<math.h>#include<vector>#include<algorithm>#include<queue>#define maxn 1000using namespace std;int n,m;vector<int>adj[maxn];int indegree[maxn];queue<int>q

2021-01-23 16:43:09 94

原创 kruskal算法求解最小生成树

测试样例6 100 1 40 4 10 5 21 2 11 5 32 3 62 5 53 4 53 5 44 5 3#include<stdio.h>#include<string.h>#include<math.h>#include<vector>#include<algorithm>#define maxn 1000using namespace std;int G[maxn][maxn];int n,

2021-01-23 16:22:20 97

原创 Bellman-Ford算法解决pta a 1003

#include<cstdio>#include<algorithm>#include<cstring>#include<iostream>#include<vector>#include<queue>#include<string>#include<set>using namespace std;#define inf 1000000000#define maxn 1000int st,e

2021-01-13 20:13:24 97

原创 PTA A 1030迪杰斯特拉求解两个边权的问题,

第一标尺是距离第二标尺是花费#include<cstdio>#include<algorithm>#include<cstring>#include<iostream>#include<vector>#include<queue>#include<string>using namespace std;#define inf 1000000000#define maxn 1000struct e{

2021-01-13 17:16:38 89

原创 PTA A 1003 迪杰斯特拉算法加DFS实现最短路径和最大点权和

用迪杰斯特拉算法求解单源最短路径,有多条最短路径时,求第二标杆最大的路径(可以用DFS实现)首先迪杰斯特拉算法描述如下先初始化初始时除起点到起点的距离为0外,起点到其他点的距离为inf一个很大的数,然后在起点到其他点的距离中寻找距离最短的,将这个点标记为以访问,然后通过这个中介点到其余未访问的点的距离如果比原来记录的短,则更新这条记录,重复顶点数次循环,最终可以得到起点到各个顶点的最短距离#include<cstdio>#include<algorithm>#inclu

2021-01-13 16:37:47 207

原创 PAT A 1076

#include<cstdio>#include<algorithm>#include<cstring>#include<iostream>#include<vector>#include<queue>#include<string>using namespace std;#define maxn 1010int G[maxn][maxn]={0};int n,k;bool inq[maxn]={fal

2021-01-09 19:10:47 95

原创 PAT A 1034

#include<cstdio>#include<algorithm>#include<iostream>#include<vector>#include<map>#include<string>using namespace std;/*输入处理,输入n,k,接下来n行,将string转换成int,将点权累加,构建邻接矩阵,编写change函数,使用map,若map当前没有此字符串,则加入,若有则直接返回对应的编号遍

2021-01-09 17:02:47 124

原创 codeup 问题 B: 二叉树

如上所示,由正整数1,2,3……组成了一颗特殊二叉树。我们已知这个二叉树的最后一个结点是n。现在的问题是,结点m所在的子树中一共包括多少个结点。比如,n = 12,m = 3那么上图中的结点13,14,15以及后面的结点都是不存在的,结点m所在子树中包括的结点有3,6,7,12,因此结点m的所在子树中共有4个结点。输入输入数据包括多行,每行给出一组测试数据,包括两个整数m,n (1 <= m <= n <= 1000000000)。最后一组测试数据中包括两个0,表示输入的结束,.

2020-12-27 18:00:53 242

原创 优先队列的元素是指针型时如何建堆

算法笔记上记载的方法,经过自己推敲调试得出如下方法struct node{ int w; node* lchild; node* rchild;};struct cmp{bool operator()(node *a,node *b){ return a->w<b->w;//a->w>b->w是小顶堆}};priority_queue<node*,vector<node*>,cmp>forest;

2020-12-25 21:24:41 161

原创 哈夫曼编码和哈夫曼树

哈夫曼编码,保证正确的同时提高了效率是一种二进制最短前缀编码带权最短路径最短的树–哈夫曼树,可以用优先队列(底层实质上是堆)实现对于输入的n个带权结点,初始为 n个只有根结点的树每次选择权最小的两个树将他们的根结点合并,生成新的树,放入原理的森林中,重复上述操作,直到只有一个树,此时即得到哈夫曼树#include#include#include#include#include#includeusing namespace std;priority_queue<int,vect

2020-12-25 16:14:47 292

原创 中缀表达式转逆波兰式并计算

#include#include#include#include#include#include#include#include#includeusing namespace std;//对于输入串,处理分离出数字串,将其转换成数字,分离运算符,//中缀转后缀 若当前处理的单位是数字,将其入队(字符串队列),如果是运算符若栈<字符栈>当前为空或者栈顶运算符//优先级比其低则入栈,若栈顶运算符优先级比其高或等于,则栈顶一直出栈直到栈顶运算符优先级比其低//后缀表达式中位置

2020-12-24 22:47:09 209

原创 堆排序

#include#include#include#includeusing namespace std;#define maxn 100010int N;//堆排序,算法:首先根据输入的序列建堆(大顶堆),然后交换堆顶元素和数组尾元素//接着进行一次第一个元素到堆尾减一的向下调整,重复执行此步骤,直到只有堆顶一个元素即可//堆是完全二叉树,故堆用静态方法存贮,向下调整算法主体->比较当前子树根结点与左右孩子结点的最大值//如果小于则交换二者,继续对交换了的根结点向下调整,直到根结点

2020-12-24 21:36:11 76

原创 用 C/C++ 编写一个 C 语言的词法分析器程序

#include#include#include#includeusing namespace std;#define maxn 100#include//词法分析器,对于输入的串,先处理空格,过滤掉,进入主程序,判断是字母,循环判断字母或数字//循环出去后,判断所读字符串是否是保留字,若是输出保留字及其编码,若不是,输出标识符和编码//判断首字符是数字,则可能是常数,识别首字符后,循环判断是否是数字,出循环后指针回退一个字符//输出数字//需要的函数,getbe()过滤空格,conn

2020-12-23 17:45:54 730

原创 实现DFA

#include#include#include#includeusing namespace std;#define maxn 100#include//word存字母表,state存状态集,start开始状态,end结束态,二元函数用矩阵来存//f[state][word]=state,对于输入的字符串,处理f[start][str[0]],转到下一个状态,在读入下一个字符//根据当前字符和状态得到下一状态,直到字符为空,若此时是终态,则yes//是否是DFA判定,开始态只有一个,f

2020-12-21 21:37:36 202

原创 并查集

n个元素,初始时分在n个集合中,根据问题来将两个不在同一个集合中的元素合并到一个集合,每一个集合都是一个树形结构,两元素在一个集合中的标志是他们的根相同并查集适合用来处理若干集合和合并集合,是否在同一集合的问题,如好朋友之间的关系,家族亲戚类的问题涉及的操作有findfather,union,题目描述某市计划建设一个通信系统。按照规划,这个系统包含若干端点,这些端点由通信线缆链接。消息可以在任何一个端点产生,并且只能通过线缆传送。每个端点接收消息后会将消息传送到与其相连的端点,除了那个消息发送过来的

2020-12-20 20:15:55 49

原创 code up问题 A: 算法9-9~9-12:平衡二叉树的基本操作

#include#define maxn 102#include#include#include#include#includeusing namespace std;//实现AVL树的基本操作,给一个插入序列,构建对应的AVL树//结构体中加入以当前结点为根的树的高度//在AVL树中插入一个结点使得插入后还是AVL树,插入一个结点可能会使某子树的平衡因子大于1或小于-1//对于平衡因子为2的子树,对应结构有两种为LL和LR型,LL型树对其根结点使用右旋即可平衡//LR型树对其根结点

2020-12-18 21:49:26 141 1

原创 实现删除二叉查找树中的结点,使其还是二叉查找树,并用层序遍历查看结果

输入10//结点数量5 1 0 3 2 4 8 6 7 9//插入序列输出5 1 8 0 3 6 9 2 4 7//原来树的层序遍历序列4 1 8 0 3 6 9 2 7//删除根结点后的树的层序遍历序列#include#define maxn 102#include#include#include#include#includeusing namespace std;//实现给一个原始序列构建其二叉查找树,然后对该树进行删除操作//删除操作如下,对于给定的树root,删除结点值

2020-12-17 23:14:09 160

原创 PTA A 1043 Is It a Binary Search Tree

A Binary Search Tree (BST) is recursively defined as a binary tree which has the following properties:The left subtree of a node contains only nodes with keys less than the node’s key.The right subtree of a node contains only nodes with keys greater than

2020-12-17 22:24:00 85

原创 PTA A 1020 Tree Traversals

Suppose that all the keys in a binary tree are distinct positive integers. Given the postorder and inorder traversal sequences, you are supposed to output the level order traversal sequence of the corresponding binary tree.Input Specification:Each input

2020-12-17 20:25:59 87

原创 PTA A 1053 Path of Equal Weight

Given a non-empty tree with root R, and with weight W​i assigned to each tree node Ti. The weight of a path from R to L is defined to be the sum of the weights of all the nodes along the path from R to any leaf node L.Now given any weighted tree, you are

2020-12-17 20:03:27 74

原创 输入前序和中序序列,建树,输出其前中后序以及层序遍历序列

例如输入74 1 3 2 6 5 71 2 3 4 5 6 7输出4132657123456723157644163572#include#define maxn 16#include#include#include#include#includeusing namespace std;vectorpreorder;vectorinorder;//利用前序序列和中序序列递归建树,递归边界是序列长度小于等于0,//在递归程序中,输入序列左右两端点下标,先处理先序序列,得到

2020-12-17 18:57:38 454

原创 求矩阵块的个数(BFS实现)

#include#define maxn 16#include#include#include#include#includeusing namespace std;//用队列实现BFS,队头结点出队并将相邻的点入队//遍历整个矩阵,如果值为 1且没有被BFS遍历到过则执行BFS(row,column);//BFS每执行完一次ans++int m,n;int maze[maxn][maxn];bool hashtable[maxn][maxn]={false};int X[]=.

2020-12-15 21:14:56 160

原创 走迷宫(AC)

题目描述有一个nm格的迷宫(表示有n行、m列),其中有可走的也有不可走的,如果用1表示可以走,0表示不可以走,文件读入这nm个数据和起始点、结束点(起始点和结束点都是用两个数据来描述的,分别表示这个点的行号和列号)。现在要你编程找出所有可行的道路,要求所走的路中没有重复的点,走时只能是上下左右四个方向。如果一条路都不可行,则输出相应信息(用-l表示无路)。  请统一用 左上右下的顺序拓展,也就是 (0,-1),(-1,0),(0,1),(1,0)  输入第一行是两个数n,m( 1 < n ,

2020-12-15 20:04:04 333

原创 n皇后问题

#include#define maxn 20#include#include#include#includeusing namespace std;//n个数的全排列等于第一个位置选x,剩下的位置是n-1个数除去x的全排列,这是递归式//递归出口最后一个位置只有一个可选//用for循环实现某个位置上1到n的遍历//哈希表记录某个数当前是否在排列中//ans数组用来存储当前生成的一个排列bool hashtable[maxn]={false};vectorans;int n;b

2020-12-15 18:50:55 54

原创 输出1-n的所有全排列

#include#define maxn 20#include#includeusing namespace std;//n个数的全排列等于第一个位置选x,剩下的位置是n-1个数除去x的全排列,这是递归式//递归出口最后一个位置只有一个可选//用for循环实现某个位置上1到n的遍历//哈希表记录某个数当前是否在排列中//ans数组用来存储当前生成的一个排列bool hashtable[maxn]={false};vectorans;//这里用到vector比使用数组更方便,因为不用关注

2020-12-15 17:01:11 1800 1

原创 8皇后问题

#include #include#includeusing namespace std;int n;int a[101];//用来保存当前的一个排列int cnt=0;//计数string str[100];//保存满足8皇后问题的排列,按从小到大排序int k=1;//str数组的下标bool hashtable[101]={false};//hashtable[x]false表示数字x不在当前排列中void generateP(int index){if(indexn+1){/

2020-12-10 21:38:24 55

空空如也

空空如也

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

TA关注的人

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