链表排序
1. 插入排序
- 只要注意每次判断比前面的大那就不需要回头
- 否则需要从头找合适的位置
1 | ListNode* insertSort(ListNode* head) { |
2. 归并排序
- 不论是主递归还是merge都要求两个链表以nullptr结尾
- 也就是在合适的地方断开
1 | ListNode* insertSort(ListNode* head) { |
1 | void bubbleSort(vector<int>& arr) { |
利用C++特性
1 | template <class T> |
1 | #include <iostream> |
l = m + 1r = ml = m + 2r = m - 11 | class Solution { |
找到任意一个峰值,你可以假设 nums[-1] = nums[n] = -∞ 。
1 | class Solution { |
1 | class Solution { |
1 | class Solution { |
1 | class Solution { |