字节算法中了80%!靠着这份GitHub上的算法小抄,成功斩获Offer

速成算法笔记,Github上已收获52K+star 经典动态规划:高楼扔鸡蛋经典动态规划:高楼扔鸡蛋(进阶)经典动态规划:最长公共子序列动态规划之子序列问题解题模板动态规划之博弈问题动态规划之正则表达动态规划之四键键盘动态规划之KMP字符匹配算法贪心算法之区间调度问题团灭LeetCode股票买卖问题团灭LeetCode打家劫舍问题数据结构====算法学习之路二叉堆详解实现优先级队列LRU算法详解二叉搜索树操作集锦如何计算完全二叉树的节点数特殊数据结构:单调栈特殊数据结构:单调队列设计Twitter递归反转链表的一部分队列实现栈|栈实现队列算法思维====回溯 阅读详情

前言

最近,GitHub上的算法小抄又火了!已经有不少人靠它手撕算法题,拿下了字节、腾讯等大厂offer

​

这位大佬在刷题和打ACM比赛中总结出了经验和套路,不问不知道,这份刷题笔记来自FB高级架构师、ACM金牌选手。

刷题3遍,不如“算法小抄”过一遍

在字节面试中,我遇到了一道他在《算法小抄官方完整版》看到过的原题。

目录

必读⽂章系列

  • 学习算法和刷题的思路指南

  • 学习数据结构和算法读什么书

  • 动态规划解题套路框架

  • 动态规划答疑篇

  • 回溯算法解题套路框架

  • 二分查找解题套路框架

  • 滑动窗囗解题套路框架

  • 双指针技巧总结

  • BFS算法套路框架

  • Linux的进程、线程、文件描述符是什么

  • Git/SQL/正则表达式的在线练习平台

第一章动态规划系列

​

很多读者反应,就算看了前⽂动态规划详解,了解了动态规划的套路,也不会写状态转移⽅程,没有思路,怎么办?本⽂就借助「最⻓递增⼦序列」来讲⼀种设计动态规划的通⽤技巧:数学归纳思想。

第二章数据结构系列

有很多朋友问我数据结构和算法到底该怎么学,尤其是很多朋友说⾃⼰是「⼩⽩」,感觉这些东⻄好难啊,就算看了之前的「框架思维」,也感觉⾃⼰刷题乏⼒,希望我能聊聊我从⼀个⾮科班⼩⽩⼀路是怎么学过来的。

算法思维系列

本章包含⼀些常⽤的算法技巧,⽐如前缀和、回溯思想、位操作、双指针、如何正确书写⼆分查找等等。

​

⾼频⾯试系列

第五章计算机基础

第二册算法面试手册

第1章线利和口队列

​

​

第2章链表问题

​

​

第3章二叉树问题

​

​

第4章递归和动态规划

​

第5章字符串问题

【GitHub项目推荐--算法可视化】【转载】 通过可视化的方式学习算法,让算法变得容易得多。该项目已经有超过 3.8 万的Star,而且有 6200+ 的 Fork,说明项目挺受欢迎的。开源地址:https://github.com/algorithm-visualizer/algorithm-visualizer。 阅读详情

相关推荐

【python快速编程入门(第二版)黑马程序员课后编程题】

python快速编程入门(第二版)黑马程序员课后编程题

weixin_46167259的博客 1万+

靠这份 GitHub 标星 80K 的图解算法,杀进大厂!

这份算法笔记与其他的不同,均是用图解,gif 的方式来针对常见的题型进行详细的说明,非常的浅显易懂!比如判断环的入口位置,画了一张图,配以简单的文字描述让大家看完瞬间豁然开朗!比如很多读者表示不了解递归的概念,结果文中一张配图就说明清楚了这个概念再比如用队列来实现 BFS,一张动图一目了然关于算法刷题的困惑和疑问也经常听朋友们提及。这份笔记里面共包含作者刷LeetCode算法题后整理的数百道题,每道题均附有详细题解过程。很多人表示刷数据结构和算法题效率不高,甚是痛苦。

SharingOfficer的博客 360

学习海康VisionMaster之BLOB分析

6):软阈值(相对):是一种动态阈值分割方法,其核心思想是 基于图像局部特性(如背景或参考区域)自适应调整阈值范围,适用于光照变化明显、背景灰度不均的场景。3:拖入位置修正功能:这个非常重要,模版匹配成功后会得到新的匹配坐标,那和创建模版时候的原点坐标会组合成一个坐标变换矩阵,通过这个矩阵,那后续的blob分析窗口则可以实现精确定位来查找目标对象。(2):设定参数:这里阈值方式是blob的核心算法,根据不同的应用场景来选择不同的阈值方式。8:高级参数:是设定blob区域的特征范围,用于筛选出来特定的区域。

yuhouxiyang的专栏 3620

GitHub上标星80k的算法笔记,是有什么与众不同的魅力?

程序员到底需不需要学习算法?这个问题被争论的次数绝对不亚于“Java是不是最好的语言”“VIM和Emacs谁是最好的编辑器”“程序员是不是需要学习数学”。为了避免陷入这样的争论里,我们先对“算法”一词做个转换定义,什么是算法? 我们看看标准的定义:能够对一定规范的输入,在有限时间内获得所要求的输出的一系列指令都叫作算法。这个定义太抽象了,让我们简单来说,算法其实就是解决问题的思路和办法。那么从这一一点来说,你还会说算法不重要么? 本书从一系列有趣的生活实例出发,全面介绍了构造算法的基础方法及其广泛应用,

文章中资料均可获取,有需要请添加yunduoa2019即可 411

删除win10电脑U盘使用记录

手工删除:和查看的方法类似,分三步,缺一不可,顺序也不能反! 第一步 设置环境变量,变量名为“devmgr_show_nonpresent_devices”,值为“1”。 第二步 打开设备管理器,勾上“查看”菜单中的“显示隐藏设备”。如果之前已经打开设备管理器,则要关了,重新打开。 第三步 清除“磁盘驱动器”、“存储卷”、“通用串行总线控制器”3个栏目下所有的灰色的图标,注意是所有!右键点击灰色图标,然后选择“卸载”。 成功 :结果USBSTOR 没有了 ...

qq_40544338的博客 2万+

SOLIDWORKS Flow Simulation 颗粒分离器仿真:从流场分析到分离效率优化

计算流体力学(CFD)是研究流体流动、传热及相关物理现象的核心工具,其基本原理是通过数值方法求解控制流体运动的纳维-斯托克斯方程。在工程实践中,CFD的价值在于能够对复杂流动进行高保真度仿真,从而在产品设计阶段预测性能、优化结构,显著降低物理样机的试制成本和周期。颗粒分离器作为环保、化工、矿业等领域的关键设备,其设计核心在于平衡分离效率与压力损失。借助SOLIDWORKS内嵌的Flow Simulation模块,工程师可以高效地执行流体仿真,特别是对涉及离散相的颗粒运动进行轨迹追踪和效率统计。该技术方案通过

weixin_28709649的博客 324

GitHub最大的开源算法库

算法是一系列规则,这些规则通过获得一个或者多个输入,在内部进行计算、进行数据处理后,产生一个或者多个输出。简单地说,算法让生活更加美好。从复杂的数据处理、散列,到简单的数学运算,算法遵从一系列步骤来产出一个有用的结果。一个最简单的算法就是一个接受两个输入,把他们相加,然后输出他们的和的函数。该库收录了 Python、Java、C++、JavaScript、Go 等多种主流编程语言的算法实现代码。此外,通过其网站,你可以轻松地使用搜索功能、浏览热门分类或选择编程语言来学习各种算法代码。

mseoffice的博客 779

STM32G0定时器中断实战:HAL库配置TIM2实现精准1秒LED闪烁(附完整代码)

本文深入解析了STM32G0系列微控制器中定时器中断的配置与应用,重点介绍了如何使用HAL库配置TIM2实现精准的1秒LED闪烁。通过详细讲解时钟树分析、预分频系数与自动重装载寄存器的计算原理,并结合CubeMX图形化配置与完整代码示例,帮助开发者从底层理解定时器工作机制,掌握可复用的工程化配置方法。

weixin_29194817的博客 253

GitHub上超火的“算法宝典,快速学会

(img-frojHUiP-1710785617754)](img-qRn9zass-1710785617755)]Gale-Shapley 算法的应用实例。RLE压缩算法与PCX图像文件格式。傅里叶变换与音频播放的实时频谱显示。用牛顿迭代法求解非线性方程的实例。音频频谱和均衡器与傅里叶变换算法。哦,溢出了,出洋相的计算器程序。农历朔日(新月)的天文学计算。RLE与PCX图像文件格式。非线性方程求解的常用方法。二十四节气的天文学计算。非线性方程与牛顿迭代法。计算几何与计算机图形学。计算器程序与大整数计算。

m0_60635176的博客 506

从零到一:基于K375S主控的机械键盘优联无线化改造实战

本文详细记录了基于罗技K375S主控进行机械键盘优联无线化改造的全过程。从改造动机、核心原理与物料准备,到电路设计、PCB打样、焊接调试,逐步拆解了将优联技术集成到自定义机械键盘中的实战步骤。项目最终实现了低延迟、高稳定性且支持多设备连接的优联无线机械键盘,为DIY爱好者提供了高性价比的改造方案。

h0i1j2k3l的博客 601

TI电机驱动应用中MOSFET选型完整指南

深入解析TI电机驱动设计中MOSFET的选型关键,涵盖参数匹配、热性能与开关效率,帮助工程师优化系统性能并提升能效,是掌握MOSFET应用的核心参考。

weixin_42263617的博客 1270

真漂亮,这份GitHub上爆火的算法面试笔记,助你圆满大厂梦

Github作为程序员们的后花园,一直以来都是程序员最喜欢逛逛、学习的地方,小编也不例外,最近看到一份对标BAT等一线大厂的算法面试笔记,已经标星68+K了,很是惊讶,看了一下,觉得知识点整理得非常的详细,也不愧能获得这么多星,资料已被整理好,发放福利给朋友们!很多人力扣( LeetCode)上狂刷题,还炫耀自己刷了多少,但这样反而学不到东西。其实更重要的是要多写代码,多做⼯程。祝各位前程似锦。

Trouvailless的博客 386

Argoverse2数据集保姆级导入教程:从下载到预处理全流程解析

本文详细解析了Argoverse2数据集的完整导入流程,从环境配置、数据下载到预处理和高效加载策略。作为自动驾驶领域的标杆数据集,Argoverse2提供多模态传感器数据和高精地图信息,帮助研究者快速搭建数据处理流水线。文章包含实用代码示例和性能优化技巧,特别适合自动驾驶算法开发者参考。

weixin_29035405的博客 336

Github标星35K+超火的整理宝典【数据结构和算法】爆肝三万字你必须知道的20个解决问题的技巧

前言 数据结构和算法 (DSA) 通常被认为是一个令人生畏的话题——一种常见的误解。它们是技术领域最具创新性概念的基础,对于工作/实习申请者和有经验的程序员的职业发展都至关重要。掌握DSA意味着你能够使用你的计算和算法思维来解决前所未见的问题,并为任何科技公司的价值做出贡献(包括你自己的!)。通过了解它们,您可以提高代码的可维护性、可扩展性和效率。 话虽如此,我决定将我所了解的数据结构和算法集中起来。本文旨在使 DSA 看起来不像人们认为的那样令人生畏。它包括 15 个最有用的数据结构和 15 个最重要

weixin_51954021的博客 2776

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

图解算法,原理逐步揭开「GitHub 热点速览」

作者:HelloGitHub-小鱼干想必每个面过大厂的小伙伴都被考过算法,那么有没有更快了解算法的方式呢?这是一个老项目,hello-algo 用图解的方式让你了解运行原理。此外,SQL 闯关自学项目也是一个让你能好好掌握 SQL 技术的仓库。说回到面试,这个一周获得近 10k star 的 devops-exercises 定能让你好好刷一场面经。最后,一定不能错过你的代码工,提一个带有你需求的...

HelloGitHub 的博客 541

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

GitHub 标星 15w,如何用 Python 实现所有算法?

学会了 Python 基础知识,想进阶一下,那就来点算法吧!毕竟编程语言只是工具,结构算法才是灵魂。

2301_78094861的博客 222

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

GitHub 上 7 个 yyds 算法项目

算法和数据结构是计算机学习的基石,无论你学习计算机的任何方向,没有扎实的算法和数据结构,肯定学习起来就捉襟见肘了。 LeetCode 是一个包含许多算法问题的网站。 其中大部分是谷歌、Facebook、LinkedIn、Apple、国内互联网大厂等的真实面试问题。刷编程题的最大好处就是可以锻炼解决问题的思维能力,有助于提高我们的算法技能。 今天盘点 GitHub 上 Star 最多的算法项目,涉及 Java、Python、GO、JS 等语言实现,如果刷 LeetCode 很吃力,可以看看下面这些开源项目

qq_43338943的博客 729

GitHub 标星 16w,如何用 Python 实现所有算法?

学会了Python基础知识,想进阶一下,那就来点算法吧!毕竟编程语言只是工具,结构算法才是灵魂。

大模型研究中心 229

GitHub星标50w+的算法神仙文档,足你解决90%的对手

前不久,GitHub 上出现了一个手把手带你刷 LeetCode 的项目。该项目此前在 GitHub 开源后,连续多次霸榜 GitHub Trending 首页,用了两个月 Star 数便破 50k,受欢迎程度由此可见一斑:还在为面试算法问题发愁吗?书中给算法与数据结构总结出了一套框架模板,还有整整一个章节教你如何套模板做题,这是用套路解决算法问题的文章:有别于其他 LeetCode 刷题仓库,该项目里面不止提供了题解代码,还有算法的具体解答思路与思考框架。

公众号:该用户快成仙了 375

GitHub日排行第二名!手把手刷算法项目fucking-algorithm,干翻算法

今天给大家分享一个开源项目,在 GitHub 排行榜上今天特别火,都爬到了日排行榜的第二名。大家想知道,面试互联网大厂,必面的是什么吗?当然是算法。作为程序员,互联网大厂的面试,算法是最重要的一环,也是必不可少的一环。所以,今天给大家推荐的开源项目就是有关算法的开源项目。这个开源项目的名字挺有意思的,叫:fucking-algorithm ,翻译成汉语就是:该死的算法——你翻译成“干翻算法”我绝对赞成 ^_^ 。开源项目的作者,总结了 60 篇关于算法的文章,基本上都是基于 leetcode 的,涵盖了所有

java_beautiful的博客 541
上一篇: 超全面!Java必备核心知识点,先搞懂这些进厂轻松拿捏!
下一篇: Github访问量过百万!阿里内部至尊级分布式事务手册,实至名归
Java技术那些事儿
博客等级 码龄5年 2306粉丝 2584原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值