自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 B站左程云算法视频高级班07

题目一:一个字符串可以分解成多种二叉树结构,判断是否互为旋变串过滤器:字符种类一样,每种字符的个数一样str1选[L1……] K段str2选[L2……] K段判断是否是旋变串可能性分类:str1 : a1a2a3a4a5str2: b1b2b3b4b5K = 1 时候,判断是否相等K=5,第一种切法: a1做左部分,a2-a5做右部分a1和b1 && a2-a5 和 b2 - b5a1和b5 && a2-a5 和 b1 - b4俩个有一个成立互为旋变串俩都是false判断a1a2 和 b1b2

2022-07-02 11:34:47 425 1

原创 B站左程云算法视频高级班06

题目一:判定一个由[a - z]字符构成的字符串和一个包含'?'和'*'通配符的字符串是否匹配?匹配任意单一字符*匹配任意多个字符包括0个字符输入描述:字符串str和包含通配符的字符串pattern,1小于等于字符串长度小于等于100输出描述:true表示匹配,false表示不匹配str(小写字母)exp(小写字母、*、.)boolean f(str , exp, si, ei)改成DP递归:大问题调用小问题,大问题做决策1调用小问题1 做决策2调用小问题2 ……保证大问题做的所有的决策的影响

2022-07-01 17:55:52 222

原创 B站左程云算法视频高级班05

题目一:在一个无序数组中,求第k小的数快排:荷兰国旗问题之后的步骤和快排一样假设整个方法叫f函数 f(arr, k)1)0~4一组 5~9一组 0~14一组 剩下的一组2)marr[a,b,c,d,……] 每组选一个中位数 O(N)3)求marr的中位数 N/5 f(marr, marr/2) -> x即估计大于等于x的数至少有多少个 1)分组 O(1)2)组中中位数 O(N)3)f(marr, marr.length/2) 得出x T(N/5)4)小于x 等于x 大于x O(N)5)T(7N

2022-06-30 18:07:46 264

原创 B站左程云算法视频高级班04

题目一:给定一个数组arr,长度为N,且每个值都是正数,代表N个人的体重。再给定一个正数limit,代表一艘船的载重,一下是坐船规则:1)每艘船最多只能坐俩个人2)乘客的体重和不能超过limit返回如果同时让这N个人过河至少需要几条船先排序:假设【1,1,3,3,3,4,4,5,5,5,7,7,9,9,9】 limit = 10先看小于等于limit/2的最右的位置如果没有则返回N条船双指针【L】+【R】 ? limit大于时 L左移小于等于时,R右移最后,统计 统计数量:勾号a个,x号b个,三角c个一

2022-06-30 16:16:00 252 1

原创 B站左程云算法视频高级班03

题目一:K伪进制9 3进制 100 3伪进制 2 3 每个位置上的进制都是1~k,不能为0先给每个位置从右往左分一个,再从左往右分题目二: 改成动态规划(加缓存) 记忆化搜索题目三:给定一个字符串str,str表示公式,公式里可能有整数、加减乘除符号和左右括号,返回公式的计算结果。f(str,i)返回俩值:1)值 2)算到第几位举例子:34 - 64 * 9 + 42* 70 * 30 / 4 - 6遇到符号就把num进栈,符号进栈,num回零,如果栈顶元素是乘除,弹

2022-06-26 16:38:17 140

原创 B站左程云算法视频高级班02

有序表(接口)红黑树、跳表、AVL树、SB树 复杂度O(logN)题目一:根据最大高度的变化,maxH,把原数组改成开始位置增加,结束位置减少的数组[2,6,8] 改成 [2,add,8],[6,del,8][7,11,9] 改成 [7,add,11] , [11,del,9][4,8,5] 改成 [4,add,5],[8,del,5][1,14,4] 改成 [1,add,4],[14,del,4][3,5,3] 改成 [3,add,3],[5,del,3]根据第一维数据排序,相同的add排在前面

2022-06-26 14:57:36 145

原创 B站左程云算法视频高级班01

题目1:给定一个数组,求如果排序之后,相邻两数的最大差值,要求时间复杂度O(N),且要不能用非基于比较的排序[ ]假设是长度为9的数组首先遍历数组 找出min 和 max等分成10份举例: 分为 桶内相邻和桶外相邻中间必定存在空桶每个桶只留该桶的最小值和最大值最后的结果不一定是空桶两侧的结果设置空桶的意义在于设置一个平凡解,杀死一个类型的可能性(一个桶内部),进而达到优化题目二:给定n个数字a1,...,an,问最多有多少不重复的非空区间,使得每个区间内数字的异或和都为0

2022-06-25 11:13:52 162

原创 Mysql学习日志

MYSQL的学习

2022-06-22 19:09:51 213

原创 《多目标进化优化》笔记

目前在做多目标优化这块的研究,找了一本郑金华的《多目标进化优化》恶补下基础知识,有需要的可以下载电子版,一起优化优化。在此几个笔记来督促自己的科研进度,也方便和各位同方向的同学们一起交流探讨!多目标优化的基础知识:《高等代数》、《矩阵分析》和《凸优化》等基础数学的内容。主要分为多目标进化优化基础、多目标帕累托最优解集构造方法、多目标进化群体的分布性、多目标进化算法的收敛性、多目标进化算法和基于动态环境的MOEA等内容。1.多目标进化优化基础1.1进化算法进化算法包括三类:遗传算法(GA)

2022-06-13 17:32:42 2179 3

原创 B站左程云算法视频中级班9~10

题目1:给定一个整数数组,长度为n,找到[1,n]中所有未出现在A中的数inplace算法:使得i位置上放i+13 2 1 6 2 7 50 1 2 3 4 5 60位置放1,所以3和2位置的数换,1位置放2,2位置放3,.....题目2:(主播打赏问题) 初始人气值a(设为偶数),目标人气值b(偶数) a小于等于b方案1)点赞,花费x, 人气值+2 2)送礼 ,花费Y,人气值*2 3)私聊,花费Z,人气值-2使得a = b,至少花费几个币存在的问题:递归跑不完缺

2022-06-13 16:48:36 140

原创 B站左程云算法视频中级班08

题目1:路灯问题题目2:已知一棵二叉树中没有重复节点,给定前序遍历和中序遍历数组,得出后序遍历数组递归: int[ ] pre int[ ] in 生成 int[] pos写一个函数,利用pre[prei.....prej]结合in[ini .....inj]生成pos[posi.....posj]pre: a b d e c 中左右in : d b e a c 左中右pos: d b e c a 左右中优化:中序遍历数组改成建一张HashM

2022-06-12 15:58:03 209

原创 B站左程云算法视频07

题目一:前缀树+深度优先遍历题目二:双向链表节点结构和二叉树结构是一样的last 认为是 left next 认为是next给定一个搜索二叉树的头节点head,转化成一条有序的双向链表,并返回链表的头节点题目三:找到一棵二叉树中,最大的搜索二叉子树,返回最大搜索二叉子树的节点个数对于节点X来说,可能性分为和X有关 和X无关X无关:左树的maxBSTHead 右树的maxBSTHeadX无关:左isBST 右isBST 左max 右min maxBST Size 所以要返回

2022-06-12 11:06:45 76

原创 B站左程云算法视频中级班06

斐波那契数列1 1 2 3 5 8 13F(N) = F(N-1) + F(N-2)满足此类严格递归(无条件转移) 转换成O(logN)斐波那契套路 复杂度O(logN)1 1 2 3 5[2 1]= [1 1] * [F(N) F(N-1)] = [F(2) F(1)] * 设置 t = res = E* * ** 斐波那契公式 优化

2022-06-11 12:10:13 170

原创 B站左程云算法视频中级班05

题目1:实现一个特殊的栈,在实现栈的基本功能的基础上,再返回栈中最小元素的操作getMin思路:搞两个栈,一个Data,一个Min,每次都在当前的最小值压入Min(谁小压谁)题目二:栈结构实现队列结构;队列结构实现栈结构两个栈,一个push,一个pop,pop没东西时,可以push进,pop栈一次倒完题目三:动态规划空间压缩技巧 题目四:(接雨水)给定一个数组arr,已知其中所有的值都是非负的,将这个素组看作一个容器,请返回容器能装多少水。思路:和洗衣机类似,只关注i位置自己上方能否存水i = min

2022-06-10 22:29:56 195

原创 B站左程云算法视频中级班04

题目一:洗衣机问题第一步:先看sum%N第二步:看第i台机器一)左右都是负,至少 |左| + |右|二)左右都是正,至少 max(|左|,|右|)三)左负右正 ,至少max(|左|,|右|)四)左正右负,至少max(|左|,|右|)每个点算出答案,最痛的点就是瓶颈题目二:(宏观调度)螺旋的方式打印矩阵0 1 2 34 5 6 78 9 10 11打印顺序 0 1 2 3 7 11 10 9 8 4 5 6 给一个左上角和右下角,实现函数 只打印这个框 给定一个正方形矩阵,只

2022-06-10 17:50:35 513

原创 B站左程云算法视频中级班2~3

题目一:给定一个整数n,代表二叉树的节点个数,返回能形成多少种不同的二叉树结构 动态规划题目二:完整的括号字符串:有一个括号字符串S,现在需要在其中任意位置尽量少的添加括号,将其转化为一个完整的括号字符串。请问至少需要多少个括号思路:遍历字符串,count = 0;遇到左括号,count++,右括号,count--1)如果出现了count...

2022-06-09 20:44:41 167

原创 B站左程云算法视频中级班01

涉及思想:窗口不回退模型、打表和预处理题目1:给定一个有序数组arr,代表数轴上从左到右有n个点arr[0],arr[1],...,arr[n-1],给定一个正数L,代表一根长度为L的绳子,求绳子最多能覆盖其中的几个点。策略:1)找到大于某数最左的位置 复杂度o(NlogN)2)滑动窗口 o(N)题目二:小虎买苹果,只有6袋和8袋,返回最小使用的袋子,不能装下,返回-1普通方法:假设100个苹果,先看最多能用几个8袋,100/8 = 12个,还剩4个,不能用6袋搞定,失败;11个8袋,还剩12个,2个

2022-06-07 14:53:35 213

原创 B站左程云算法视频基础提升08

算法视频笔记

2022-06-01 14:26:27 227

原创 B站左程云算法视频基础提升07

给定一个数组arr :3,100,2,50A先手,B后手谁最后会获胜,返回最后的分数分为先手和后手先手:int f(arr, i, j)if(L==R),先手拿走/base casemax{arr[i] + s(arr,i+1,j),arr[j]+s(arr,i,j-1)}后手 :int s(arr,i,j)if (i == j) return 0 /base casereturn Math.min{f(arr,i+1,j),f(arr,i,j-1)}public

2022-05-31 16:49:10 123

原创 B站左程云算法视频笔记06

问题:机器人运动给一个int N(大于1的正数,表示有N个位置),int S(开始位置),int e(结尾位置),int k(机器人必须走K步)机器人可以往左走往右走,1位置只能往右,N位置只能往左,S到e,必须走K步,问有几种方法?例:N = 5, S= 2, e = 4 , k = 423454、23434、23234、21234四种方法public static int walkWays(int N, int E, int S, int K){ return f(N,

2022-05-30 13:55:55 147

原创 B站左程云算法视频笔记05

大数据有一个包含100亿个URL的大文件,假设每个URL占用64B,请找出其中所有重复的URL(布隆过滤器或者哈希函数分流)【补充】某搜索公司一天的用户搜索词汇是海量的(百亿数据量),请设计一种求出每天热门TOP100词汇的可行办法32位无符号的整数范围是0~4294967295,现在有40亿个无符号整数,可以使用最多1GB内存,找出所有出现了两次的数。哈希函数分流位图,两位表示一个数出现的状态:00 没有出现过,01 出现过一次, 10 出现过两次,11出现过大于2次;

2022-05-29 23:13:13 125

原创 B站左程云算法视频基础提升04

树形DP使用前提:如果题目求解目标是S规则,则求解流程可以定成以每一个节点为头结点的子树在S规则下的每一个答案,并且最终答案一定在其中。二叉树的节点间的最大距离:设以X为头结点的整棵树的最大距离分两种情况讨论:1)X不参与,要求返回的信息是左子树的最大距离maxdistance和右子树的最大距离maxdistance;2)X参与,左高度height+1+右高度height返回值结构:maxdistance、heightmaxdistance在左子树的最大距离maxdistance和右子树

2022-05-28 15:42:03 122

原创 B站左程云算法视频基础提升03

Manacher算法字符串中,最长回文子串的长度如何求解?复杂度O(N)经典方法:遍历,以一个点为中心点,向两边扩散,看是否相等问题:会存在无法辨别出回文子串为偶数的情况方案:将原始的回文子串各个字串之间扩充一个如:122131221 —— #1#2#2#1#3#1#2#2#1#特殊字符#可任取,因为如果把特殊字符看作是虚的,原有的字符串中的元素看作是实的,只存在虚对虚,不会虚和实比较,因此不影响答案a 1 2 1 b#a#1#2#1#b#回文半径:4 (向上取整)回

2022-05-27 10:48:55 205

原创 B站左程云算法视频基础提升02

岛问题一个矩阵中只有0和1两种值,每个位置都可以和自己的上下左右相连,如果一片1连在一起,这个部分叫做一个岛,求一个矩阵有多少个岛思路:遍历,infectclass Solution { public int numIslands(char[][] grid) { int res = 0; if(grid == null || grid[0] == null ){ return 0; } int N

2022-05-26 11:49:03 241

原创 B站左程云算法视频基础提升01

哈希函数和哈希表out(f(in))1)in 无穷out相对有限2)same in 得出 same out(不随机)3)dif in 得到same out (哈希碰撞)4)均匀性,离散性in 1 out 1 m1in 2 out2 m2in 3 out3...

2022-05-25 10:55:15 174

原创 B站左程云算法视频08

Dijkstra算法改进(堆加速无需遍历选择最小值,改写堆(更新值,堆排序//改进后的dijstra算法//从head出发,所有head能到达的节点,生成到达每个节点的最小路径记录并返回public static HashMap<Node, Integer> dijkstra2(Node head, int size){ NodeHeap nodeHeap = new NodeHeap(size); nodeHeap.addOrUpdateOrIgnore(head

2022-05-23 12:39:50 126

原创 B站左程云算法笔记07

前缀树public static class TrieNode { public int pass; public int end; public TrieNode[] nexts; public TrieNode(){ pass = 0; end = 0; nexts = new TrieNode[26]; }} public static cla

2022-05-23 10:56:01 161

原创 B站左程云算法笔记06

图图的存储方式:1.邻接表法2.邻接矩阵模板 :经典的图结构:点 边。点:值(编号) 、入点、出、邻点和边;边:权值、from、topublic class Graph{ public HashMap<Integer,Node> nodes; public HashSet<Edge> edges; public Graph(){ nodes = new HashMap<>(); edges = new

2022-05-22 22:07:57 272

原创 B站左程云算法视频笔记06

如何判断一棵二叉树是否是搜索二叉树?搜索二叉树的定义:一个节点,其左数的节点都比它小,右数的节点都比它大(一般没有重复的值)思路:判断是否是搜索二叉树,可以采用中序遍历(左头右),看是否升序。代码:递归/存入链表,判断是否升序如何判断一棵二叉树是否是完全二叉树?思路:1)任一节点,有右无左孩子,返回false 2)在1)成立的情况下下,如果遇到了第一个左右两个孩子不双全,后续节点是叶子节点如何判断是否是满二叉树?满二叉树(除了叶子节点外,所有节点都有两个子节点)的节点

2022-05-22 09:28:57 165

原创 B站左程云算法视频笔记05

两个链表相交的一系列问题题目:给定两个可能有环也可能无环的单链表,头结点head1和head2,请实现一个函数,如何两个链表相交,请返回相交的第一个节点,如果不相交,返回null要求:如果两个链表长度之和为N,时间复杂度要在O(N),额外空间复杂度O(1)分析:1.判断有无环2.判断的是两个链表中是否有节点的内存地址一样,和值无关第一步:判断有无环,有环返回第一个入环节点。分为哈希表和快慢指针的做法可实现第二步:讨论,获知了两个链表是否有环,分情况讨论。都无环,可能相交也可能不相交,讨论

2022-05-14 18:04:55 185

原创 B站左程云算法视频03

堆堆是一个完全二叉树结构(包括满二叉树和从左到右变满的二叉树)二叉树中,对于i节点,左子孩子为2*i+1,右子孩子为2*i+2 父节点为(i-1)/2 用于后续的找大根堆:完全二叉树里,每一棵子树的最大值是头结点的值小根堆:每一棵子树的最小值是头结点的值heapInsertpublic static void heapInsert(int[] arr, int index) { while(arr[index] > arr[(index-1)/2])..

2022-05-13 15:05:55 327

原创 B站左程云算法视频笔记04

排序算法的稳定性稳定性是指:排序时值相同的元素在排序后能否保证其相对次序不变(可理解为网购时先将价格由低到高排列,在以质量好坏进行排序,实现物美价廉) 时间复杂度 空间复杂度 稳定性 选择排序 O() × 冒泡排序 O() √ 插入排序 O() √ 归并排序 √ 快排(3.0) × 堆排序 × 分析:1.前三个排序都.

2022-05-13 09:20:16 293 1

原创 B站左程云算法视频笔记02

递归问题:求数组中的最大值//arr[L..R]范围上的最大值public static int process(int[] arr, int L, int R){ if (L == R){ return arr[L]; }//若只有一个数,直接返回 int mid = L +((R - L) >> 1);//求出中点,防止溢出,如L+R溢出,也可写成mid=L+(R-L)/2 int leftMax = process(arr, L,

2022-05-12 07:05:59 232

原创 B站左程云算法视频笔记(01

1.位运算异或 ^ ,可理解为不进为相加,满足结合律和交换律a^a=0;a^0=a;交换a和ba=a^b;b=a^b;a=a^b;但必须满足是位置不同的(同一内存位置自己异或结果为0);public static void swap(int[] arr , int a , int b){ if(a == b ){ return; } arr[a] = arr[a] ^ arr[b]; arr[b] = arr[

2022-05-11 20:21:40 787 1

空空如也

空空如也

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

TA关注的人

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