自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 java并发编程——并发理论基础

互斥:同一时间只允许一个线程访问共享资源(如,可重入锁)同步:多个线程协同工作(countDownLatch)分工:拆解任务并分配给线程(fork/Join)

2022-10-09 15:54:26 137 1

原创 单调栈&单调队列相关问题

滑动窗口的最大值给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。返回滑动窗口中的最大值。输入:nums = [1,3,-1,-3,5,3,6,7], k = 3输出:[3,3,5,5,6,7]解释:滑动窗口的位置 最大值[1 3 -1] -3 5 3 6 7 31 [3 -1 -3] 5 3 6 7 3

2021-07-27 23:58:06 106

原创 二叉树的搜索问题BFS/DFS

二叉树的序列化和反序列化输入:root = [1,2,3,null,null,4,5]输出:[1,2,3,null,null,4,5]输入:root = []输出:[]public class Codec { /** 思路分析: BFS实现序列化和反序列化 */ // Encodes a tree to a single string. public String serialize(TreeNode root) { i

2021-07-27 23:19:05 112

原创 三层循环的动态规划

戳气球有 n 个气球,编号为0 到 n - 1,每个气球上都标有一个数字,这些数字存在数组 nums 中。现在要求你戳破所有的气球。戳破第 i 个气球,你可以获得 nums[i - 1] * nums[i] * nums[i + 1] 枚硬币。 这里的 i - 1 和 i + 1 代表和 i 相邻的两个气球的序号。如果 i - 1或 i + 1 超出了数组的边界,那么就当它是一个数字为 1 的气球。求所能获得硬币的最大数量。class Solution { /** * 思路分析

2021-07-26 16:30:44 164

原创 括号处理相关问题

删除无效的括号给你一个由若干括号和字母组成的字符串 s ,删除最小数量的无效括号,使得输入的字符串有效。返回所有可能的结果。答案可以按 任意顺序 返回。public class Solution { /** * 思路分析: * 1 有效的括号是什么:左括号的数量不小于右括号的数量 * 需要统计左括号和右括号的数量,计算出最少需要删除的括号数量(leftRemove, rightRemove) * 2 回溯的创建可行解 *

2021-07-26 16:17:20 117

原创 dp解决股票问题

最佳买卖股票含冷冻期给定一个整数数组,其中第 i 个元素代表了第 i 天的股票价格 。​设计一个算法计算出最大利润。在满足以下约束条件下,你可以尽可能地完成更多的交易(多次买卖一支股票):你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。卖出股票后,你无法在第二天买入股票 (即冷冻期为 1 天)。class Solution { public int maxProfit(int[] prices) { if(prices == null || prices.

2021-07-26 12:37:39 89

原创 动态规划解决子序列、子串问题

最长递增子序列给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。子序列是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。class Solution { /** * 思路分析: * 1 时间复杂度O(n^2) * 返回最长递增子序列的长度dp[i]:表示以i为结尾的最长递增子序列 * 转移方程:dp[i]

2021-07-26 11:38:58 131

原创 优先队列解决K大K小问题

K大K小问题前 K 个高频元素给你一个整数数组 nums 和一个整数 k ,请你返回其中出现频率前 k 高的元素。你可以按 任意顺序 返回答案。class Solution { /** 优先队列 + HashMap: 先HashMap统计元素的频率 创建优先队列,根据频率从小到大存放元素,当队列元素超过k个时,出队,最后剩下k个元素就是频率最大的k个元素 */ public int[] topKFrequent(int[] nums, int

2021-07-24 18:12:53 100

原创 图相关算法

Floyd求解除法运算给你一个变量对数组 equations 和一个实数值数组 values 作为已知条件,其中 equations[i] = [Ai, Bi] 和 values[i] 共同表示等式 Ai / Bi = values[i] 。每个 Ai 或 Bi 是一个表示单个变量的字符串。另有一些以数组 queries 表示的问题,其中 queries[j] = [Cj, Dj] 表示第 j 个问题,请你根据已知条件找出 Cj / Dj = ? 的结果作为答案。返回 所有问题的答案 。如果存在某个

2021-07-24 17:48:55 58

原创 栈解决字符串

字符串解码给定一个经过编码的字符串,返回它解码后的字符串。编码规则为: k[encoded_string],表示其中方括号内部的 encoded_string 正好重复 k 次。注意 k 保证为正整数。class Solution { /** 思路分析: 用两个栈(数字栈和字符串栈)来维护,当遇到[的时候,就将前面的数字入数字栈和字符串入字符串栈 当遇到]的时候,就将字符串栈的栈顶字符串出栈num次,然后加到栈顶元素中 */ pub

2021-07-24 17:06:09 288

原创 二叉树最大路径和

每个节点不是必选状态不可选中相邻节点的最大路径和描述:在不可选择相邻节点的情况下,如何找到最大路径和难点:每个节点不是必可选思路:对于每个节点都有两个选择状态,可选,不可选,因此我们可以用一个数组来维护,选择时为0,不选择时为11 当选择当前节点时,子节点不可选2 当不选择当前节点时,max{选择子节点,不选择子节点}class Solution { public int rob(TreeNode root) { int[] res = dfs(root);

2021-07-24 16:20:37 78

原创 位运算相关的题

比特位计数问题描述给定一个非负整数 num。对于 0 ≤ i ≤ num 范围中的每个数字 i ,计算其二进制数中的 1 的数目并将它们作为数组返回。时间复杂度:O(n)class Solution { /** 思路分析: 找规律 n是偶数:1的个数等于n / 2的1的个数 n是奇数:1的个数等于n / 2的1的个数 + 1 */ public int[] countBits(int n) {

2021-07-24 15:51:47 40

原创 2021-07-23

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结系列文章目录前言一、pandas是什么?二、使用步骤1.引入

2021-07-23 14:04:18 54

原创 2021-03-29

Floyd求多源最短路径public void floyd(int[][] nums, int n){ int[][] distance = new int[n][n];//任意两个顶点的距离 //初始化 for (int i = 1; i <= n; i++) { for (int j = 1; j <= n; j++) { if(i == j){

2021-03-29 21:39:47 62

原创 二进制相关的操作

颠倒二进制位描述:颠倒给定的 32 位无符号整数的二进制位。难点:int所能存储的最大数值为,因为可以使用long存储结果,之后转换成int即可public class Solution { // you need treat n as an unsigned value public int reverseBits(int n) { long res = 0;//设置成long可以保留更大的数字 for(int i = 0; i < 3

2021-03-29 14:51:05 51

原创 Spring

# SpringMVC## SpringMVC的工作流程

2021-03-25 10:05:22 53

原创 机器学习——梯度下降

1、简单的梯度下降算法'''简单的梯度下降算法'''import numpy as npimport matplotlib.pyplot as plt#目标函数 y = x^2def func(x): return np.square(x)#目标函数的一阶导函数,也是偏导def dfunc(x): return 2*x#梯度下降算法def GD(x_sta...

2019-11-01 13:59:01 194

原创 机器翻译---随笔

Ttarget=argmaxTP(T)P(S∣T)T_{target}=argmax_{T}P(T)P(S|T)Ttarget​=argmaxT​P(T)P(S∣T)基于噪声信道模型的统计机器翻译P(T∣S)=P(T)P(S∣T)P(S)P(T|S)=\frac{P(T)P(S|T)}{P(S)}P(T∣S)=P(S)P(T)P(S∣T)​对于目标语言句子t1l=t1t2⋯tlt_1^l=t...

2019-10-28 21:41:05 117

原创 逻辑斯蒂回归与最大熵模型

1 逻辑斯蒂回归模型1.1 逻辑斯蒂分布定义 1.1 逻辑斯蒂分布F(x)=P(X≤x)=11+e−(x−u)/rF(x)=P(X\leq x)=\frac{1}{1+e^{-(x-u)/r}}F(x)=P(X≤x)=1+e−(x−u)/r1​f(x)=F′(x)=P(X≤x)=e−(x−u)/rγ(1+e−(x−u)/r)2f(x)=F^{'}(x)=P(X\leq x)=\frac{e...

2019-10-23 22:50:02 181

原创 朴素贝叶斯---算法复现

朴素贝叶斯分类器算法思路:(1)计算先验概率和条件概率P(Y=ck)=∑i=1NI(yi=ck)N,k=1,2,...KP(Y=c_k)=\frac{\sum_{i=1}^NI(y_i = c_k)}{N},k=1,2,...KP(Y=ck​)=N∑i=1N​I(yi​=ck​)​,k=1,2,...KP(X(j)=x(j)∣Y=ck)=∑i=1NI(xi(j)=ajl,yi=ck)∑i=...

2019-10-23 11:11:59 241

原创 算法作业二

1、基址选址问题题意:假定有一条很长的直线形河流,在河岸上有 n 个房子。可以将该河流看作一条坐标轴,房 子的位置以一维坐标的形式按严格递增的顺序给出 (单位为公里)。某通信公司希望在河岸的某 些位置搭建手机基站,使得对任意一间房子都存在一个基站到它的距离小于等于 c 公里,c 为给 定的一个常数。请给出一个有效的算法来最小化需要搭建的基站的数量,并证明算法的正确性。 (注:时间复杂度为 O(...

2019-10-22 22:20:13 206

原创 隐马尔可夫模型——随笔

例子:告诉你球的观测序列,比如O={红,红,白,白,红},但是不知道它们是从那个盒子取出来的,即状态序列是隐藏的,这就是一个典型的隐马尔可夫模型。要解决隐马尔可夫模型的过程:(1)确定状态集合,观测集合,状态序列和观测序列的长度,以及初始概率分布,状态转移概率分布,观测概率分布。算法一:(观测序列的生成过程)输入:隐马尔科夫模型λ=(A, B, π),观测序列长度T;输出:观测序列O=...

2019-10-21 19:53:07 233

原创 NLP中几种常见的数据平滑方法

0、简介:本文所要介绍的平滑就是用来解决这类零概率问题的。其本质核心就是“劫富济贫”,即提高低概率,降低高概率,尽量使概率分布趋于均匀。1、加法平滑方法假设每一个n元语法发生的次数比实际统计的次数多δ\deltaδ次。padd(wi∣wi−n+1i−1)=δ+c(wi−n+1i)δ∣V∣+∑wic(wi−n+1i)p_{add}(w_i|w_{i-n+1}^{i-1})=\frac{\de...

2019-10-18 11:21:36 5585

原创 李航统计学习方法优秀博客大全

1、代码、例题总结lihang-code

2019-10-12 14:15:13 115

原创 NLP(二)——数学基础

一、概率论1、概率三条公理:(1)非负性:P(A)>=0P(A)>= 0P(A)>=0(2)规范性:P(Ω)=1P(Ω)=1P(Ω)=1(3)可列可加性:P(∑i=0nAi)P(\sum_{i=0}^nA_i)P(∑i=0n​Ai​)=∑i=0n\sum_{i=0}^n∑i=0n​P(Ai)P(A_i)P(Ai​)2、最大似然估计用相对频率作为概率的估计值,这种概率...

2019-10-11 21:16:21 387

原创 0-1背包相关问题

一、问题描述有n个物品,每个物品有各自的体积和价值,有一个给定容量的背包。问:在不超过背包总容量的前提下,如何装物品才能使得背包的总价值最大?二、动态规划算法原理及其过程1、原理动态规划是把大问题拆分成若干子问题,通过寻找大问题与子问题的递推关系,解决一个个子问题,最终到达解决原问题的效果。动态规划则通过填写表把所有已经解决的子问题答案记录下来,在新问题里需要用到的子问题的解可以...

2019-10-11 13:43:03 103

原创 蓝桥杯2n皇后

#include &lt;iostream&gt;#include &lt;cstring&gt;#include &lt;algorithm&gt;#include &lt;cstdio&gt;using namespace std;int a[10],b[10],n,i,t;int f[10][10];int check(int a[],int n){ for(in...

2018-03-22 21:05:47 254

原创 蓝桥杯Huffman树

#include&lt;iostream&gt;#include &lt;algorithm&gt;using namespace std;int main() { int n,k=0,s=0,a[105]; cin &gt;&gt;n; for(int i=0;i&lt;n;i++) cin &gt;&gt;a[i]; for(int i=...

2018-03-21 21:19:27 318

原创 2017.5.3哈弗曼树编码算法实践

算法步骤:1.建立节点模型HTnode2.从指定的节点中找出没有父节点并且权值最小的两个节点3。建树建树详细:先初始化,然后建立n个只含根节点的子树,之后将n个子树进行n-1 次合并。4.编码编码详解:申请一个字符串,左边+0,右边+1.#include#includeusing namespace std;//结点类型struct element { double weight

2017-05-03 20:33:39 403

原创 拓扑排序算法详解

一、定义:是将一个有向无环图G的所有的顶点排成一个线性序列,使得有向图中的任意的顶点u 和 v 构成的弧属于该图的边集,并且使得 u 始终是出现在 v 的前面。通常这样的序列称为是拓扑序列。注意:只有有向无环图才可以进行拓扑排序二、算法思想:1.找到有向无环图中没有前驱的节点(或者说是入度为0的节点)输入;2.然后从图中将此节点删除并且删除以该节点为尾的弧;

2016-11-10 20:25:47 5579

原创 层次分析法的matlab的实现

层次分析法的matlab的实现:【实例】市政部门管理人员需要对修建一项市政工程项目进行决策,可选择的方案是修建通往旅游区的高速路(简称建高速路)或修建城区地铁(简称建地铁)。除了考虑经济效益外,还要考虑社会效益、环境效益等因素。递阶层次结构及判断矩阵分别见下:表2  判断矩阵表  AB1

2016-09-10 20:12:28 9555

原创 matlab编程入门

MATLAB编程入门:计算机程序就是计算机指令的集合,不同的编程语言指令与功能是不一样的.MATLAB语言是一种面向对象的高级语言,它具有编程效率高、易学易用的优点.    MATLAB与其它大部分高级语言一样,有它自己的控制流语句.控制流极其重要,因为它使过去的计算影响将来的运算。MATLAB提供如下几种控制流结构:For循环,While循环,If-Else-End结构和sw

2016-09-09 12:07:59 1976

原创 二部图最大匹配

题意:一个矩阵,元素除了1就是0,问将所有的在同行或者同列的1连接起来,最少需要多少条线。输入:24 400100101001000005 410010010110011100101输出:Case #1: 2Case #2: 4分析:看到题目的第一眼以为是将统计每一行每一列中1的个数,之后从

2016-08-24 20:42:44 780

原创 二部图最大匹配--匈牙利算法

二分图的最大匹配、完美匹配和匈牙利算法这篇文章讲无权二分图(unweighted bipartite graph)的最大匹配(maximum matching)和完美匹配(perfect matching),以及用于求解匹配的匈牙利算法(Hungarian Algorithm);不讲带权二分图的最佳匹配。二分图:简单来说,如果图中点可以被分为两组,并且使得所有边都跨越组的边界,则这就是

2016-08-24 20:32:58 842

原创 枚举集合--二进制法

二进制枚举子集:1.从最右边开始,代表的数字都是从0开始,1代表该数字在集合中,0代表该数字不在集合中。2.二进制运算:二进制中的按位与,或,异或对应集合运算的交,并,对称差。3.一般将全集定义为ALL_BITS=(1枚举集合(1,2,.......n-1)#include#include#include#includeusing namespace std

2016-08-22 12:48:59 2699

原创 poj题目分类

初期:一.基本算法:     (1)枚举. (poj1753,poj2965)     (2)贪心(poj1328,poj2109,poj2586)     (3)递归和分治法.     (4)递推.     (5)构造法.(poj3295)     (6)模拟法.(poj1068,poj2632,poj1573,poj2993,poj2996)二.图算法:  

2016-08-22 12:45:19 268

原创 hdu oj 题目分类

基础题:1000、1001、1004、1005、1008、1012、1013、1014、1017、1019、1021、1028、1029、1032、1037、1040、1048、1056、1058、1061、1070、1076、1089、1090、1091、1092、1093、1094、1095、1096、1097、1098、1106、1108、1157、1163、1164、1170、11

2016-08-22 12:42:12 298

原创 ACM几何题目大全

计算几何题的特点与做题要领:1.大部分不会很难,少部分题目思路很巧妙2.做计算几何题目,模板很重要,模板必须高度可靠。3.要注意代码的组织,因为计算几何的题目很容易上两百行代码,里面大部分是模板。如果代码一片混乱,那么会严重影响做题正确率。4.注意精度控制。5.能用整数的地方尽量用整数,要想到扩大数据的方法(扩大一倍,或扩大sqrt2)。因为整数不用考虑浮点误差,而且运算比浮点

2016-08-19 21:49:33 650

原创 POJ 3311--佛洛依德枚举

题意:有 n 个地点,之后告诉你n个地点的之间的距离,问从起点出发,经过所有的点后再回到起点,求最短路。输入:30 1 10 101 0 1 210 1 0 1010 2 10 00输出:8分析:可以先求出任意两点之间的最短路,直接三重循环的floyed就可以,之后将n个点全排列,找出全排列后的所有点构成的回路的最小值即可。小技

2016-08-19 21:08:14 323

原创 POJ 3310--图

题意:一个无向图,如果这个无向图上有一条路径能将所有的度数大于等于2的节点串联起来,而且这个无向图没有环而且是连通的,就输出Graph 2 is a caterpillar否则输出Graph 1 is not a caterpillar。输入:22211 2 2 3 2 4 2 5 2 6 6 7 6 10 10 8 9 10 10 12 11 12 12 13 1

2016-08-19 20:36:46 389

空空如也

空空如也

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

TA关注的人

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