自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 牛客面试必考算法题刷题

文章目录设计LRU缓存结构判断链表中是否有环二分查找实现二叉树先序、中序、后序遍历寻找第K大合并有序链表设计LRU缓存结构设计LRU缓存结构,该结构在构造时确定大小,假设大小为K,并有如下两个功能set(key, value):将记录(key, value)插入该结构get(key):返回key对应的value值[要求]set和get方法的时间复杂度为O(1)某个key的set或get操作一旦发生,认为这个key的记录成了最常使用的。当缓存的大小超过K时,移除最不经常使用的记录,即set或g

2020-12-21 19:27:12 1608

原创 剑指offer刷题

二维数组的查找(牛客网JZ1)在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。如果是一维有序数组的查找,那么用的就是二分法,对于二维数组,首先想到的是选取矩阵中间的一个数字,但是如果比查找数大,可能出现在该数字的下方或者右方,因此这里选取的是右上角的数字,如果比查找数大的话,那么就固定在该数字的左方,如果比查找数小,就固定在查找数的下方class Solu

2020-11-25 19:55:03 288

原创 算法设计第二次上机作业-The Unique MST

算法设计第二次上机作业-The Unique MST题目描述判断一个图的MST树是否唯一输入第一行是输入的测试样例的个数后面的每一个样例的第一行都给出两个数n和m,给出了总节点数和边数。之后的m行给出每条边的两个节点和权重。输出如果MST唯一,则输出权重若不唯一,则输出"Not Unique!"思路:查找MST树用Krustal算法,将所有的边进行排序,每次都选择权重最小的边...

2020-11-06 19:04:35 205

原创 算法设计第三次上机作业-Raid

算法设计第三次上机作业-Raid题目描述有两种类型的点,一种是station,一种是agent,计算station和agent的最小距离。输入第一行是T,代表样例个数之后的每一种情况,第一行是N,代表有N个station和N个agent。接下来的2N行,依次是station和agent的坐标。输出每一行都输出最小距离,保留到小数点后三位。解题思路和求取平面内最小距离点对的解法一...

2020-11-06 19:04:25 268

原创 算法设计第三次上机作业-Multiplication Puzzle

算法设计第三次上机作业-Multiplication Puzzle题目描述给出一排写有数字的卡片,每次都从这排卡片中抽取一张拿出(不能拿第一张和最后一张),将该卡片上的数字和其旁边的两个数字进行相乘,重复该过程直到最后只剩下第一张卡片和最后一张卡片。使得乘数相加得到的和最小。例如,卡片上的数字为10 1 50 20 5, 如果抽取顺序为 1,20,50,那么最终得到的结果为10150 + ...

2020-11-06 19:04:15 220

原创 算法设计第三次上机作业-求逆序对数

算法设计第三次上机作业-求逆序对数题目描述对于一个长度为N的整数序列A,满足i < j 且 Ai > Aj.的数对(i,j)称为整数序列A的一个逆序请求出整数序列A的所有逆序对个数输入输入包含多组测试数据,每组测试数据有两行第一行为整数N(1 <= N <= 20000),当输入0时结束第二行为N个整数,表示长为N的整数序列输出每组数据对应一行,输出逆序对...

2020-11-06 19:04:04 888

原创 A tour of Go 练习题答案

切片题目实现 Pic。它应当返回一个长度为 dy 的切片,其中每个元素是一个长度为 dx,元素类型为 uint8 的切片。当你运行此程序时,它会将每个整数解释为灰度值(好吧,其实是蓝度值)并显示它所对应的图像。图像的选择由你来定。几个有趣的函数包括 (x+y)/2, xy, x^y, xlog(y) 和 x%(y+1)。(提示:需要使用循环来分配 [][]uint8 中的每个 []uint...

2020-03-15 17:20:20 515

原创 Go语言学习

函数编写:func add(x int, y int) int { return x + y}// 也可以写成这样 func add(x, y int) int{}//函数可以返回任意数量的返回值func swap(x, y string) (string, string) { return y, x}变量声明var flag1, flag boolvar i i...

2020-03-15 17:17:35 256

原创 区块链技术与应用(1)

BTC-密码学原理hash functionBTC中的hash function是SHA-256cryptographic hash function 特性:(1)collision resistance并不是不允许发生碰撞,而是制造这样的碰撞的难度非常高,只能用暴力求解(brute-force)的方式。但是没有办法去证明一个函数是collision resistance的。用处:用来...

2020-03-12 11:31:54 681

原创 手工搭建多层神经网络实现mnist手写识别

运行环境为Mac+python3.7神经网络为3层,神经元个数分别为784,30,10,激活函数为sigmoid,损失函数为二次方,优化器为梯度下降算法,学习率为3.0,达到的准确率为接近96%处理输入,这里的数据集为mnist.pkl.gzimport pickleimport gzipimport numpy as npdef load_data(): file = g...

2020-03-08 17:20:38 638

原创 tensorflow搭建多层神经网络实现mnist识别

运行环境为Mac+python3.7,Mac安装tensorflow时一定要到GitHub上找到对应的版本。数据集是mnist,在mnist官网进行下载,一共是四个压缩包,放入MNIST_data文件夹。训练集数据格式为[60000, 784],测试集格式为[10000, 10]初始版本为三层神经网络,神经元个数分别为784,50,10,激活函数为sigmoid,损失函数为softmax_cr...

2020-03-08 16:34:37 450

转载 Percolation

算法设计与分析 模拟考 Percolation 原创 ...

2020-01-07 14:39:56 167

原创 算法设计课程复习(9)-递归

递归#include <iostream>#include <cstdio>#include <vector>#define Max 100using namespace std;void pre(vector<int> inorder, vector<int> post, vector<int> &re...

2020-01-05 23:19:36 321

原创 算法设计课程复习(10)-拓扑排序

拓扑排序sort it all outsorting it all out#include <iostream>#include <cstdio>#include <queue>#include <vector>#include <cstring>#define Max 50#define Maxm 1000using...

2020-01-05 11:10:48 189

原创 算法设计课程复习(8)-最短路径

最短路径这里的最短路径算法是bellman算法,同时可以判断该图有没有正权回路或者父权回路Currency ExchangeAC代码#include <iostream>#include <cstdio>#include <cstring>#define Max 1000using namespace std;struct edge { ...

2020-01-04 21:03:54 161

原创 算法设计课程复习(7)-BFS & DFS

DFS棋盘问题#include <iostream>#include <cstdio>#include <cstring>#define Max 10using namespace std;int n, k, cnt, way; // cnt表示方案数,way表示这一个方案p放了多少颗棋子char maze[Max][Max];int vis...

2020-01-04 20:03:59 216

原创 算法设计课程复习(6)-网络流

网络流dinic算法dining模型详见diningAC代码:#include <limits.h> //INT_MAX的头文件#include <iostream>#include <stdlib.h>#include <assert.h>#include <cstdio>#include <queue>...

2020-01-02 14:54:45 216

原创 算法设计课程复习(5)-动态规划

动态规划合并石子这道题中如果只有两堆石子,也可以合并,和那道multiplication puzzle的题不一样,那道题是必须要三堆AC代码#include <iostream>#include <cstdio>#define Max 100#define INF 0x3f3f3f3fusing namespace std;int dp[Max][Max]...

2019-12-30 17:28:51 230

原创 算法设计课程复习(4)-分治算法

分治算法求逆序对数ultra-quicksortAC代码://用int会出错,改成用long long#include <iostream>#include <cstdio>#include <vector>#define Max 500005using namespace std;long long merge(int input[], ...

2019-12-30 16:24:30 215 1

原创 算法设计课程复习(3)-MST

MST求解用Krystal算法题目详见Agri-NetAC代码:#include <iostream>#include <cstdio>#include <algorithm>#include <vector>#define Maxn 105#define Maxm 10000using namespace std;struc...

2019-12-20 19:57:46 179

原创 算法设计课程复习(2)-优先队列

优先队列优先队列的出队顺序是按照优先级来的,可以找到最小或者最大元素,同时支持插入或者删除最小最大元素。优先队列的格式:priority_queue<T, Container, Compare>T:队列中元素的数据类型Container: 用于储存和访问队列元素的底层容器的类型。Compare: 比较关系,默认是数值上的小于关系(return a<b),比如1<...

2019-12-20 19:11:18 339

原创 算法设计课程复习(1)-并查集

并查集并查集基本代码如下//定义元素的父母结点int p[Max];//初始化void init(int n) { memset(p, -1, sizeof(p)); //或者这样 for(int i=0; i<n; i++) { p[i] = i; }}//查找祖先int findroot(int a) { if(p[i] != a) { p[a] = ...

2019-12-19 20:59:47 149

原创 算法设计-bfs

在写bfs算法的时候一定要注意退出结束条件,如果是固定某个点到另一个点使用bfs,那么退出条件就是判断现在访问到的点是终点。否则就是遍历所有点,那么这样就不需要退出条件。还有一个问题就是可能原始的图并不是连通图,那么就需要在队列循环的外层再加一层循环,用来遍历所有点选取一个初始节点,详情见butterfly...

2019-12-02 10:22:58 144

转载 C++读入一行

添加链接描述

2019-12-02 09:31:33 286

原创 算法设计-动态规划(2)-背包问题

动态规划背包问题0-1背包问题有一个容量为V的背包,有n种物品,每种物品都有自己的重量w和价值v,每种物品都只有一个,现给出让该背包装最大价值的物品的方案。子问题是,对于每个物品,装下或者装不下。如果装不下,那么和前i-1个物品的最大价值是一样的。如果能够装下,但是装了之后不一定会大于当前相同体积的最优价值。状态是d[i][j],表示的是当背包容量为j时,前i个物品所能达到的最大价值。...

2019-11-20 17:03:48 594

原创 匈牙利算法求二分图的最大匹配

最大流算法的核心问题就是寻找增广路径,匈牙利算法也是,它的基本模式为:初始时最大匹配为空while 找得到增广路径do把增广路径加入到最大匹配中去(注:匈牙利算法虽然根本上是最大流算法,但是它不需要建网络模型,所以图中不再需要源点和汇点,仅仅是一个二分图。)对于增广路径可以用一个递归的方法来描述,“从点A出发的增广路径”一定首先连向一个在原匹配(就是我们要找的最大匹配)中没有与A配对的点...

2019-11-20 09:52:37 142

原创 算法设计-动态规划(1)-子序列和最大问题

算法设计-动态规划子序列和最大问题子序列和最大递推方程:d[i] = max{a[i], d[i-1]+a[i]},d[i]表示的是子序列一定会包含第i个元素的最大和,要么是从a[i]开始,要么是在原来的最大序列上再添一个a[i]。最终得到的最大子序列和是max{d[i]}(0<=i<=n)代码如下://b[i]的状态转移方程:b[i]=max{b[i-1]+a[i],a...

2019-11-18 23:17:06 528

原创 算法设计第二次上机作业-贪心算法

算法设计第二次上机作业-贪心算法区间合并题目描述给定 n 个闭区间 [ai; bi],其中i=1,2,…,n。任意两个相邻或相交的闭区间可以合并为一个闭区间。例如,[1;2] 和 [2;3] 可以合并为 [1;3],[1;3] 和 [2;4] 可以合并为 [1;4],但是[1;2] 和 [3;4] 不可以合并。我们的任务是判断这些区间是否可以最终合并为一个闭区间,如果可以,将这个闭区间输出...

2019-10-17 16:45:34 538

空空如也

空空如也

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

TA关注的人

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