废话不多说,直接上算法刷题笔记
百度网盘地址链接:https://pan.baidu.com/s/1Z0j_F4KSJE8q9j5Rs8p6Lg
提取码:you1
关于算法刷题的困惑和疑问也经常听朋友们提及。这份笔记里面共包含作者刷LeetCode算法题后整理的数百道题,每道题均附有详细题解过程。很多人表示刷数据结构和算法题效率不高,甚是痛苦。有了这个笔记的总结,对校招和社招的算法刷题帮助之大不言而喻,果断推荐给大家。
第二章算法专题
- Array
- Backtracking
- Binary indexed TreeBinary Search
- Bit ManipulationBreadth First SearchDepth First SearchDynamic ProgrammingHash Table
- Linked ListMath
- Segment Treesliding WindowSort
- StackstringTree
- Two PointersUnion Find
第三章一些模板
线段树Segment Tree并查集 UnionFind
第四章Leetcode题解
1.Two Sum
2.Add Two Numbers
3. Longest Substring Without Repeating Characters4.Median of Two Sorted Arrays
7.Reverse Integer
9.Palindrame Number
11. Container With Most Water13.Roman to lnteger
15.3Sum
16.3Sum Closest
17.Letter Combinations of a Phone Number18.4Sum
19.Remove Nth Node From End of List20.Valid Parentheses
21.Merge Two Sorted Lists22.Generate Parentheses23.Merge k Sorted Lists24.Swap Nodes in Pairs
25.Reverse Nodes in k-Group
26.Remove Duplicates from Sorted Array27.Remove Element
28.Implement strStr()29.Divide Two Integers
30.Substring with Concatenation of All Words33.Search in Rotated Sorted Array
34.Find First and Last Position of Element in Sorted Array35.Search Insert Position
36.Valid Sudoku
37.Sudoku Solver
题目大意
2个逆序的链表,要求从低位开始相加,得出结果也逆序输出,返回值是逆序结果链表的头结点。
解题思路
需要注意的是各种进位问题。极端情况,例如
Input:(9 ->9 ->9 ->9 ->9)+(1->)
output: 0 -→>0->0 ->0-→>0->1
为了处理方法统一,可以先建立一个虚拟头结点,这个虚拟头结点的Next 指向真正的head,这样head不需要单独处理,直接while循环即可。另外判断循环终止的条件不用是p.Next ! = nil,这样最后一位还需要额外计算,循环终止条件应该是p != nil。
代码
package leetcode
/**
* Definition for singly-linked list.
* type ListNode struct {
* val int
* Next *ListNode
* }
需要刷题笔记PDF文档的小伙伴可以直接点击下方链接下载:
链接:https://pan.baidu.com/s/19I9fkJWAijZszBtwArkxJQ
提取码:you1
每天进步一点点
慢一点才能更快
加油!
最后,有用的话记得点赞支持一下,感谢!
在这里还是要推荐下我自己建的Python开发学习群:553215015(即可获取使用到的代码文件及数据),群里都是学Python开发的,如果你想学或者正在学习Python ,欢迎你加入,大家都是软件开发党,不定期分享干货(只有Python软件开发相关的),包括我自己整理的一份2020最新的Python进阶资料和高级开发教程,欢迎进阶中和进想深入Python的小伙伴!