leetcode算法总结 —— HOT 100整理

文章目录

easy

    1. 汉明距离(位运算a^b, n=n&(n-1))
    1. 合并二叉树(前序遍历判断并构造,返回构造后的树)
    1. 翻转二叉树(前序遍历:每个节点都交换左右子树)
    1. 二叉树的最大深度(dfs向上返回深度,bfs记录深度)
    1. 二叉树的直径(求最大深度)
    1. 反转链表(方法一:迭代,方法二:递归)
    1. 合并两个有序链表
    1. 只出现一次的数字(位运算)
    1. 多数元素(摩尔投票法)
    1. 对称二叉树(dfs和BFS)
    1. 回文链表(使用快慢指针,快指针走两步,慢指针走一步,慢指针并反转前半部分链表)
    1. 环形链表(快慢指针,扣圈)
    1. 买卖股票的最佳时机(dp,然后优化一下空间)
    1. 相交链表(双指针,走完自己链表走另一个链表)
    1. 移动零(一个读指针,一个写指针,非0的写)
    1. 找到所有数组中消失的数字(原数组操作对index标记)
    1. 最小栈(辅助栈)
    1. 两数之和(map)
    1. 爬楼梯(简单dp)
    1. 有效的括号(辅助栈)
    1. 最大子序和(DP)

mid

    1. 比特位计数(位运算)
    1. 二叉树展开为链表(dfs或者直接遍历)
    1. 全排列(回溯)
    1. 两数相加(注意进位和判断链表为空)
    1. 无重复字符的最长子串(滑动窗口+set判断)
    1. 寻找两个正序数组的中位数(方法一:两路归并找中位数,方法二:待研究)
    1. 三数之和(两个排序数组之和思想)
    1. 二叉树的序列化与反序列化
    1. 滑动窗口最大值(单调队列,插入删除和取最大值都是O(1))

hard

猜你喜欢

转载自blog.csdn.net/chongbin007/article/details/115146518