LeetCode 大厂算法刷题笔记(C++)
2021-06-14 13:39:42   0  举报             
     
         
 AI智能生成
  Leetcode刷题笔记 从top100和剑指offer开始,面向面试刷题,2个月准备大厂code test
    作者其他创作
 大纲/内容
  查找
    
     二分查找    
     模板    
     基本二分 (left=0,right=n-1)  
     找左边的(可包含重复值)(找到后会继续缩小直到l和r重合)(left=0, right=n-1)  
     找右边的(结果是ans)(left=0, right=n)  
     34. 在排序数组中查找元素的第一个和最后一个位置    
     1、lower_bound和upper_bound库函数
    
     code  
     2、手动实现lower_bound和upper_bound  
     3、二分查找  
     35.搜索插入位置    
     code  
     排序    
     快速排序    
     912. 排序数组    
     1、快速排序    
     挖坑填数    
     随机数版  
     双指针  
     字符串    
     165. 比较版本号  
     进制转化    
     code  
     5740. 所有元音按顺序排布的最长子字符串    
     code  
     20. 有效的括号(括号匹配)    
     栈    
     code  
     151. 翻转字符串里的单词    
     倒序遍历    
     code  
     5772. 检查某单词是否等于两单词之和    
     练习string转char转数字    
     String转char[]    
     用for循环  
     char[]转数字    
     用-'0'  
     char[]转String    
     用 string+=char  
     code    
     string转数字更简单的写法  
     5773. 插入后的最大值    
     code  
     8. 字符串转换整数 (atoi)
    
     code  
     22. 括号生成    
     递归法,左括号的和要小于或等于右括号    
     code  
     数组    
     前缀和系列    
     560. 和为K的子数组    
     前缀和 + 哈希表    
     code  
     枚举(必定超时,不能用)    
     code  
     剑指 Offer 39. 数组中出现次数超过一半的数字    
     code  
     1248. 统计「优美子数组」  
     54. 螺旋矩阵
    
     边界收缩    
     code  
     137. 只出现一次的数字 II    
     code    
     待研究  
     1、两数之和    
     枚举    
     code  
     哈希表    
     code    
     unordered_map    
     find()  
     count()  
     c++ ->second    
     用在map的pair里key或value的选择  
     (*it).first 或者 it->first  会得到key
  
     (*it).second 或者 it->second 会得到value  
     哈希表    
     146.LRU缓存机制    
     方法:哈希表+双向链表
哈希表能在0(1)复杂度内找到键和对应的值
    哈希表能在0(1)复杂度内找到键和对应的值
 code  
     扩展:unordered_map用法    
     赋值  
     迭代器的使用  
     成员函数  
     踩坑  
     练习
    
     剑指 Offer 39. 数组中出现次数超过一半的数字    
     code  
     137. 只出现一次的数字 II    
     code    
     待研究  
     栈    
     232. 用栈实现队列    
     code  
     剑指 Offer 09. 用两个栈实现队列    
     code  
     链表    
     21. 合并两个有序链表    
     递归    
     code  
     迭代    
     code  
     237. 删除链表中的节点    
     复制节点    
     code  
     83. 删除排序链表中的重复元素    
     code  
     19. 删除链表的倒数第 N 个结点    
     快慢指针(常用)    
     code  
     计算数组长度    
     code  
     141. 环形链表    
     方法一:哈希表(需要额外空间)    
     code  
     方法二:快慢指针    
     code  
     剑指 Offer 22. 链表中倒数第k个节点    
     方法:快慢指针    
     code  
     206. 反转链表    
     双指针迭代    
     code  
     递归    
     code  
     24. 两两交换链表中的节点    
     迭代    
     code  
     测试    
     code  
     二叉树    
     100.相同的树    
     code  
     101.对称二叉树    
     code  
     102. 二叉树的层序遍历    
     code  
     扩展:queue    
     成员函数  
     扩展:二维vector    
     用法  
     103.二叉树的锯齿形层序遍历    
     code  
     对比102. 二叉树的层序遍历 代码类似
双向队列,如果在奇数层就从back()处开始push,如果偶数层就从front()开始push
    双向队列,如果在奇数层就从back()处开始push,如果偶数层就从front()开始push
 236. 二叉树的最近公共祖先
    
     递归  
     哈希表  
     105. 从前序与中序遍历序列构造二叉树  
     回溯算法    
     思路:画出回溯树
回溯算法是在一棵树上的 深度优先遍历(因为要找所有的解,所以需要遍历);
  
    回溯算法是在一棵树上的 深度优先遍历(因为要找所有的解,所以需要遍历);
 组合问题(不需要考虑顺序性)    
     子集    
     78.子集    
     递归    
     code  
     迭代    
     时间复杂度太高,不考虑  
     90. 子集 II    
     code  
     ps:子集I和子集II返回的子集都不能包含重复元素,他们之间的区别是子集II题目给的集合里包含重复元素  
     77.组合    
     code  
     递归树  
     39. 组合总和  
     22. 括号生成    
     递归法,左括号的和要小于或等于右括号    
     code  
     排列问题(需要顺序性)  
     搜索问题  
     动态规划    
     打家劫舍    
     198.打家劫舍  
     213.打家劫舍II  
     337.打家劫舍III  
     背包问题  
     子串&子序列    
     5.最长回文子串    
     中心扩展法    
     code  
     1143.最长公共子序列    
     常规二维数组    
     code  
     优化滚动一维    
     code  
     数学    
     836.区间重叠    
     1、将二维问题转化为一维数组    
     code  
     2、考虑上下左右四种重合情况    
     code  
     大数系列    
     大数乘法  
     面试    
     topK问题  
      收藏 
     
 
 
 
 
  0 条评论
 下一页