语 言: 【排序】【数组】 【字符串】 【位运算】 【递归】 //学完一门语言就可以做 数 学: 【数学】【脑筋急转弯】 //不需要计算机专业 数据结构: 【链表】【栈、队列】【树】【图】 //需要有数据结构基础 算法思想: 【枚举】【分治】【贪心】【动规】【搜索】 //需要上过算法课 专题总结: 【海量数据】【】
刷题原则: 1. 注重代码质量,每道题不仅仅是能通过就行,要保证是常见的最好的方法。 2. 注重经典方法,常用解法,而不要耍小聪明、另辟蹊径、秀智商的方法。 3. 不做很偏很怪很难的题。目的是找工作,锻炼数据结构、算法思想,不是为了竞赛。 4. 机试的时候就是20分钟一道题,面试的时候就是马上能想出来。懂一万种方法但20分钟写不出来等于不会,不如一种常用方法练熟。
-------------------------------------第0部分:算法理论-------------------------------------------------------------
-------------------------------------第一部分:语言层次题目-------------------------------------------------------------
排序: 经典排序算法实现,包括: 经典 插入排序:插入排序、希尔排序 交换排序:冒泡排序、快速排序 选择排序:选择排序、堆排序 归并排序 基数排序 计数排序 桶排序 一个数组的元素为1~n,在o(n)的时间内对数组排序 ok 典型例题 一个数组,如果两元素之和为奇数,则可以交换。返回任意次交换后,尽可能升序的数组 ok o(n)的时间内找到中位数
数组(28题): 练习2:27 删除值等于val的元素 ok 练习3:283 把数组中所有的0元素移动到最后 Easy ok
88 合并两个有序数组 Easy ok 697 数组的度为数组元素出现的最大次数,返回与数组度相等的子数组的最小长度 Easy ok 665 给定一个数组,最多能改变一个元素的大小,判断该数组能否变成一个非递减数列 Easy ok
//找数 例题1:645 一个数组的元素为1~n,其中一个数被另一个数代替了,找出这两个数 Easy ok 习题1:448 一个数组的元素为1~n,其中若干个数被另外的数代替了,找出这若干个数 Easy ok 习题2:442 一个数组的元素为1~n,其中若干个数被其他数代替了,找出这若干个数被谁替代了 Medium ok 例题2:287 一个数组的元素为1~n,其中若干个数被一个数代替了,找出这个数 Medium ok
219
//区间 763 分割字符串,使得相同的字符出现在同一个区间 Medium ok 56 给定n个区间,请合并所有重叠的区间 Medium ok 57 给出n个有序不重叠的区间,插入一个新区间,使整个区间仍有序不重叠 Hard ok 495 游戏,给定攻击序列和攻击持续时间,求攻击有效时间 Medium ok
//二维数组、矩阵
位运算(11题): 136 数组中其他数都出现了2次,只有一个数出现了一次,找出这个数 ok 137 数组中其他数都出现了3次,只有一个数出现了一次,找出这个数 ok 260 数组中其他数都出现了2次,只有两个数各出现了一次,找出这两个数 ok 268 含有0,1,2,...,n的数组缺少了一个元素,找出这个数 ok 不用额外变量交换两个整数 ok 461 求汉明距离 ok 693 判断一个数的二进制是不是01交替出现 Easy ok
字符串(15题): /***反转字符串相关***/ 字符串循环移位 ok
|
算法目录
最新推荐文章于 2024-01-03 14:59:50 发布