【搞定算法】常见算法题分类总览 |
您所在的位置:网站首页 › 程序代码分几种类型 › 【搞定算法】常见算法题分类总览 |
博主秋招提前批已拿百度、字节跳动、拼多多、顺丰等公司的offer,可加微信:pcwl_Java 一起交流秋招面试经验,可获得博主的秋招简历和复习笔记。 完善中...... 由于本人平时刷题比较零散,有时候找起来不是很方便,所以统一将题目记录于此。主要的题目来源自:剑指 Offer、LeetCode、左神算法、面试、笔试、面经等等。下面按照分类记录: 说明(个人见解): 一、标注说明 标注手撕:必须掌握,熟练写出 code; 标注星号:星号越多越重要; 标注加分:一般此类都是算法不容易实现,但是需要掌握思想,面试加分。 二、刷题顺序 1、了解基本的数据结构与算法的知识: 常用的数据结构:数组、链表、栈、队列、哈希表、树、图等的基本概念和实现; 常用的算法:DFS / BFS、最短路径算法(Dijkstra)、贪心算法、动态规划、蓄水池算法、Manacher 算法等; 常用的编程技巧:递归:递归非常重要,要认真理解递归的过程;2、《剑指Offer》: 《剑指Offer》非常重要,可以看各大公司的面经,很多手撕代码都出自于《剑指Offer》,所以多刷几遍,每一题都务必能快速的手写出来。 3、LeetCode: 《剑指Offer》刷完了,可以先刷 LeetCode 的 Top100,当然你也可以根据自身的情况,刷自己薄弱的专题。大部分公司的笔试题都是出自于 LeetCode,原题或者改编,重要性就不用多说了; 4、左神算法班: 这个因人而异了,如果你对算法题比较敏感,这个阶段是可以跳过的。但是如果对算法不是很有信心或者准备的比较晚,还是比较推荐左神的算法班,分为初级和高级,会串讲基本的数据结构和对应的题目。 5、最后: 算法的重要性:得算法者得 Offer。大公司非常看重算法,即便内推,但是面试环节几乎都会手撕代码,如果这个环节出了问题,会大打折扣。 一、基础数据结构篇排序
归并排序
查找 1、二分查找递归和非递归实现
前缀树 1、前缀树的结构实现 二、实战篇 1、数组 1、找出数组中出现次数大于数组长度一半和 N / K 的数【剑指Offer + 左神】【手撕】 2、数组的奇偶位置问题:给定一个整型数组,请在原地调整这个数组,保证要么偶数位置上都是偶数,或者奇数位置上都是奇数。 3、调整数组顺序使奇数位于偶数前面【剑指Offer】【手撕】 4、数组的度(字节跳动面试题 + LeetCode) 5、求一个数组中的第 k 小 / 大的数【BFPRT 算法、快排】【手撕】 6、将一个整数数组划分为K个相等的子集问题【LeetCode + 字节跳动面试题】 7、旋转数组中的最小数字【剑指Offer】 8、在二维数组中查找一个数【剑指Offer】 9、找出数组中重复的数字【剑指Offer】 10、找出数组中只出现一次的那个数,其他都出现两次【字节跳动面试题】 11、子数组问题:在条件下,每一个位置的元素都会作为子数组的开头或者结尾元素,那么遍历完整个数组,结果一定在其中 子数组最大累乘积:给定一个 double 类型的数组 arr,其中的元素可正、可负、可 0,返回子数组累乘的最大乘积。 需要排序的最短子数组长度 最长的可整合子数组的长度 最短无序连续子数组:双指针实现【LeetCode】 连续子数组的最大和【剑指Offer】:推荐动态规划实现【手撕】 2、字符串1、字符串的排列与组合【手撕】 2、最长回文子串:暴力+动态规划+Manacher算法【手撕:推荐用动态规划】 3、正则表达式匹配:实现一个函数用来匹配包括'.'和'*'的正则表达式【剑指Offer】 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |