E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
左神
【
左神
算法】最好的安排
1.题目一些项目要占用一个会议室宣讲,会议室不能同时容纳两个项目的宣讲。给你每一个项目开始的时间和结束的时间(给你一个数组,里面是一个个具体的项目),你来安排宣讲的日程,要求会议室进行的宣讲的场次最多。返回这个最多的宣讲场次。2.code2.1思路思路:主要在于贪心的策略上,是会议开始时间早的先开始,还是会议时间短的先开始,或者会议先结束的先开始。我们采用会议结束时间短的作为贪心策略。2.2cod
qxlxi
·
2020-08-04 14:01
#
左神算法
#
贪心算法
左神
的书——《程序员代码面试指南》之生成窗口最大值数组问题c++实现
题目://给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值。例如,如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3,//那么一共存在6个滑动窗口,他们的最大值分别为{4,4,6,6,6,5};//针对数组{2,3,4,2,6,2,5,1}的滑动窗口有以下6个://{[2,3,4],2,6,2,5,1},{2,[3,4,2],6,2,5,1},{2,3,[4,2,6],2
hj605635529
·
2020-08-04 14:25
刷题之路
牛客网
左神
算法中级班学习笔记(第二章)
本文是牛客网
左神
算法中级班学习笔记。【思路】先放入set中(去重),然后遍历一遍set就OK了。
ccnuacmhdu
·
2020-08-04 13:59
牛客网左神算法
牛客网
左神
算法中级班学习笔记(第一章)
本文是牛客网
左神
算法中级班学习笔记。【思路】把绳子的末尾分别放在每个点上,分别有覆盖点的个数,个数最大值就是所求。
ccnuacmhdu
·
2020-08-04 13:59
牛客网左神算法
左神
算法基础课笔记
认识时间复杂度常数时间的操作:一个操作如果和数据量没有关系,每次都是固定时间内完成的操作,叫做常数操作。时间复杂度为一个算法流程中,常数操作数量的指标。常用O(读作bigO)来表示。具体来说,在常数操作数量的表达式中,只要高阶项,不要低阶项,也不要高阶项的系数,剩下的部分如果记为f(N),那么时间复杂度为O(f(N))。评价一个算法流程的好坏,先看时间复杂度的指标,然后再分析不同数据样本下的实际运
asr22449
·
2020-08-04 13:09
0204.Manacher 给定一个字符串,求出其最长回文子串的长度(
左神
算法基础班源码)
packagebasic_class_02;/****给定一个字符串,求出其最长回文子串的长度。**/publicclassCode_04_Manacher{publicstaticchar[]manacherString(Stringstr){char[]charArr=str.toCharArray();char[]res=newchar[str.length()*2+1];intindex=
hasp_Jason
·
2020-08-04 13:05
左神算法基础班源码
算法
左神
进阶班 - KMP算法
getNextArray():输入一个要找的字符串,输出其Next数组。getIndexOf():输入两个字符串。在str1中找str2,如果找到了,返回str2在str1中的开始位置。#include#includeusingnamespacestd;int*getNextArray(stringstr2){if(str2.size()==1){int*next=newint[1];next[0
就叫温华啦
·
2020-08-04 12:30
左神进阶班代码
左神
进阶班- manacher 找到字符串的最长回文子串的长度
#include#include#include#includeusingnamespacestd;//在字符串之间插入字符,从而奇偶回文串都能识别char*manacherString(stringstr){intlength=str.size();char*res=newchar[2*length+1];intindex=0;for(inti=0;ii?min(pArr[2*C-i],R-i)
就叫温华啦
·
2020-08-04 12:59
左神进阶班代码
左神
基础课-经典快排
经典快排:把目标值放在中间,左边都是小于等于它的,右边是大于它的值、#includeusingnamespacestd;intquicksort(int*arr,intL,intR);voidswap(int*arr,inti,intj);voidshow(int*arr,intlength);intmain(){intarr[]={1,5,8,7,2,6};couttmp){//i++;//co
就叫温华啦
·
2020-08-04 12:59
左神基础班代码
C++
左神
基础算法笔记-一
1.认识时间复杂度常数时间的操作:一个操作如果和数据量没有关系,每次都是固定的时间内完成的操作,叫做常数操作。时间复杂度为一个算法流程中,常数操作数量的指标。常用O(读作bigO)来表示。具体来说,在常数操作数量的表达式中,只要高阶项,不要低阶项,也不要高阶项的系数,剩下的部分记为f(N),那么时间复杂度为O(f(N))。评价一个算法流程的好坏,先看时间复杂度的指标,然后再分析不同数据样本下的实际
铮诚
·
2020-08-04 12:40
左神
直通BAT算法笔记(基础篇)-上
个人技术博客:www.zhenganwen.top时间复杂度时间复杂度是衡量算法好坏的重要指标之一。时间复杂度反映的是不确定性样本量的增长对于算法操作所需时间的影响程度,与算法操作是否涉及到样本量以及涉及了几次直接相关,如遍历数组时时间复杂度为数组长度n(对应时间复杂度为O(n)),而对数据的元操作(如加减乘除与或非等)、逻辑操作(如if判断)等都属于常数时间内的操作(对应时间复杂度O(1))。在
weixin_34129145
·
2020-08-04 11:42
左神
算法进阶班笔记Part1:KMP、Manacher、BFPRT、窗口滑动问题
文章目录KMP算法最大回文子串Manacher算法TOPK问题PartitionBFPRT算法窗口滑动问题滑动窗口最大值求最大值减去最小值小于或等于num的子数组数量KMP算法1.KMP详细2.相关题目1、【京东】给定一个字符串,要求在后面添加长度最短的字符,生成一个新的字符串,包含两个原始字符串。【思路】将字符串最长前后缀匹配长度算出后,next数组再多求一位,即可得到一个最长前缀、最长后缀。然
Owl丶
·
2020-08-04 11:16
数据结构和算法
算法笔记——
左神
进阶(例题)字符串加减乘除计算
字符串加减乘除计算经典例题,这题的3点说明是降低了一点难度,不然需要考虑有效性和溢出等状况。tips:在笔试面试时,关注容易出错的地方和边界条件,在刷题的过程中需要将特殊情况进行标记,多积累特殊的情况,面试官询问对于算法如何检查之类的可以先回答对数器,同时需要回答需要关注的特殊情况和边界条件。【题目】【思路】整个式子分为两种情况:没有括号:新建一个栈,将数字和符号都放到栈中,如果顶端的符号是+或者
猪施主
·
2020-08-04 11:01
算法笔记
左神
带我飞之07[编程题]用递归函数和栈逆序一个栈
通过这个题可以清楚的理解递归!importsysdefdellast(nums):re=nums.pop()ifnotnums:returnreelse:i=dellast(nums)nums.append(re)returnidefreverseStack(nums):ifnotnums:returni=dellast(nums)reverseStack(nums)nums.append(i)a
weixin_40245436
·
2020-08-04 06:54
python刷题
左神
算法基础班总结
文章目录1、归并排序2、堆排序3、快速排序4、设计一个能取的栈中最小元素的结构5、用栈实现队列6、判断一个单链表是否是回文串7、实现二叉树的非递归版本的前序、中序、后序遍历,以及morris遍历8、二叉树的序列化和反序列化9、求一棵完全二叉树的节点个数10、LRU算法11、并查集12、DFS(岛问题)13、前缀树(字典树)14、求项目的最大收益(贪心算法)15、海量数据和空间限制问题(1)布隆过滤
tangyuan_sibal
·
2020-08-04 01:20
算法
并查集及其java实现
本文内容转载自博客https://www.cnblogs.com/cyjb/p/UnionFindSets.html代码部分根据
左神
在课上讲的内容所写,本文主要目的为个人记录。
花千树hss
·
2020-08-02 23:48
#
数组
队列
栈
链表
左神
算法笔记(三)——桶排序及排序总结
排序稳定性排序稳定性在于对于相同的数值,能否将相同数据原本的顺序保证不交换。1(0)2(1)2(2)1(3)——>排序:1(0)1(3)2(1)2(2)针对于原始的信息排序,之前的顺序可能本身存在着一定的意义,排序稳定性会使得重新排序之后依旧维持着之前排序的特点。工程中的综合排序1.程序判断数组是否为基础类型,若为int,short,char,double,float基础类型,则会采用快速排序。因
韩浩楠
·
2020-07-31 22:03
左神算法专栏
算法题-最大值减去最小值小于或等于 num 的子数组数量
左神
讲的一道题,方法很好,是关于窗口内最大值、最小值计算的扩展,记录学习!
静_默
·
2020-07-30 19:21
算法学习
左神
算法——第18题——判断一棵二叉树是否是二叉搜索树
二叉搜索树(BST,BinarySearchTree):对于一棵树上任何一个节点的子树,左子树pre){pre=head.value;}else{res=false;}isBST(head.right);returnres;}//非递归publicstaticBooleanisBST2(Nodehead){intpre=Integer.MIN_VALUE;if(head!=null){Stacks
Lamiaomiao
·
2020-07-30 17:04
左神算法
太湖偶得 古体三首
吴中太湖偶得校场难觅踪二妃谜亦重烟雨太湖帆风云七十峰古今沧桑事笑叹与东风渔洋山偶得几生几世经华年了断凡尘此生念清灯古佛如来语渔阳山下昙花庵蝉鸣百树曲径幽微波千顷太湖闲鳌头占尽镜一面浩荡恩情获赠山玄墓春秋烟云散帝王慈心归望眼何如忘却天下事吟歌放鹤水云天太湖西山林屋洞偶得此屋天工开蜉蚴历沧海千笋出新泥穹隆玉为盖鬼斧神龙隐别宫天后在
左神
幽虚天水镜闲庭开晨眺轻烟袅暮闻鸟归来结庐在此境道法自然怀
幽燕客_
·
2020-07-29 00:22
九章算法、
左神
算法、架构师、大数据、考研
一、校招资源(全套)1、X客网(1)
左神
算法基础班和进阶班(2)X人计划(初、中、高)全套视频(3)X客网BAT算法全套课程(4)
左神
算法高频题2、面试算法LeetCode刷题C++3、Java项目实战课程
Bug君坤坤
·
2020-07-28 22:31
推荐资料和视频
九章算法、
左神
算法、架构师、大数据、黑马
一、校招资源(视频和资料全套)1、X客网(1)
左神
算法基础班和进阶班(2)X人计划(初、中、高)全套视频(3)X客网BAT算法全套课程(4)
左神
算法高频题2、面试算法LeetCode刷题C++3、Java
Bug君坤坤
·
2020-07-28 22:31
推荐资料和视频
九章算法、
左神
算法、架构师、大数据、麦穗商城技术交流
一、校招资源(全套)1、X客网(1)
左神
算法基础班和进阶班(2)X人计划(初、中、高)全套视频(3)X客网BAT算法全套课程(4)
左神
算法高频题2、面试算法LeetCode刷题C++3、Java项目实战课程
Bug君坤坤
·
2020-07-28 22:31
推荐资料和视频
左神
算法——第16题——二叉树的序列化和反序列化
//请实现两个函数,分别用来序列化和反序列化二叉树importjava.util.LinkedList;importjava.util.Queue;publicclasse03Serialize{publicstaticclassTreeNode{intval=0;TreeNodeleft=null;TreeNoderight=null;publicTreeNode(intval){this.va
Lamiaomiao
·
2020-07-28 21:03
左神算法
左神
直通BAT算法(进阶篇)-上
个人技术博客:www.zhenganwen.top经典算法Manacher算法原始问题Manacher算法是由题目“求字符串中最长回文子串的长度”而来。比如abcdcb的最长回文子串为bcdcb,其长度为5。我们可以遍历字符串中的每个字符,当遍历到某个字符时就比较一下其左边相邻的字符和其右边相邻的字符是否相同,如果相同则继续比较其右边的右边和其左边的左边是否相同,如果相同则继续比较……,我们暂且称
weixin_34416754
·
2020-07-28 19:25
左神
直通BAT算法(进阶篇)-下
个人技术博客:www.zhenganwen.top单调栈结构原始问题给你一个数组,找出数组中每个数左边离它最近的比它大的数和右边离它最近的比它大的数。思路:使用一个栈,要求每次元素进栈后要维持栈中从栈底到栈顶元素值是从大到小排列的约定。将数组中的元素依次进栈,如果某次元素进栈后会违反了上述的约定(即该进栈元素比栈顶元素大),就先弹出栈顶元素,并记录该栈顶元素的信息:该元素左边离它最近的比它大的是该
weixin_33828101
·
2020-07-28 17:43
数据结构与算法
面试
java
左神
算法 最长公共子串 最长上升子序列
【题目】给定两个字符串str1和str2,返回两个字符串的最长公共子串【举例】Stringstr1=“1AB2345CD”;Stringstr2=“12345EF”;输出:2345【要求】如果str1长度为M,str2长度为N,实现时间复杂度O(M*N),空间复杂度O(1)这道题还是用动态规划解。状态转移方程和最长公共子序列有所不同,可以对照着理解。【常规做法】先维护一个二维数组,dp,这里规定d
梦想远航
·
2020-07-28 06:43
数据结构与算法
算法笔记——
左神
初级(7)二叉树遍历、直观打印二叉树、序列化、判断平衡、搜索、完全二叉树
题目1:二叉树的遍历先序、中序、后序先序:先打印当前节点,再打印整颗左子树,再打印整颗右子树中序:先左子树,当前节点,右子树后序:先做子树,右子树,当前节点下面是通过递归的方式遍历二叉树,代码层面的不同在于打印时机不同publicstaticclassNode{publicintvalue;publicNodeleft;publicNoderight;publicNode(intdata){thi
猪施主
·
2020-07-16 05:36
算法笔记
Java找出带有环的链表中的入口点
publicclassListNode{intval;ListNodenext=null;ListNode(intval){this.val=val;}}*/publicclassSolution{//
左神
讲的
这瓜保熟么
·
2020-07-16 02:17
简单小算法
哈希函数+布隆过滤器+一致性哈希+哈希表
哈希函数+布隆过滤器+一致性哈希+哈希表认识哈希函数和哈希表设计RandomPool结构认识布隆过滤器认识一致性哈希(from
左神
算法初级班第6节)1.认识哈希函数和哈希表1)什么是哈希函数?
爱睡觉的泡泡
·
2020-07-15 06:44
算法
KMP算法
kmp算法初探,
左神
进阶班第一课。先理解一个字符串的最长匹配长度,前缀和最长后缀,如abcabcd,对于字符d,它的最长前缀的最长后缀的匹配长度是3,abc=abc。
卢田的博客
·
2020-07-15 00:27
算法
左神
算法5:哈希函数、哈希表、布隆过滤器、一致性哈希、并查集问题和岛结构
1.哈希函数和哈希表1.1哈希函数特点经典的哈希函数的输入域是无穷大的哈希函数的输出域是有穷尽的,虽然很大,但是是个固定的数值当输入参数固定的情况下,得到的输出参数固定,它不是随机函数,样本固定得到的输出值固定输入不一样,也有可能得到相同的哈希值(哈希碰撞)虽然会有两个输入对应同一个输出,但是对于大量的输入对应的输出域基本是平均分的即S域上均匀分布。推论:对于输入对应的哈希值,使其模M之后的结果同
hi168
·
2020-07-14 21:31
左神算法
左神
算法进阶班笔记Part2:单调栈
文章目录单调栈使用场景例题构造数组的MaxTree柱状图最大矩阵面积最大矩阵面积环形山烽火传递单调栈使用场景单调栈解决的问题是:【单调递减栈】对于一个数组中每一个数,求左边离他近的比他大的和右边离他近的比他大的数;【单调递增栈】对于一个数组中每一个数,求左边离他近的比他小的和右边离他近的比他小的数。同时时间复杂度O(n),单调减栈栈底到栈顶单调递减,从大到小,递增相反。【分析】只分析单调减栈,单调
Owl丶
·
2020-07-14 19:14
数据结构和算法
牛客网
左神
算法中级班学习笔记(第四章)
本文是牛客网
左神
算法中级班学习笔记。【分析】准备两个栈,一个栈是放数据的,另一个栈是放当前最小值的。
ccnuacmhdu
·
2020-07-14 08:42
牛客网左神算法
和
左神
一起做题:归并排序,稳定的冒泡,稳定的归并以及常见排序的空间时间稳定分析,数组到堆的过程以及演化成堆排序
//归并排序#includevoidsort(int*a,intL,intM,intR){int*p=newint[R-L+1];intp1=L;intp2=M+1;inti=0;while(p1a[p2]?a[p1++]:a[p2++];}while(p1>1);func(a,L,M);func(a,M+1,R);sort(a,L,M,R);}intmain(){inta[]={5,8,9,6,
没有撤退可言~
·
2020-07-13 20:10
跟左神一起学算法
左神
初级班 (一)
1、小和问题换个思路,就是找一个数,他右侧有几个比他大的数,有几个,就把他乘以几。用merge,统一用数量分批的方式去处理类似于归并排序的思想。为了防止溢出,所以取中值用下面的方式归并排序之所以快,就是因为他不浪费比较。他是成组成批的比较2、荷兰国旗问题前置铺垫:例如:输入4,6,7,3num的值为5.一开始,使得x指向索引位置为-1的位置,将4放入0的位置,将4与5做比较,4小于5,则将x所指区
weixin_34059951
·
2020-07-13 18:59
《程序员代码面试指南》it名企算法与数据结构题目最优解(第二版)刷题笔记8
由于之前看了牛客网的数据结构和算法的课程知道了
左神
,现在找到了这本书当作入门书做做吧,虽然书的题解都是java实现的,但好在用c++实现难度不大。
鶸.
·
2020-07-13 12:54
左神
算法讲堂笔记 01 归并排序和应用 --- 小和问题、逆序数
1、master公式求递归的时间复杂度T(N)=a*T(N/b)+O(N^d)log(b,a)>d->复杂度为O(N^log(b,a))log(b,a)=d->复杂度为O(N^d*logN)log(b,a)复杂度为O(N^d)2、归并排序(合并的时候,相等值那么左边先放,就能实现稳定性)第一步:左边整体有序第二步:右边整体有序第三步:左右整合成完全有序(耗费空间o(n))时间复杂度根据master
2112222222222
·
2020-07-13 11:49
算法讲堂
左神
算法 最小编辑代价
【题目】给定两个字符串str1和str2,在给定三个整数ic,dc和rc,分别代表插入、删除和替换一个字符的代价,返回将str1编辑成str2的最小代价【举例】str1=“abc”str2=“adc”,ic=5,dc=3,rc=2【1】从abc编辑成adc,把b替换成d代价是最小的,返回2【2】如果rc=100,先删除b,再插入d代价是最小的,返回8【3】如果str1==str2说明不用修改,返回
梦想远航
·
2020-07-13 10:24
数据结构与算法
【
左神
算法】基础班第三课——两个栈实现队列,两个队列实现栈,最小值栈
两个栈实现队列基本要求:入队元素全部往push_stack里加出队元素全部从pop_stack里出,如果pop_stack里没有元素,push_stack所有元素压入pop_stack。#include#include#includeusingnamespacestd;classQUEUE{public:voidenqueue(intx);intdequeue();intfront();boole
icebearzzz
·
2020-07-13 10:41
算法练习
算法笔记——
左神
初级(5)旋转矩阵、“之”字型打印矩阵
矩阵问题核心思路是考虑矩阵的特点,即一些边界点可以把一个矩阵确定下来。考虑代码流程的复用,以及考虑到边界条件。题目5:转圈打印矩阵【题目】给定一个整型矩阵matrix,请按照转圈的方式打印它。例如:12345678910111213141516打印结果为:1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10【要求】额外空间复杂度为O(1)。思路:不要局限于一个个怎么变,考虑
猪施主
·
2020-07-13 09:35
算法笔记
LeetCode 115. 不同的子序列 从暴力递归到动态规划,从动态规划到优化
在LeetCode上刷题刷到了一道Hard的题115.不同的子序列,用暴力递归的话,逻辑其实很好写,就是复杂度太高,测试用例复杂一些就直接GG,我就采用了牛客左程云
左神
的思想,将暴力递归改成动态规划,并通过评论区大神的思路将正向的动态规划进行优化变成逆向的动态规划
ontheway12138
·
2020-07-13 08:36
日常学习
06.归并排序 - MergeSort(
左神
算法基础班源码)
packagebasic_class_01;importjava.util.Arrays;/***master公式的使用*T(N)=a*T(N/b)+O(N^d)1)*log(b,a)>d->复杂度为O(N^log(b,a))2)*log(b,a)=d->复杂度为O(N^d*logN)3)*log(b,a)复杂度为O(N^d)*归并排序的细节讲解与复杂度分析*时间复杂度O(N*logN),额外空间
hasp_Jason
·
2020-07-13 02:48
左神算法基础班源码
算法
左神
基础课-归并排序
先输入一个数:表示有几个数要排序然后每次输入一个数输出排序好的数#include#include#includeusingnamespacestd;voidmergeSort(int*arr,inti,intj);templateintgetlength(T&arr);voidshow(int*arr,intn);voidsortProcess(int*arr,inti,intmid,intj);
就叫温华啦
·
2020-07-13 02:31
左神基础班代码
C++
算法学习笔记--归并排序及其应用
前言在学习
左神
的算法课程,关于归并排序有些收获,在此记录,以备后查。原理分治的思想,将对数组arr[]排序的任务(规模为N),分为对左、右半边排序(规模各位N/2)、合并(规模为N)这三步操作。
shangjian007
·
2020-07-12 01:41
算法
java
02.二叉树打印.md
如果表示一颗二叉树当然可以用二叉树的序列化,操作系统中就是这么存储的,但是咱自己看的时候序列化肯定不直观,
左神
写了一个用于直观打印二叉树的程序,我把它变成了C的,并不是什么算法,就是好看一点。
蓝莓侠
·
2020-07-11 14:37
库函数
字符串-最长公共子串(两个,多个)
关于暴力解和动规说的最好的https://www.cnblogs.com/ider/p/longest-common-substring-problem-optimization.html空间复杂度O(1)还是
左神
的
earlene_wyl
·
2020-07-10 02:24
算法
动态规划
左神
之单调栈结构【C++实现】——基础
1、主要功能在一个数组arr[N]中,给定一个数num,分别求解各arr[i]左边比num大的距离其最近的和右边比num大的距离其最近的数,使得其时间复杂度为O(N).2、思路分析思路1【暴力求解】:首先遍历数组arr中各个元素,然后在遍历的同时再分别向左、右遍历求解第一个比arr[i]大的数。时间复杂度为O(N^2)思路2【最优解】:小试牛刀——求最大子矩阵的大小问题引入——求解直方图中最大的矩
爽弯弯!
·
2020-07-10 02:52
备战offer
数据结构和算法
左神
单调栈【C++实现】——进阶版
附:基础https://blog.csdn.net/shiyideliutang/article/details/103528550单调栈之山峰形成数对问题题目分析再次总结算法思路【某一元素结算的方式】程序代码完全按照该框架写出来的,理解比较容易程序源代码C++实现#includeusingnamespacestd;#include//矢量vector头文件#include//栈的头文件/**ve
爽弯弯!
·
2020-07-10 02:52
备战offer
数据结构和算法
新手刷题指南:《程序员代码面试指南》刷题汇总
我服了,推荐
左神
的视频都被CSDN说成广告,一来没购买链接,二来也没说啥。
在所_不辞
·
2020-07-09 08:04
程序员面试宝典
上一页
1
2
3
4
5
6
7
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他