前言
很多算法小白初期刷题比较迷茫,不知道从何刷起从何入手,也不知道怎么使用LeetCode,这篇带你高效使用力扣,让刷题进大厂的路上不再迷茫!
1、反转链表
反转一个单链表:
输入:1->2->3->4->5
输出:5->4->3->2->1
方法1:
迭代,重复某一过程,每一次处理结果作为下一次处理的初始值,这些初始值类似于状态、每次处理都会改变状态、直至到达最终状态。
从前往后遍历链表,将当前节点的next指向上一个节点,因此需要一个变量存储上一个节点prev,当前节点处理完需要寻找下一个节点,因此需要一个变量保存当前节点curr,处理完后要将当前节点赋值给prev,并将next指针赋值给curr,因此需要一个变量提前保存下一个节点的指针next。
![](https://img.haomeiwen.com/i28313681/b7a82cb779881ffe.png)
1、将下一个节点指针保存到next变量 next = curr.next
2、将下一个节点的指针指向prev,curr.next = prev
3、准备处理下一个节点,将curr赋值给prev
4、将下一个节点赋值为curr,处理一个节点
方法2:
递归:以相似的方法重复,类似于树结构,先从根节点找到叶子节点,从叶子节点开始遍历大的问题(整个链表反转)拆成性质相同的小问题(两个元素反转)curr.next.next = curr将所有的小问题解决,大问题即解决
![](https://img.haomeiwen.com/i28313681/49dfa257766f0452.png)
只需每个元素都执行curr.next.next = curr,curr.next = null两个步骤即可
为了保证链不断,必须从最后一个元素开始
![](https://img.haomeiwen.com/i28313681/d5cfb39d783aac69.png)
![](https://img.haomeiwen.com/i28313681/c71d8b0ff7065ac9.png)
2、统计N以内的素数
![](https://img.haomeiwen.com/i28313681/40aa1ec8f580b148.png)
3、寻找数组的中心索引
![](https://img.haomeiwen.com/i28313681/cac4a78bfdb057f1.png)
4、删除排序数组中的重复项
![](https://img.haomeiwen.com/i28313681/c6b98b4015fb5f1c.png)
5、x的平方根
![](https://img.haomeiwen.com/i28313681/1550ea0fdf6deb26.png)
6、三个数的最大乘积
![](https://img.haomeiwen.com/i28313681/64ad8d5da2257e1d.png)
7、两数之和
![](https://img.haomeiwen.com/i28313681/4cfead9f47824534.png)
8、斐波那契数列
![](https://img.haomeiwen.com/i28313681/288f4ac5b80937c5.png)
9、环形链表
![](https://img.haomeiwen.com/i28313681/649b2c97bcd9824f.png)
10、排列硬币
![](https://img.haomeiwen.com/i28313681/8d5e0a18d54a8661.png)
11、合并两个有序数组
![](https://img.haomeiwen.com/i28313681/a8f2ff931ad98d15.png)
算法笔记及代码文档
笔记算法已经打包好了,需要的可以来找我
![](https://img.haomeiwen.com/i28313681/e6049f83b7383352.png)
![](https://img.haomeiwen.com/i28313681/11b3027c428fbf21.png)
网友评论