一周刷爆LeetCode,算法大神左神(左程云)耗时100天打造算法与数据结构基础到高级全家桶教程,直击BTAJ等一线大厂必问算法面试题真题详解(马士兵)

作者: 马士兵官方账号分类: 计算机技术 发布时间: 2021-08-19 17:08:51 浏览:2394200 次

一周刷爆LeetCode,算法大神左神(左程云)耗时100天打造算法与数据结构基础到高级全家桶教程,直击BTAJ等一线大厂必问算法面试题真题详解(马士兵)

程安絮:
给各位刷LeetCode的同学排个坑: LeetCode上的实现strStr()函数的题之所以会被归类到简单,并不是因为它真的简单,而是因为KMP、BM算法是必考的算法重点,只要是学算法的人,就算死记公式也要掌握。人人都学会了,人人都能做对,自然它就被归到简单了,但是我们这样的小白如果第一次遇到,不了解情况的话,很容易被虐得怀疑人生的。 在做strStr()题之前,最好把动态规划算法、KMP算法、BM算法学会,到时候不光实现strStr()是小菜一碟,以后在做其它更难的题时,也会从这些知识中获益良多。

【回复】其实,总结一句话:先把基础打扎实,然后再去刷题,否则你会很难受
【回复】回复 @抖码课堂 :请问基础怎么打啊?(我是大二计科的,好混乱)[大哭]
【回复】面试根本不会考这种,完全就是纯背诵,KMP之类的算法没有任何的通用性
Wallfacer-Eric:
两年前花两个月刷了500道leetcode,顺利拿到Google实习(2轮电面),然后成功return(2轮onsite),现在工作一年半了,大家共勉

【回复】回复 @conciseandcom :留学第一学期,gpa和学分都不要了,就选了最下限的9学分,然后全力刷题
【回复】我觉得你能花两个月就500也好厉害了,真的
【回复】回复 @HolidayD :国内的top厂还是比较看重学历的,你至少读一个cs的硕士,不要纯自学,纯自学大概率去个外包公司。美国这边我认识很多转专业的选手,不过大部分也是先读了cs硕士。同样是硕士,国内的职硕program太少,很多都是要写论文的两三年的项目,美国纯上课的职硕基本每个学校都有,长度1年半甚至一年都有
Time我不是笨蛋:
收藏了三天了,我的技术还没长进,我觉得需要来看下视频是哪儿出问题了

【回复】就是啊,我都收藏了500多个视频了,腾讯怎么还不找我当架构师呢
【回复】很想问一下,是不是忘记加狗头了哈哈哈哈哈哈哈哈哈[doge]
爱攒硬币的霖哥哥:
以后看清我的ID,我来了就是白嫖来了,谁要三连都不好使,明白了吗[doge][doge]

【回复】回复 @花间石下鹿 :因为它是基础,默认你已经掌握了
【回复】借楼问一下大佬们,我是纯小白,这个里面老师提到了好多次压栈,好像这个视频没有专门讲栈,是因为不重要吗
【回复】明白了吗? == 听懂打1,没懂打2 ❤
惟妙惟霄:
今天网易笔试 被题目虐了 现在来补课 还赶得上秋招吗?

【回复】兄弟们,我秋招寄了,但是春招接到了字节后端的Offer,感谢左神,这个视频给了我很大的帮助!
【回复】回复 @马士兵教育一左程云 :应届秋招刚开始刷来得及吗
36568177539_bili:
很好的课程。茅塞顿开。 不过左神。投币点赞,3连。 if((cur&rightOne)==0)或者if((cur&rightOne)==1) 这一句代码,可读性不强。 改成 if((cur&rightOne)==rightOne)或者if((cur&rightOne)!=rightOne) 更好理解点。

【回复】假设a为1101,b为1111,rightOne为0010,a&rightOne=0 !=1,b&rightOne=0010=2 !=1,所以我认为if((cur&rightOne)==1) 并不能把a、b分成两部分。所以等于1是有问题的
【回复】回复 @马士兵教育一左程云 :if((cur&rightOne)==1)是错的, 除非rightOne二进制的最低位是1。 比如这组数据就不行(int【】 arr = {354,666,11,11};)
【回复】不同的写法而已。见仁见智。
魔神翼:
比较器排序没有考虑溢出的情况 public static class MyComparator implements Comparator<Integer> { @Override public int compare(Integer o1, Integer o2) { return o1 - o2; } } public static void main(String【】 args) { Integer【】 arr = new Integer【】{1, Integer.MAX_VALUE, -5, 0, Integer.MIN_VALUE, -1, 5}; Arrays.sort(arr, new MyComparator()); System.out.println(Arrays.toString(arr)); }

【回复】用大数类BigInteger, 或者说让两个比较的数先除100再比较 public static class MyComparator implements Comparator<Integer> { @Override public int compare(Integer o1, Integer o2) { // BigInteger a = new BigInteger(String.valueOf(o1)); // BigInteger b = new BigInteger(String.valueOf(o2)); // // return a.compareTo(b); return o1/100-o2/100; } } 不知道有没有漏洞
【回复】回复 @热爱生活的莫里亚蒂 :除100必定是错的啊, 1/100 - 5/100 == 0
【回复】回复 @热爱生活的莫里亚蒂 :转换成long就行了
lsy的饲养员:
算法每次都是自己看视频搞懂了,手敲总是感觉哪里不对劲

【回复】同类型的题要反复敲很多很多遍才能熟能生巧,我记得我当时为了背快排和归并排序,每天敲三遍,连续敲了一周每天复习。。。
【回复】回复 @萧峰重爪岚之山 :得多练
神棍MAX:
没学异或前,我的是这样交换的[呆]: a=a-b b=b+a a=b-a

【回复】搞嵌入式的看见这样交换的直接震怒[doge]
【回复】省了一个变量,气死一个code review的老哥
【回复】(x ^ y) && (y ^= x^y , x ^= y) 最优写法 没有if判断 x^y可以被缓存重复利用 但有些平台对临时变量是有优化的,直接寄存器交换反而用临时变量会更快
难以逾越的颅骨堡垒:
每次感觉看会了,然后自己当场做就只会暴力解题了[藏狐]

【回复】爆破 排序 加二分法 能解决80%的问题
【回复】暴力算法踩标程,掌声送给打表人[脱单doge]
【回复】暴力去解不是第一步吗?哈哈,再想下就能进入第二步写个好的算法了
程安絮:
关于异或交换(^),其实不用懂原理,只要记住一个规律。 如:a=b^c; 则a、b、c三个数中任意两个异或之后都等于剩下的那个数。为了便于描述,我们可以定义这种情况下a为b和c的异或数;同样的b也是a和c的异或数;c也是a和b的异或数。 比较难理解的是他用了两个变量就完成了交换操作。 可以先这样理解: a=1; b=2; c=a^b; // c为1和2的异或数3 a=a^c; // 1^3等于2,a变为2 b=b^c; // 2^3等于1,b变为1 完成互换。 简化后: a=1; b=2; a=a^b; // a为1和2的异或数3 b=a^b; // 3^2等于1,b变为1 a=a^b; // 3^1等于2,a变为2

【回复】回复 @Vincentnew :0001异或0010等于0011
【回复】其实深入理解计算机系统前面有很详细的解释
【回复】a=a^b,这个第一行代码为什么不会直接出运算结果1呢?
干饭の仙人x:
凌晨一点半 视频在线人数80+ 你们要不要这样[笑哭]

【回复】没事刷着刷着就猝死了[doge]
【回复】到后面就人少了[doge]最后基本就你自己
陈丶二锅头:
这不比99%的大学老师讲的好?[打call][打call][打call]

【回复】[脸红]高校老师:这么看的起我们[脸红]
【回复】回复 @月魔之殇丶 :科研也是那种实际没啥用的水科研[妙啊]
【回复】学校教的东西太简单了,和社会上用到的技术隔了几个年代
程安絮:
有没有跟我一样用C#的同学?有的话给大家提个醒,递归算法很依赖编译器的一种优化——尾调用优化或尾递归优化。而C#没有尾递归优化,所以使用递归调用不会比使用for/while等循环快,而且还容易栈溢出。能不用尽量不要用。 我使用版本的C#即使是空递归调用,也最多能调用3万2千多层就栈溢出了,而且在函数中加上几个变量后,递归上限并没有明显减少,所以可推论出递归调用中除局部变量等必须的内存占用外,其它只用于维护栈帧的内存占用是十分庞大的。

【回复】我看网上的文章说是debug/32位是没有优化,但是release/64位有优化,我也试一下
【回复】[doge]虽然你说的很有道理,但是递归的代码真的绝
马士兵官方账号:
[脸红]收藏只是白嫖,三连才是真情! 领取视频资料加小助理WX:msb6989 or javataozi888

【回复】有向图中有两个入度=0的节点, 从哪个节点出发能遍历全整个图?

算法 JAVA 程序员 左程云 面试 LEETCODE 数据结构 java 左神 剑指OFFER

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

更多相关阅读