Skip to content

havenBoy/leetcode

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

算法整理

1.丑数的判断 以及计算 自然数第n个丑数(质数因子只有2,3,5,1本身算是一个丑数)

2.抢劫问题 数组中取出不相邻的2个数字使得和最大 升级版:最后一个和第一个是相邻的如何思考? 数组的子数组的最大和问题;

3.判断2个二叉树是否是相同的? 最大深度? 最小深度? 是否平衡二叉树? 是否镜像对称? 二叉树的invert,使其称为镜像

4.一个数组中是否存在相同的数字 存在相同数字的情况下,下标的之差不大于k ? 2个数字差小于t,下标只差不大于k? 分别如何思考

5.数组中返回目标数字的下标(二分法)

6.判断一个数字是否是回文数字 123 321

7.判断一个字符串是否是回文串,忽略大小写与空格

8.遍历二叉树,判断是否有一条路径使得和为目标值 (递归) 返回所有符合规则的路径集合(DFS)

9.手写一个数字的平方(递归)

10.去除一个数组中重复的数字,并返回新的长度(借助集合去重)

11.找出数组中只出现一次的数字; 找出数组中只出现1次的2个数字;只出现1次的3个数字;找出数组中只出现1次,但其他数字出现至少3次的数 字等等,问题的延伸,如何思考?

12.返回一个数组中每个数字右边比自己小的数字个数的数组;(2个for循环时间复杂度较高)

13.对一个数字进行开方,以及判断一个数字是否是2的幂次方,是否是3的幂次方?

14.购买股票的最大利润,只有1笔; 当允许多笔交易时?只有2笔时?分别如何思考

15.数组中找出所有符合2个数字之和等于目标值的所有集合,3个数字,4个数字?

16.判断括号的匹配性(采用栈的结构)

17.二叉树的递归与非递归的遍历(工具类的实现);

18.所有排序算法的代码实现

19.链表定义以及相关问题的解决(反转,倒数第K个?查找) 删除倒数第K个节点,链表的加法,列表中是否存在环,环的长度,以及环的起始位置;

20.找出缺失的数字 3种思路 1.和法 2.排序二分查找 3.与法

21.找出所有的素数(<n)标记法,标记当前遍历数字的整数倍,剩下的数字就是素数(如何判断一个数字是素数)

22.对数组中的最后一位进行加1的运算 [1,2,3,4]->[1,2,3,5]

23.实现字符串的二进制加法 “111” + “11” = “1010”

24.给定一个字符串s由大写/小写字母和空白字符组成' ',返回字符串中最后一个单词的长度。

25.求出2个数组的交集和并集(注意时间的复杂度和空间复杂度)

26.数组向右移动K位后的数组 1,2,3,4 eg: 2位 3,4,1,2

27.一个数字的拆分,思路:使得数字的乘积最大,尽可能分出很多的3,4可以分为2,2

28.给定一个升序的数组,给一个目标值,返回目标值的下标范围

29.位运算的集合,计算2数之和,数字二进制反转表示数字的返回, 数字二进制中1的个数,等等

30.在旋转数组中进行查找目标值(先假设数组没有重复的元素),如果数组有重复又该如何考虑?

31.找出数组中出现大多次的元素,大于n/2次的元素,前提是假设这样的元素总是存在

32.给定一个正整数,返回可以构建的最多个数的二叉搜索树(亚特兰数的构成)

33.有序数组构建一个搜索二叉树(递归,二分法)

34.对链表的排序(时间复杂度nlogn ,空间复杂度在n)

35.返回树同深度的数字集合(DFS 回溯法) 螺旋遍历法 倒序遍历法

36.Roman与数字之间相互转换

37.对K个链表进行数字大小的排序

38.KMP算法的理解

39.排列 组合 算法思想的代码解释(17)

About

leetcode problems solutions

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages