2021年刷这600多道算法题,轻松进大厂

截止到目前我已经写了 600多道算法题,其中部分已经整理成了pdf文档,目前总共有1000多页(并且还会不断的增加),大家可以免费下载
下载链接:https://pan.baidu.com/s/1hjwK0ZeRxYGB8lIkbKuQgQ
提取码:6666


大家好,我叫博哥,喜欢编程,尤其是喜欢算法,沉迷其中不能自拔,4年多的时间坚持在公众号上写算法题解,总共输出了 600多道题,其中不乏一些经典题型,都是以图文结合的方式,让算法变的不那么枯燥,通过这些文章,可以让你轻松入门。今天闲着没事就把之前写的一部分算法题整理出来,方便大家阅读,如果你觉得不错的话还可以点击收藏。

「可以看下部分系列文章:」


动态规划相关算法

598,动态规划解目标和

588,动态规划解分割等和子集

587,最大的以1为边界的正方形

576,动态规划解最长公共子串

573,动态规划解单词拆分

572,动态规划解分割回文串 III

570,动态规划解回文串分割 IV

568,动态规划解最后一块石头的重量 II

559,动态规划解不相交的线

557,动态规划解戳气球

553,动态规划解分割回文串 II

552,动态规划解统计全为1的正方形子矩阵

548,动态规划解最长的斐波那契子序列的长度

543,剑指 Offer-动态规划解礼物的最大价值

540,动态规划和中心扩散法解回文子串

530,动态规划解最大正方形

529,动态规划解最长回文子序列

522,俄罗斯套娃信封问题

517,最长回文子串的3种解决方式

515,动态规划解买卖股票的最佳时机含手续费

493,动态规划解打家劫舍 III

492,动态规划和贪心算法解买卖股票的最佳时机 II

490,动态规划和双指针解买卖股票的最佳时机

486,动态规划解最大子序和

477,动态规划解按摩师的最长预约时间

465. 递归和动态规划解三角形最小路径和

430,剑指 Offer-动态规划求正则表达式匹配

423,动态规划和递归解最小路径和

413,动态规划求最长上升子序列

411,动态规划和递归求不同路径 II

409,动态规划求不同路径

407,动态规划和滑动窗口解决最长重复子数组

395,动态规划解通配符匹配问题

376,动态规划之编辑距离

370,最长公共子串和子序列


回溯算法

603,回溯算法解划分为k个相等的子集

594,回溯算法解含有重复数字的全排列 II

593,经典回溯算法题-全排列

590,回溯算法解正方形数组的数目

575,回溯算法和DFS解单词拆分 II

551,回溯算法解分割回文串

537,剑指 Offer-字符串的排列

520,回溯算法解火柴拼正方形

498,回溯算法解活字印刷

491,回溯算法解将数组拆分成斐波那契序列

478,回溯算法解单词搜索

451,回溯和位运算解子集

450,什么叫回溯算法,一看就会,一写就废

442,剑指 Offer-回溯算法解二叉树中和为某一值的路径

420,剑指 Offer-回溯算法解矩阵中的路径

391,回溯算法求组合问题

446,回溯算法解黄金矿工问题

448,组合的几种解决方式


贪心算法

604,贪心算法解优势洗牌-田忌赛马问题

600,贪心算法解救生艇问题

516,贪心算法解按要求补齐数组

505,分发糖果(贪心算法解决)

501,贪心算法解分发饼干

489,柠檬水找零


DFS和BFS相关算法题

589,DFS和BFS解从根到叶的二进制数之和

586,BFS和DFS解层数最深叶子节点的和

580,BFS和DFS解二叉树的堂兄弟节点

574,DFS和BFS解单词拆分

566,DFS解目标和问题

532,BFS解打开转盘锁

531,BFS和动态规划解完全平方数

507,BFS和DFS解二叉树的层序遍历 II

473,BFS解单词接龙

470,DFS和BFS解合并二叉树

455,DFS和BFS解被围绕的区域

453,DFS和BFS解求根到叶子节点数字之和

445,BFS和DFS两种方式解岛屿数量

422,剑指 Offer-使用DFS和BFS解机器人的运动范围

417,BFS和DFS两种方式求岛屿的最大面积


双指针相关问题

597,双指针解验证回文字符串 Ⅱ

549,滑动窗口解可获得的最大点数

542,滑动窗口解最小覆盖子串

539,双指针解删除有序数组中的重复项

538,剑指 Offer-和为s的连续正数序列

527,两个数组的交集 II

514,双指针解替换后的最长重复字符

497,双指针验证回文串

466. 使用快慢指针把有序链表转换二叉搜索树

398,双指针求无重复字符的最长子串

397,双指针求接雨水问题

396,双指针求盛最多水的容器

447,双指针解旋转链表

449,快慢指针解决环形链表


二叉树相关算法

591,二叉树的垂序遍历

582,DFS解二叉树剪枝

564,二叉树最大宽度

563,N叉树的最大深度

561,二叉搜索树中第K小的元素

547,叶子相似的树

545,二叉搜索树的范围和

544,剑指 Offer-平衡二叉树

510,将有序数组转换为二叉搜索树

503,二叉搜索树中的众数

488,二叉树的Morris中序和前序遍历

485,递归和非递归两种方式解相同的树

483,完全二叉树的节点个数

474,翻转二叉树的多种解决方式

471,二叉搜索树中的插入操作

464. BFS和DFS解二叉树的所有路径

458,填充每个节点的下一个右侧节点指针 II

457,二叉搜索树的最近公共祖先

456,解二叉树的右视图的两种方式

444,二叉树的序列化与反序列化

441,剑指 Offer-二叉搜索树的后序遍历序列

440,剑指 Offer-从上到下打印二叉树 II

439,剑指 Offer-从上到下打印二叉树

435,剑指 Offer-对称的二叉树

434,剑指 Offer-二叉树的镜像

433,剑指 Offer-树的子结构

414,剑指 Offer-重建二叉树

403,验证二叉搜索树

401,删除二叉搜索树中的节点

400,二叉树的锯齿形层次遍历

399,从前序与中序遍历序列构造二叉树

388,先序遍历构造二叉树

387,二叉树中的最大路径和

375,在每个树行中找最大值

374,二叉树的最小深度

373,数据结构-6,树

372,二叉树的最近公共祖先

367,二叉树的最大深度


链表相关算法

596,删除排序链表中的重复元素 II

595,删除排序链表中的重复元素

554,反转链表 II

502,分隔链表的解决方式

463. 判断回文链表的3种方式

462. 找出两个链表的第一个公共节点

461. 两两交换链表中的节点

460. 快慢指针解环形链表 II

459. 删除链表的倒数第N个节点的3种方式

432,剑指 Offer-反转链表的3种方式

431,剑指 Offer-链表中倒数第k个节点

429,剑指 Offer-删除链表的节点

410,剑指 Offer-从尾到头打印链表

386,链表中的下一个更大节点

381,合并两个有序链表(易)


栈相关算法

528,使用栈解基本计算器 II

526,删除字符串中的所有相邻重复项

523,单调栈解下一个更大元素 II

519,单调栈解下一个更大元素 I

508,使用栈来判断有效的括号

500,验证栈序列

438,剑指 Offer-栈的压入、弹出序列

437,剑指 Offer-包含min函数的栈

416,剑指 Offer-用两个栈实现队列


其他经典算法

Manacher(马拉车)算法

426,什么是递归,通过这篇文章,让你彻底搞懂递归

394,经典的八皇后问题和N皇后问题

371,背包问题系列之-基础背包问题

366,约瑟夫环

362,汉诺塔

356,青蛙跳台阶相关问题

389,两个超级大数相加


位运算相关算法

592,位运算解颠倒二进制位

565,多种方式解2的幂

560,位运算解只出现一次的数字 II

556,位运算解形成两个异或相等数组的三元组数目

534,剑指 Offer-0~n-1中缺失的数字

513,汉明距离

512,反转二进制位

499,位运算解只出现一次的数字 III

495,位运算等多种方式解找不同

494,位运算解只出现一次的数字

476,根据数字二进制下1的数目排序

469,位运算求最小的2的n次方

357,交换两个数字的值

361,交替位二进制数

383,不使用“+”,“-”,“×”,“÷”实现四则运算

364,位1的个数系列(一)

385,位1的个数系列(二)

402,位1的个数系列(三)

425,剑指 Offer-二进制中1的个数


数据结构

348,数据结构-1,数组

352,数据结构-2,链表

359,数据结构-3,队列

363,数据结构-4,栈

368,数据结构-5,散列表

373,数据结构-6,树

378,数据结构-7,堆


排序

101,排序-冒泡排序

102,排序-选择排序

103,排序-插入排序

104,排序-快速排序

105,排序-归并排序

106,排序-堆排序

107,排序-桶排序

108,排序-基数排序

109,排序-希尔排序

110,排序-计数排序

111,排序-位图排序

112,排序-其他排序


查找

201,查找-顺序查找

202,查找-二分法查找

203,查找-插值查找

204,查找-斐波那契查找

205,查找-分块查找

206,查找-哈希查找

207,查找-其他查找


其他算找

602,比较版本号

601,下一个排列

599,统计全 1 子矩形

585,最大升序子数组和

584,前缀和解和为K的子数组

583,字符串中的最大奇数

581,所有蚂蚁掉下来前的最后一刻

579,摩尔投票算法解主要元素

578,计数质数

577,数组中的最长连续子序列

571,山脉数组的峰顶索引

569,多种方式解4的幂

567,最后一块石头的重量

562,数组中的最长山脉

558,最长回文串

550,旋转图像

546,砖墙,哈希表解决

541,字符串压缩,视频演示

536,剑指 Offer-构建乘积数组

535,剑指 Offer-扑克牌中的顺子

533,剑指 Offer-最小的k个数

525,最富有客户的资产总量

524,爱生气的书店老板

521,滑动窗口解最大连续1的个数 III

518,托普利茨矩阵

511,独一无二的出现次数

509,数组中的第K个最大元素

506,无重叠区间

504,旋转数组的3种解决方式

496,字符串中的第一个唯一字符

487,重构字符串

484,打家劫舍 II

482,上升下降字符串

481,用最少数量的箭引爆气球

480,移动零,通过一个精彩的故事告诉你怎么解

479,递归方式解打家劫舍

475,有效的山脉数组

472,插入区间

468,提莫攻击的两种解决方式

467. 递归和非递归解路径总和问题

454,字母异位词分组

452,跳跃游戏

443,滑动窗口最大值

436,剑指 Offer-顺时针打印矩阵

427,剑指 Offer-数值的整数次方

424,剑指 Offer-剪绳子

419,剑指 Offer-旋转数组的最小数字

418,剑指 Offer-斐波那契数列

415,最佳观光组合

412,判断子序列

408,剑指 Offer-替换空格

405,换酒问题

406,剑指 Offer-二维数组中的查找

404,剑指 Offer-数组中重复的数字

393,括号生成

392,检查数组对是否可以被 k 整除

390,长度最小的子数组

384,整数反转

382,每日温度的5种解题思路

379,柱状图中最大的矩形(难)

380,缺失的第一个正数(中)

377,调整数组顺序使奇数位于偶数前面

369,整数替换

365,消除游戏

358,移掉K位数字

355,两数相加 II

354,字典序排数

351,最少移动次数使数组元素相等 II

350,有序矩阵中第K小的元素

349,组合总和 Ⅳ

347,猜数字大小 II

346,查找和最小的K对数字

345,超级次方

344,最大整除子集

343,水壶问题

342,计算各个位数不同的数字个数

太多了,就不在一一列举了,具体可以到微信公众号(数据结构和算法)中查看

你可能感兴趣的:(数据结构和算法,算法,数据结构,数据结构和算法,LeetCode,acm竞赛)