自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 LeetCode 152. 乘积最大子数组

题目链接:https://leetcode.cn/problems/maximum-product-subarray//**解法1: 贪心做法:因为时乘积,由此得出以下结论1、出现0,肯定分割为前后两个段,从这两个段内找乘积最大2、在[2,-1,-3,-2,4]数组中,出现负数的个数为奇数时,将导致乘积为负数;2.1 所以要将数组中的总乘积48, 除以从数组中的第一个负数位置开始从右往左的每个数;2.2 所以要将数组中的总乘积48, 除以从数组中的最后一个负数位置开始从左往右的每个数;2.3

2022-05-23 08:56:18 169

原创 LeetCode 64. 最小路径和

/**二维转移方程:dp[i][j] = min(dp[i-1][j] , d[i][j-1]) + grid[i][j];dp[i][j] 为从(0,0)到(i,j)路径最小值从题目描述就可得到,当前位置的最小值,肯定来自上面([i-1][j])的位置和左面([i][j-1])的位置的最小值加上当前位置的数值特殊处理:i==0 或者 j==0 只能累加当前列或当前行二维数组解法:清晰,明确进阶版:滚动数组转移方程:dp[j] = min(dp[j], dp[j-1]) + grid[i.

2022-05-23 08:20:14 148

原创 LeetCode 11. 盛最多水的容器

/**[1,8,6,2,5,4,8,3,7]双指针算法left指向头,right指向尾这时应该移动left还是right呢1. 应该移动高度小的那个位置height[left] <= height[right]1.1 移动left指针,若移动时,while height[left+1] <= height[left] left++; 因为比height[left]还小,面积肯定更小,实际就是找到第一个比height[left]大的数1.2 移动right指针时,同理*/f.

2022-05-17 13:52:07 192

原创 LeetCode 31. 下一个排列

/**1,2,3,41,2,4,31,3,2,41,3,4,21,4,2,31,4,3,22,1,3,42,1,4,32,3,1,42,3,4,1...4,3,2,1从以上得到规律解题思路1. 从后往前找到第一个相邻升序的位置 i, i+12. 从后往前找到第一个比a[i]的大的数 k3. 交换a[i] a[k]4. 然后将i+1之后的位置,reverse*/func nextPermutation(nums []int) { i, j, k := len(.

2022-05-17 09:59:40 136

原创 Grpc 自定义解析器 resolver

package grpc_builderimport ( "fmt" "google.golang.org/grpc/resolver")const customResolverScheme = "custom"type customResolverBuilder struct {}type customResolver struct { target resolver.Target cc resolver.ClientConn}func (*customResol

2021-11-16 20:24:39 696

原创 Dgraph docker 安装

docker-compose.yml 文件注意替换whitelist的值version: "3.2"services: zero: image: dgraph/dgraph:latest volumes: - type: volume source: dgraph target: /dgraph volume: nocopy: true ports: - 5080:5080

2021-08-02 14:10:38 523

原创 CORS 跨域问题详谈

CORS是一个W3C标准,全称是"跨域资源共享"(Cross-origin resource sharing)。它允许浏览器向跨源服务器,发出XMLHttpRequest请求,从而克服了AJAX只能同源使用的限制。本文详细介绍CORS的内部机制。一、简介CORS需要浏览器和服务器同时支持。目前,所有浏览器都支持该功能,IE浏览器不能低于IE10。整个CORS通信过程,都是浏览器自动完成,不需要用户参与。对于开发者来说,CORS通信与同源的AJAX通信没有差别,代码完全一样。浏览器一旦发现

2020-12-24 19:00:35 289 1

原创 go test benchmark 性能分析

1、benchmark新建文件以_test.go结尾新增函数,以Benchmark开头源码:package mainimport "testing"func BenchmarkTest(b *testing.B) { b.ResetTimer() for i:=0; i<b.N; i++ { Print() } //runtime.GC()}func Print() { //测试代码}接下来就可以benchmarkgo test -be

2020-11-02 18:08:50 450

原创 Mac 使用CLion 调试mysql5.7

一、下载源码wget -c https://mirrors.tuna.tsinghua.edu.cn/mysql/downloads/MySQL-5.7/mysql-5.7.31.tar.gz # 下载mysqlwget http://sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz #下载boost库二、编译安装cd ./mysql-5.7.31mkdir build_outcmake ..

2020-10-14 14:54:26 295

原创 docker gdb调试redis

基础环境配置安装ubuntu镜像首先安装ubuntudocker pull ubuntudocker run -it ubuntu bash进入后,运行apt-get update,这个命令会:会访问源列表里的每个网址,并读取软件列表,然后保存在本地电脑。我们在软件包管理器里看到的软件列表,都是通过update命令更新的。apt-get updateredis服务基础环境因为redis是C语言编写的,所以需要gcc编译器和make,调试需要gdb,都通过apt-get可以安

2020-07-12 17:41:40 338

原创 面试算法篇-合并两个有序数组 (快速排序、归并排序)

package mainimport "fmt"func main() { arr := []int{2,1,4,3, 5, 6,7, 9} quickSort(arr, 0, len(arr)) fmt.Println(mergeSort(arr, 0, len(arr))) dealSortOrderArrs()}/**合并两个有序数组 */func dealSortOrderArrs() { arr1 := []int{1, 3, 5, 7} arr2 := []int.

2020-05-11 10:33:31 374

原创 LeetCode 221.最大正方形 解法

/**LeetCode 221.最大正方形形成2*2的小正方形,基础上[ [a, b] [c, d(?)]]若b >= a && c >= a说明d所在的一个正方形可以在a的基础上,扩充一行一列,变为长宽为a+1的正方形否则d为Min(b, c)的最小值为长宽的正方形,增加一行一列,变为长宽为Min(b, a)+1的正方形 */func maximalSquare(matrix [][]byte) int { rowLen := len(matrix) .

2020-05-09 13:40:39 196

原创 LeetCode 632.最小区间

/**LeetCode 632.最小区间解题思路:排序、离散化把所有数字按照数值大小从小到大排序,但是每个携带属于哪个k(行)然后把排序后的数字,离散化。例如: [34,56,10000]离散后,为[0,1,2]若有相同的数字要记录不同的k(属于哪个行)。然后每个离散后的数字以此为起点,找一个满足条件的区间 */func smallestRange(nums [][]int) [...

2020-05-08 14:59:34 237

原创 面试算法篇--反转链表

package mainimport ( "fmt")func main() { head := initList() printList(head) reHead := reverseListByDfs(head) printList(reHead) reHead = reverseList(reHead) printList(reHead)}type Node ...

2020-05-07 12:21:23 142

原创 LeetCode 带限制的子序列和

/**LeetCode 带限制的子序列和由题意可知,第i位的最大子序和,是在区间[i-k, i-1]中的最大值加上nums[i],但是若得出的结果,比nums[i]小,便舍弃。转移方程:dp[i] = Max(nums[i], dp[i-k...i-1] + nums[i])初始化:dp[0] = nums[0]利用堆heap维护dp[i-k...i-1]的递减序列*/func...

2020-05-07 11:01:37 204

原创 python爬虫:王祖贤海报

import requests as reqfrom lxml import etree# 引入webdriver,自动操作chrome浏览器from selenium import webdriver# 引入Chrome浏览器插件,相关说明:https://pypi.org/project/webdrivermanager/from webdriver_manager.chro...

2020-05-06 14:46:59 247

原创 LeetCode 对角线遍历II

/**LeetCode 对角线遍历 II对于同一个对角线上,i与j相加的值是相同的,而且i越大,越早输出由此,可以通过设置一个比较大的数值为一个位置的权重,同一个对角线的权重相同,而i也是影响输出时机以此基础,可以通过排序,获的输出时机*/func findDiagonalOrder(nums [][]int) []int { cnt := len(nums) // 权重初始化...

2020-04-27 21:21:47 195

原创 LeetCode 生成数组

/**dp[n][k][m] 定义为:n个位置,k个search_cost,以m结尾的数组种类个数由这个定义,可得初始化dp[1][1][1...m] = 1转移方程为:dp[n][k][m] = m*dp[n-1][k][m] + dp[n-1][k-1][m-1] + dp[n-1][k-1][m-2] + ... + dp[n-1][k-1][1]由此最后结果:n个位置,k个se...

2020-04-26 13:07:26 211

原创 LeetCode 数青蛙

问题内容给你一个字符串 croakOfFrogs,它表示不同青蛙发出的蛙鸣声(字符串 "croak" )的组合。由于同一时间可以有多只青蛙呱呱作响,所以croakOfFrogs 中会混合多个 “croak” 。请你返回模拟字符串中所有蛙鸣所需不同青蛙的最少数目。注意:要想发出蛙鸣 "croak",青蛙必须 依序 输出 ‘c’, ’r’, ’o’, ’a’, ’k’ 这 5 个字母。如果没...

2020-04-21 13:10:22 358

原创 架构设计-FMEA 方法

FMEA 方法FMEA(Failure mode and effects analysis,故障模式与影响分析),FMEA 是一种在各行各业都有广泛应用的可用性分析方法,通过对系统范围内潜在的故障模式加以分析,并按照严重程度进行分类,以确定失效对于系统的最终影响。具体分析方法给出初始的架构设计图。 假设架构中某个部件发生故障。 分析此故障对系统功能造成的影响。 根据分析结果,判断...

2020-03-29 11:05:47 920

原创 LeetCode--买卖股票的最佳时机系列

买卖股票的最佳时机I通过一次交易,获得最大利润,可以使用栈维护一个上升子序列,若第i天的价格大于栈顶元素,入栈,并计算栈底和栈顶的差值,记录这个差值;若第i天的价格小于栈顶元素,循环出栈,直到大于栈顶元素或者栈为空;type Stack struct { Sli []int Len int}func (s *Stack) Push(val int) { s.Sli[s.Len...

2020-03-22 18:15:54 515

原创 Go mod遇到问题

遇到verifying git.xxx.com/xxx/common@v0.7.2: git.xxx.com/xxx/go-common@v0.7.2: reading https://goproxy.cn/sumdb/sum.golang.org/lookup/git.xxx.com/xxx/common@v0.7.2: 404 Not Found解决方法:go env -w GOPRIV...

2019-11-28 17:39:53 1538

原创 快速搭建Gin框架

环境要求:go语言版本1.11以上初始化环境使用goModules进行管理依赖,主要涉及文件:go.mod、go.sum>mkdir ginDemo>cd ginDemo>set GO111MODULE=on>go mod init ginDemo使用go module 首先要设置GO111MODULE=on,GO111MODULE 有三个值,of...

2019-11-27 15:16:21 686

原创 ST算法

文字转载作用:ST算法是用来求解给定区间RMQ的最值,本文以最小值为例举例:给出一数组A[0~5] = {5,4,6,10,1,12},则区间[2,5]之间的最值为1。方法:ST算法分成两部分:离线预处理 (nlogn)和 在线查询(O(1))。虽然还可以使用线段树、树状链表等求解区间最值,但是ST算法要比它们更快,而且适用于在线查询。(1)离线预处理:运用DP思想,用于求解区间最值,并保存到一个二

2017-06-09 20:32:09 491

原创 Poj 3468 线段树 lazy

#include<iostream>#include<cstdio>#include<cstring>#include<stack>#include<vector>#include<queue>#include<algorithm>#include<map>#define lson l, mid, rt<<1#define rson mid+1, r, rt<<1 | 1using

2017-06-09 11:43:32 319

原创 最短路 多条路径

#include<cstdio>#include<iostream>#include<queue>#include<algorithm>#include<cmath>#include<cstring>#include<vector>#include<fstream>using namespace std;const int maxn = 900+10;const int inf =

2017-05-08 08:45:11 669

原创 矩阵快速幂

#include<cstdio>#include<iostream>#include<cmath>#include<vector>#include<cstring>#include<set>#include<algorithm>#include<map>using namespace std;typedef long long LL;typedef vector<int> ve

2017-04-07 11:36:11 292

原创 今日头条笔试题 数列

/* 树状数组维护 先以A对<A, B>排序 树状数组维护i以后的比y的个数*/#include<cstdio>#include<iostream>#include<algorithm>using namespace std;const int maxn = 100000+10;struct node { int x, y, pos; bool

2017-04-01 21:32:37 777

原创 MYSQL数据库基础知识及操作

一、数据库基础知识在任何一个关系数据库中,第一范式是对关系模式的基本要求,不满足第一范式的数据库就不是关系数据库第二范式定义:若关系模式R∈1NFR\in1NF,且关系模式R的每个非主属性完全函数依赖于码(候选码),则R∈2NFR\in2NF第三范式定义:在2NF基础上,若一个关系模式中所有非主属性完全依赖于码并且不传递依赖于码,则R∈3NFR\in3NFBC范式定义:设关系模式R(U,F)

2017-04-01 14:49:31 4369

原创 Linux的基本命令和操作

1、数据同步写入磁盘:sync 2、重启和关机:shutdown -h now 立刻关机, shutdown -r now 、reboot 立刻重启 3、切换执行等级:init 0 关机, init 3 进入纯命令模式,init 5 进入含有图形界面模式, init 6 重启 4、忘记root密码:以单用户维护模式登陆,登陆后就是root权限,即可更改账号密码。 5、超简单文本编译器:na

2017-04-01 10:30:42 386

转载 C++编译过程

编译过程主要分为4个过程 1) 编译预处理 预编译程序完成的工作,可以说成是对源程序的“替换”工作。经过这个过程,生成一个没有宏定义、没有条件编译指令、没有特殊符号的输出文件。 宏定义命令;例如#define 条件编译指令;例如#ifdef 头文件包含指令;例如#include 特殊符号;例如LINE,FILE 预处理模块;例如#pragma 2) 编译、优化阶段:通过词法分析、语法

2017-03-30 18:07:56 258

原创 后缀数组 倍增算法

/* 后缀数组 倍增法 sa[i]表示从字符串sa[i]开始的后缀数组,排列第i S[sa[i]]<S[sa[i+1]] ran[i]表示从i下标开始的后缀数组,从小到大排列的名次*/#include<iostream>#include<cstdio>#include<algorithm>#include<vector>#include<cstring>#include<cma

2017-03-16 17:23:00 416

原创 斯特林数 HDU 3625

/* 斯特林数第一类 n个元素的集合分成k个环排列的方法 s[n][0] = 0; s[1][1] = 1; s[n][k] = s[n-1][k-1]+n*s[n-1][k]; 当放入第n个元素,n可以为单独的循环排列,当n-1个元素已经占据了k个环排列,n可以插入n-1个元素的任意地方 该题要去除1号门的单独排列,所以。。。*/#include<cstdio>#include<

2017-03-14 14:41:06 453

原创 二叉树,前序+中序=>后序

#include<iostream>#include<cstdio>#include<vector>#include<cstring>using namespace std;const int maxn = 1000+10;char p[maxn], m[maxn], b[maxn];int n;struct node { struct node *l, *r; cha

2017-03-09 17:34:11 309

原创 Codeforces 496D

题意进行若干场比赛,每次比赛两人对决,赢的人得到1分,输的人不得分,先得到t分的人获胜,开始下场比赛,某个人率先赢下s场比赛时,游戏结束。 现在给出n次对决的输赢情况,问可能的s和t有多少种,并按s递增的方式输出解析若使用暴力,10000*10000的时间复杂度会超时,所以要另寻他法。 由于一个人满足t分一局比赛就结束,当一个人赢了s局,比赛结束。 所以我们要遍历t,但是每当一个人达到t分,我

2017-03-02 20:07:40 455

原创 hdu 3006 状压

The Number of setTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 1417 Accepted Submission(s): 883Problem Description Given you n sets.All p

2017-02-23 20:09:34 432

原创 mysql 修改密码和无法进入问题

以下是还原root权限和更改root密码的最便捷方法。1:装mysql workbench 。可视化界面直接操作。2:苹果->系统偏好设置->最下边点mysql 在弹出页面中 关闭mysql服务3:进入终端输入:cd /usr/local/mysql/bin/回车后 登录管理员权限sudo su回车后输入以下命令来禁止mysql验证功能 ./mysqld_safe --skip-grant-tabl

2017-02-22 14:22:21 1089

转载 hdu 3001 状压DP+三进制

hdu 3001 Travelling Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 7007 Accepted Submission(s): 2266Problem Description After coding so

2017-02-15 18:06:00 331

原创 数据库的连接 java

JDBC连接数据库 •创建一个以JDBC连接数据库的程序,包含7个步骤: 1、加载JDBC驱动程序: 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机), 这通过java.lang.Class类的静态方法forName(String className)实现。 例如: try{ //加载MySql的驱动类

2017-01-01 16:27:23 512

转载 MYSQL常用命令

1、MySQL常用命令 create database name; 创建数据库 use databasename; 选择数据库 drop database name 直接删除数据库,不提醒 show tables; 显示表 describe tablename; 表的详细描述 select 中加上distinct去除重复字段 mysqladmin drop databas

2016-12-19 09:49:29 397

空空如也

空空如也

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

TA关注的人

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