算法目录

语       言: 【排序】【数组】 【字符串】 【位运算】 【递归】            //学完一门语言就可以做

数       学: 【数学】【脑筋急转弯】                                                       //不需要计算机专业

数据结构: 【链表】【栈、队列】【树】【图】                                    //需要有数据结构基础

算法思想: 【枚举】【分治】【贪心】【动规】【搜索】                      //需要上过算法课

专题总结: 【海量数据】【】

 

 

刷题原则:

1. 注重代码质量,每道题不仅仅是能通过就行,要保证是常见的最好的方法。

2. 注重经典方法,常用解法,而不要耍小聪明、另辟蹊径、秀智商的方法。

3. 不做很偏很怪很难的题。目的是找工作,锻炼数据结构、算法思想,不是为了竞赛。

4. 机试的时候就是20分钟一道题,面试的时候就是马上能想出来。懂一万种方法但20分钟写不出来等于不会,不如一种常用方法练熟。

 

 

-------------------------------------第0部分:算法理论-------------------------------------------------------------

 

2. P、NP、NPC和NP-Hard相关概念

 

 

-------------------------------------第一部分:语言层次题目-------------------------------------------------------------

 

排序:

       如何使用泛型实现排序算法

       经典排序算法实现,包括:                                                 经典

              插入排序:插入排序、希尔排序

              交换排序:冒泡排序、快速排序

              选择排序:选择排序、堆排序

              归并排序

              基数排序

              计数排序

              桶排序

       一个数组的元素为1~n,在o(n)的时间内对数组排序   ok   典型例题

       一个数组,如果两元素之和为奇数,则可以交换。返回任意次交换后,尽可能升序的数组  ok

       406  根据身高和序号重新排序 Medium  ok

       o(n)的时间内找到中位数

 

数组(28题):

       例题:  26 删除有序数组中的重复项   ok

       练习1:80 删除有序数组中的重复项II  ok

       练习2:27    删除值等于val的元素 ok

       练习3:283  把数组中所有的0元素移动到最后 Easy  ok

 

   

       1、167 数组中找出两个数,和等于给定值  ok

       88   合并两个有序数组 Easy         ok
       485  求二进制数组中最多多少个连续的1 Easy  ok

       238  除自身以外数组的乘积 Medium  ok 

       697  数组的度为数组元素出现的最大次数,返回与数组度相等的子数组的最小长度  Easy  ok

       565  数组嵌套  Medium  ok

       665  给定一个数组,最多能改变一个元素的大小,判断该数组能否变成一个非递减数列  Easy  ok

       

       //找数

       例题1:645  一个数组的元素为1~n,其中一个数被另一个数代替了,找出这两个数 Easy  ok

       习题1:448  一个数组的元素为1~n,其中若干个数被另外的数代替了,找出这若干个数 Easy  ok

       习题2:442  一个数组的元素为1~n,其中若干个数被其他数代替了,找出这若干个数被谁替代了 Medium   ok

       习题3:41    求数组中缺失的第一个正数  Hard   ok

       例题2:287  一个数组的元素为1~n,其中若干个数被一个数代替了,找出这个数 Medium  ok

 

       217 判断数组中是否有重复元素 Easy    ok

       219 

 

       //区间

       769  最多能完成排序的块  Medium  ok

       763  分割字符串,使得相同的字符出现在同一个区间 Medium  ok

       56    给定n个区间,请合并所有重叠的区间  Medium  ok

       57    给出n个有序不重叠的区间,插入一个新区间,使整个区间仍有序不重叠  Hard  ok

       495  游戏,给定攻击序列和攻击持续时间,求攻击有效时间  Medium  ok

       

        //二维数组、矩阵

       566  实现二维数组的reshape操作   Easy  ok

       74、240  搜索有序的二维矩阵 Medium    ok

       378  行递增、列递增的二维矩阵查找第k小的元素  没想明白

       766  对角元素相等的矩阵  Easy  ok

       73    矩阵置零  Medium   ok

 

 

位运算(11题):

       136  数组中其他数都出现了2次,只有一个数出现了一次,找出这个数 ok

       137  数组中其他数都出现了3次,只有一个数出现了一次,找出这个数 ok

       260  数组中其他数都出现了2次,只有两个数各出现了一次,找出这两个数 ok

       268  含有0,1,2,...,n的数组缺少了一个元素,找出这个数 ok

       不用额外变量交换两个整数 ok

       191  统计二进制数中1的个数  ok

       461  求汉明距离  ok

       190  反转一个二进制数 Easy  ok

       693  判断一个数的二进制是不是01交替出现 Easy  ok

       476  求一个数的补数 Easy ok

       318  最大单词长度乘积 Medium  ok

 

 

字符串(15题):

       /***反转字符串相关***/

       344  反转字符串  Easy  ok

       345  反转字符串中的元音字母  Easy  ok

       151  反转字符串里的单词 Medium   ok

       字符串循环移位    ok

 

   

  • 7
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值