自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 面试经历汇总

目录7.14经历-哲库-协议软件开发

2022-07-14 11:35:39 207 1

原创 贪心相关题目

621. 任务调度器给你一个用字符数组tasks 表示的 CPU 需要执行的任务列表。其中每个字母表示一种不同种类的任务。任务可以以任意顺序执行,并且每个任务都可以在 1 个单位时间内执行完。在任何一个单位时间,CPU 可以完成一个任务,或者处于待命状态。然而,两个 相同种类 的任务之间必须有长度为整数 n 的冷却时间,因此至少有连续 n 个单位时间内 CPU 在执行不同的任务,或者在待命状态。你需要计算完成所有任务所需要的 最短时间 。示例 1:输入:tasks = ["..

2022-05-08 11:53:49 178

原创 KMP算法详解

问题简单描述:给定字符串s和模式串p,求模式串p在字符串s中出现的位置(所有位置都要给出),假设给定字符串s="ababcdabcabcd",模式串p="abcd"朴素思路解法暴力搜索:模式串逐个向右移动,复杂度O(M*N)//字符串sa b c a b c a b k //模式串 a b c a b k a b c a b c a b k a b c a b k a b c a b c a b k a b c a b c a b k

2022-04-24 10:50:15 350

原创 数组相关题目

前缀和相关前缀和相关题目主要出现在要求解满足某种条件的连续子数组个数,同时在二叉树中也有437. 路径总和 III,满足某种条件的路径的数目,根据数组的前缀和,很容易快速得到某个子数组的和,同时,在这里还有一个小技巧在于,用哈希表存储前缀和时,使用第一项为sum、第二项为sum的个数时可以更加快速求解出满足条件的子数组的个数<sum, num>560. 和为 K 的子数组给你一个整数数组 nums 和一个整数k ,请你统计并返回 该数组中和为k的子数组的个数。...

2022-04-11 10:55:19 1220

原创 并查集相关

并查集被很多OIer认为是最简洁而优雅的数据结构之一,主要用于解决一些元素分组的问题。它管理一系列不相交的集合,并支持两种操作:合并(Union):把两个不相交的集合合并为一个集合。 查询(Find):查询两个元素是否在同一个集合中。亲戚问题问题描述:若某个家族人员过于庞大,要判断两个是否是亲戚,确实还很不容易,现在给出某个亲戚关系图,求任意给出的两个人是否具有亲戚关系。规定:x和y是亲戚,y和z是亲戚,那么x和z也是亲戚。如果x,y是亲戚,那么x的亲戚都是y的亲戚,y的亲戚也..

2022-04-06 14:48:07 124

原创 最小生成树&最短路径问题

知识点回顾:最小生成树最小生成树算法主要有Prime算法和Kruskal算法,Prime算法主要是从构造的已有的最小生成子集中不断扩充子集,在扩充子集时满足新加入的那条边要是最小的。Kruskal算法主要是从边的角度出发,每次都从待选边中选择权值最小并且不会构成环的那条边。Prime算法模板代码:#include "bits/stdc++.h"using namespace std;//定义图中节点的数量# define NUM 10000//定义节点间的最大距离# de

2022-04-01 11:39:36 245

原创 递归、栈类题目

394. 字符串解码给定一个经过编码的字符串,返回它解码后的字符串。编码规则为: k[encoded_string],表示其中方括号内部的 encoded_string 正好重复 k 次。注意 k 保证为正整数。你可以认为输入字符串总是有效的;输入字符串中没有额外的空格,且输入的方括号总是符合格式要求的。此外,你可以认为原始数据不包含数字,所有的数字只表示重复的次数 k ,例如不会出现像3a或2[4]的输入。示例 1:输入:s = "3[a]2[bc]"输出:"aaa...

2022-03-31 10:05:01 93

原创 数学类相关题目

目录HJ6 质数因子338. 比特位计数HJ6 质数因子描述功能:输入一个正整数,按照从小到大的顺序输出它的所有质因子(重复的也要列举)(如180的质因子为22335)数据范围:1 \le n \le 2 \times 10^{9} + 14 \1≤n≤2×109+14输入描述:输入一个整数输出描述:按照从小到大的顺序输出它的所有质数的因子,以空格隔开。示例1输入:180复制输出:2 2 3 3 5思路...

2022-03-30 16:19:46 283

原创 STL模板操作以及字符串操作相关

主要是熟悉各种STL模板的使用347. 前 K 个高频元素给你一个整数数组 nums 和一个整数 k ,请你返回其中出现频率前 k 高的元素。你可以按 任意顺序 返回答案。示例 1:输入: nums = [1,1,1,2,2,3], k = 2输出: [1,2]示例 2:输入: nums = [1], k = 1输出: [1]#include "bits/stdc++.h"using namespace std;class Solution {public.

2022-03-29 16:25:27 398

原创 二分查找及其变体

目录33. 搜索旋转排序数组34. 在排序数组中查找元素的第一个和最后一个位置33. 搜索旋转排序数组整数数组 nums 按升序排列,数组中的值 互不相同 。在传递给函数之前,nums 在预先未知的某个下标 k(0 <= k < nums.length)上进行了 旋转,使数组变为 [nums[k], nums[k+1], ..., nums[n-1], nums[0], nums[1], ..., nums[k-1]](下标 从 0 开始 计数)。例如, ...

2022-03-16 20:54:01 262

原创 树:深度优先遍历、广度优先遍历相关

深度优先遍历模板:void dfs(int u, int v, vector<vector<pair<int, double>>> edges, vector<double> &out){ //对u节点进行dfs遍历,v是目标节点 if(u == v) return; for(const auto& node_val: edges[u]){ ..

2022-03-01 10:58:18 203

原创 链表相关题目

141. 环形链表给你一个链表的头节点 head ,判断链表中是否有环。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。如果 pos 是 -1,则在该链表中没有环。注意:pos 不作为参数进行传递,仅仅是为了标识链表的实际情况。如果链表中存在环,则返回 true 。 否则,返回 false 。示例 1:输入:head = [3,2,0,-4],

2022-01-19 09:42:10 275

原创 并查集算法

并查集(Disjoint-Set)是一种可以动态维护若干个不重叠的集合,并支持合并与查询两种操作的一种数据结构并查集是一种树型的数据结构,用于处理一些不相交集合(Disjoint Sets)的合并及查询问题。常常在使用中以森林来表示。并查集有两个基本操作:Find: 查找元素所属子集 Union:合并两个子集为一个新的集合可以使用树这种数据结构来表示集合,不同的树就是不同的集合,并查集中包含了多颗树,表示并查集中不同的子集,树的集合是森林,所有并查集属于森林。基础操作初始化:/

2022-01-12 13:53:44 298 1

原创 一些不知道怎么归类的题目

128. 最长连续序列给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。请你设计并实现时间复杂度为O(n) 的算法解决此问题。示例 1:输入:nums = [100,4,200,1,3,2]输出:4解释:最长数字连续序列是 [1, 2, 3, 4]。它的长度为 4。示例 2:输入:nums = [0,3,7,2,5,8,4,6,0,1]输出:9class Solution {public: int lon.

2022-01-10 13:55:04 206

原创 CMake教程

CMake是众多Make工具中的一种,就是对代码进行编译,测试以及打包,操作本教程主要参考CMake Tutorial相关源代码可以在CMake官网Step1: A Basic Starting PointBuild and Run`CMakeLists.txt`文件说明了代码在编译时的相关要求,以如下的`CMakeList.txt`为例。cmake_minimum_required(VERSION 3.10)# set the project nameproject(Tutor.

2021-11-11 11:03:59 139

原创 二叉树相关

关于二叉树的建立、前序、中序、后序遍历可以参考二叉树遍历实现98. 验证二叉搜索树给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树。有效 二叉搜索树定义如下:节点的左子树只包含 小于 当前节点的数。节点的右子树只包含 大于 当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。示例 1:输入:root = [2,1,3]输出:true/** * Definition for a binary tree node. * struct .

2021-09-26 10:47:17 120

原创 分治算法总结

分治算法的基本思想是将一个规模为N的问题分解为K个规模较小的子问题,这些子问题相互独立且与原问题性质相同。求出子问题的解,就可得到原问题的解。即一种分目标完成程序算法,简单问题可用二分法完成。基本思想当我们求解某些问题时,由于这些问题要处理的数据相当多,或求解过程相当复杂,使得直接求解法在时间上相当长,或者根本无法直接求出。对于这类问题,我们往往先把它分解成几个子问题,找到求出这几个子问题的解法后,再找到合适的方法,把它们组合成求整个问题的解法。如果这些子问题还较大,难以解决,可以再把它.

2021-09-10 19:57:30 1199

原创 一些杂七杂八的东西

对于结构体的排序,见如下代码:struct interval{ int begin, end;};static bool Cmpare(const interval &a, const interval &b) { return a.begin <= b.begin;}vector<interval> vec;sort(vec.begin(), vec.end(), Cmpare);对于vector按照第一维数据排序,见如下代码:v

2021-09-10 19:57:07 156

原创 二叉树遍历实现

在二叉树的操作中,二叉树的遍历是基本的操作,对于二叉树的遍历操作,主要分为:前序遍历 中序遍历 后序遍历 层次遍历直接见代码:#include <iostream>#include <stack>#include <queue>#include <malloc.h>using namespace std;typedef struct BiTNode{ int data; struct BiTNode *left,

2021-08-24 19:31:02 304

原创 贪心算法总结

贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的是在某种意义上的局部最优解。贪心算法不是对所有问题都能得到整体最优解,关键是贪心策略的选择,选择的贪心策略必须具备无后效性,即某个状态以前的过程不会影响以后的状态,只与当前状态有关。基本思路建立数学模型来描述问题; 把求解的问题分成若干个子问题; 对每一子问题求解,得到子问题的局部最优解; 把子问题的解局部最优解合成原来解问题的一个解。一些典型例题活动安排问题.

2021-08-21 11:10:40 648 2

原创 单调栈技术&&单调队列

单调栈的定义:单调栈即满足单调性的栈结构。与单调队列相比,其只在一端进行进出。

2021-08-18 15:42:22 137

原创 动态规划归纳

目录线性DP最长递增子序列最长公共子序列32. 最长有效括号背包DP经典背包问题常见的动态规划问题可以分为以下几类:线性DP、区间DP、背包DP、树形DP等,当然除此之外,还有状态压缩DP、数位DP、计数型DP、递推型DP、概率型DP、博弈型DP、记忆化搜索等,线性DP最长递增子序列dp[i]表示以nums[i]结尾的子序列的最大长度则dp[i] = max(dp[j] + 1) for j in [0...i-1] and nums[i] >= nums[

2021-08-15 17:18:41 326

原创 排序算法总结及实现

归并排序算法思路可以参见如下图:#include "bits/stdc++.h"using namespace std;//此部分代码为归并排序的实现void merge(int a[], int low, int middle, int high){ //此部分代码为将a[low1: middle]与a[middle+1: high]合并 int p=low, q=middle+1, k=0; int *temp = new int[hi.....

2021-08-14 17:13:10 97

原创 回溯-剪枝

回溯算法也可以认为是某种程度的暴力穷举,但是在暴力穷举的过程中,可以根据解的相关性质将不满足条件的解及时剪枝相关例题括号生成数字 n代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。示例 1:输入:n = 3输出:["((()))","(()())","(())()","()(())","()()()"]class Solution {public: vector<string> vec; void df...

2021-08-13 17:03:07 482

原创 双指针技术&&滑动窗口

双指针,指的是在遍历对象的过程中,不是普通的使用单个指针进行访问,而是使用两个相同方向(快慢指针)或者相反方向(对撞指针)的指针进行扫描,从而达到相应的目的。这里需要理解的是:双指针也还是相当于在对元素进行两重循环遍历,但此处的双指针根据某些性质完美地省略了许多需要遍历的空间。可以参考以下两题盛最多水的容器给你 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点(i,ai) 。在坐标内画 n 条垂直线,垂直线 i的两个端点分别为(i,ai) 和 (i, 0) ......

2021-08-09 16:00:01 387

原创 堆排序实现

大顶堆:当前节点值大于其左右节点,可用来计算top K小的元素 小顶堆:当前节点值小于其左右节点,可用来计算top K大的元素 #include <bits/stdc++.h>using namespace std;/*堆排序算法实现:大顶堆的建立,以及堆的维护当前节点大于其左右节点,每次筛选出最大的节点,可以维持最小的K个元素算法时间复杂度,O(nlogn)*/void HeapAdjust(int a[], int len, int index){ //

2021-07-15 20:57:25 113 3

原创 快速排序实现

#include <bits/stdc++.h>using namespace std;/*实现了快速排序算法基本思想:1.从数列中挑出一个元素,称为 "基准"(pivot);2.重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准值大的摆在基准的后面(相同的数可以到任一边)。在这个分区退出之后,该基准就处于数列的中间位置。这个称为分区(partition)操作;3.递归地(recursive)把小于基准值元素的子数列和大于基准值元素的子数列排序;素一般情.

2021-07-15 11:15:07 103

原创 T-digest

目录算法原理示例T-digest的建立T-digest的查询相关链接上一篇博客中讲述了使用RandomRandomRandom算法进行quantilequantilequantile估算,详情可见Random,本博客将讲诉另外一个quantilequantilequantile估算算法:T−digestT-digestT−digest,该算法理论基础可以参考Computing Extremely Accurate Quantiles Using t-Digest算法原理该算法的思想是将输入数据表示缩减

2020-07-20 22:38:41 2043 2

原创 Random

Random算法介绍SampleBuffer的生成SampleBuffer的合并算法流程示例本博客将介绍Quantile估算中的一种算法:Random,该算法同样源于Manku等人的Approximate medians and other quantiles in one pass and with limited memory一文的思想。算法介绍SampleBuffer的生成该算法需要维持一个SampleBufferSampleBufferSampleBuffer的数据结构,该数据结构共有bbb

2020-07-17 20:56:33 908

原创 Python编程

字典Python 字典(Dictionary) copy()方法注意深拷贝与浅拷贝dict1 = {'user':'runoob','num':[1,2,3]} dict2 = dict1 # 浅拷贝: 引用对象dict3 = dict1.copy() # 浅拷贝:深拷贝父对象(一级目录),子对象(二级目录)不拷贝,还是引用 # 修改 data 数据dic...

2020-03-20 09:55:15 73

翻译 社区探测(Community Detection)

本文将以跆拳道俱乐部的例子作为讲解,可以参见Zachary_karate_clubDGL框架的使用图的建立及可视化DGLDGLDGL框架依赖于MxnetMxnetMxnet、PytorchPytorchPytorch、TensorflowTensorflowTensorflow,本文将以PytorchPytorchPytorch框架来讲解。## DGL框架的使用import dgld...

2020-02-15 13:57:55 1844

原创 链路分析(Link analysis)

随机游走(random walk)Flow Formulation当某个网页的输入链接越多时,说明该网页越重要(Page is more important if it has more out-links)首先定义某一页的rank:rj=∑i→jridir_{j}=\sum_{i \rightarrow j} \frac{r_{i}}{\mathrm{d}_{i}}rj​=i→j∑...

2019-12-04 11:22:50 2373

原创 聚类

聚类算法在实际应用中非常常见,例如,对音乐CD进行聚类,以达到对音乐CD的目的,从而合理地给用户推荐CD;文件中单词的聚类,以将具有相同主题的文章汇合在一块。本文主要介绍以下几种常见的聚类算法,例如:层次聚类算法(Hierarchical algothrim)、k-means算法、 BFR Algorithm、 CURE Algorithm。层次聚类(Hierarchical)层次聚类的一般过...

2019-11-28 15:39:48 1468

原创 机器学习

感知器学习(Perceptrons)感知器学习的一般形式:f(x)={+1 if w1x1+w2x2+…wdxd≥θ−1 otherwise f(\mathbf{x})=\left\{\begin{array}{ll}{+1} & {\text { if } \mathbf{w}_{1} \mathbf{x}_{1}+\mathbf{w}_{2...

2019-11-11 15:36:15 137

原创 数据降维

SVD分解对于

2019-11-06 21:37:02 270

原创 推荐系统

在引入推荐系统这个概念前,我们首先讲述Long Tail现象。对于实体商店而言,由于其货架是有限的,所以要尽可能挑选卖的好的商品摆在货架上。Long Tail是指大部分的商品的popularity没那么高。同理对于线上商店来说,虽然可以摆出很多商品,但推荐给某个用户的商品也是有限的。基于内容的推荐系统(Content-Based Recommendations)主要思想:根据用户对打分比较高...

2019-11-04 17:15:41 239

原创 社会网络挖掘

社会网络挖掘大规模图的分析--社区探测Girvan-Newman算法流程边介数(betweenness)的计算边介数的计算过程模块度(Modularity)功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公...

2019-10-24 11:08:37 1056

原创 Leetcode第130次周赛

周赛链接:https://leetcode-cn.com/contest/weekly-contest-130第一题:水题第二题:网上有关于-2进制的公式,就不赘述。下面讲一下我自己的解法。用数组a[i]存储其二进制首先对于i= 1,3,...,奇数位进行处理,若奇数位为0,不做处理,若奇数位为1,则向前面的偶数位进1 对于i=0,2,...,偶数位进行处理时,若偶数位为0,1,...

2019-09-15 11:24:32 117

原创 Leetcode-子数组的最小值之和

写在前面,很久没刷leetcode的题,已经没有做编程题的感觉了,这道中等难度的题看题解之后还折腾了一天左右,真的是菜鸡,有个坑,一直没有注意。题目描述:给定一个整数数组A,找到min(B)的总和,其中B的范围为A的每个(连续)子数组。由于答案可能很大,因此返回答案模10^9 + 7。思路:首先要将题目转换成对于数组A,数组中的某个元素A[i],求出A[j],使得,...

2019-09-15 11:02:05 405 1

原创 矩阵的特征值与特征向量

对于矩阵,有,其中,为常数,为非零列向量。称为其特征根,为特征向量。可以转化为如下形式:根据,为阶方阵,想要得到非零解,则要求,即,故能得到下式:求出后,代入上式即可得出。采用上面的方法求解的次多项式时,时间复杂度较高。下面给出另外一种方法,当矩阵为对称阵时。首先随机生成一个非零向量 迭代求解,为单位向量 迭代中止条件: 求解,因为,同时左乘,可得,又 构造新矩阵,...

2019-09-05 15:42:13 602

空空如也

空空如也

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

TA关注的人

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