博客园  :: 首页  :: 新随笔  :: 管理

2021年3月29日

摘要: Index LeetCode 树作为单链表的升级版,我们通常接触的树都是二叉树(binary tree),即每个节点最多有两个子节点;可以看出,其与链表的主要差别就是多了一个子节点的指针。 struct TreeNode{ int val; TreeNode *left; TreeNode *rig 阅读全文

posted @ 2021-03-29 21:46 wsg_blog 阅读(109) 评论(0) 推荐(0) 编辑

摘要: Index LeetCode (单)链表是由节点和指针构成的数据结构,每个节点存有一个值,和一个指向下一节点的指针,因此很多链表问题可以用递归来处理,不同于数组,链表不能直接获取任意节点的值,必须要通过指针找到该节点后才能获取其值。在未遍历到链表结尾时,我们也无法知道链表的长度,除非依赖其他数据存储 阅读全文

posted @ 2021-03-29 21:45 wsg_blog 阅读(117) 评论(0) 推荐(0) 编辑

摘要: Index LeetCode 字符串可以看成是字符组成的数组。一般将把字符的ASII码作为标示来使用。 string s; 长度判断为s.length(); BM83.字符串变形[easy] 输入:"This is a sample",16 输出:"SAMPLE A IS tHIS" 字符大小写转换 阅读全文

posted @ 2021-03-29 21:44 wsg_blog 阅读(168) 评论(0) 推荐(0) 编辑

摘要: Index LeetCode 简单罗列下c++ stl里数据结构:vector,hash(unordered_set\map),queue,deque,priority_queue,stack,list 主要会用以上数据结构的成员函数有:empty(),count(),insert(),push() 阅读全文

posted @ 2021-03-29 21:43 wsg_blog 阅读(135) 评论(0) 推荐(0) 编辑

摘要: Index LeetCode 动态规划和其它遍历算法(如深/广度优先搜索)都是将原问题拆成多个子问题然后求解,他们之间的最本质区别是,动态规划保存子问题的解,避免重复计算。 解决动态规划问题的关键是找到状态转移方程,这样我们可以通过计算和存储子问题的解来求解最终问题。 状态转移矩阵及dp数组初始化 阅读全文

posted @ 2021-03-29 21:41 wsg_blog 阅读(111) 评论(0) 推荐(0) 编辑

摘要: Index LeetCode 递归应该已经不陌生了,在前面的二叉树中,我们大量使用了递归,回溯是递归的“副产品”,只要有递归的过程就会有对应的回溯过程,递归和回溯的本质都为穷举,我们通常称为“暴搜”,回溯会有撤回之前操作的功能。 回溯可以解决的问题: 组合问题:如何按照一定规则在N个数中找出k个数的 阅读全文

posted @ 2021-03-29 21:39 wsg_blog 阅读(235) 评论(0) 推荐(0) 编辑

摘要: Index LeetCode 堆,大顶堆priority_queue min、小顶堆,priority_queue<int, vector, greater> max; 栈,先进后出结构,在c++中用stack来表示; 队列,先进先出结构,在c++中用queue来表示 BM42.用两个栈实现队列(2 阅读全文

posted @ 2021-03-29 21:37 wsg_blog 阅读(87) 评论(0) 推荐(0) 编辑

摘要: Index LeetCode 二分查找也被称为二分法或者折半查找,一般来说都是针对有序区间的查找,每次查找时通过将待查找区间分成两部分并只取一部分继续查找,将查找的复杂度大大减少,对于一个长度为O(n)的数组,二分查找的时间复杂度为O(log n),二分查找要求数组是有序的。 具体到代码上,二分查找 阅读全文

posted @ 2021-03-29 21:36 wsg_blog 阅读(103) 评论(0) 推荐(0) 编辑

摘要: Index LeetCode 双指针主要用于遍历数组,两个指针指向不同的元素,从而协同完成任务。也可以延伸到多个数组的多个指针 若两个指针指向同一数组,遍历方向相同且不会相交,则也称为滑动窗口(两个指针包围的区域即为当前的窗口),经常用于区间搜索; 若两个指针指向同一数组,但是遍历方向相反,则可以用 阅读全文

posted @ 2021-03-29 21:34 wsg_blog 阅读(145) 评论(0) 推荐(0) 编辑

摘要: Index LeetCode 贪心 贪心算法或贪心思想采用贪心的策略,保证每次操作都是局部最优的,从而使最后得到的结果是全局最优的。 455.分发饼干[easy] 每个孩子都有自己的饥饿度,一堆饼干大小不同,且每个孩子只能分一个饼干,多少孩子可以吃饱 思路是先对vector数组排序,while循环遍 阅读全文

posted @ 2021-03-29 21:33 wsg_blog 阅读(97) 评论(0) 推荐(0) 编辑

摘要: 笔试刷题 本次刷题主要以牛客网的面试必刷TOP101为主,题型难度循序渐进,分类比较合理;从之前的《剑指Offer》到现在的面试必刷top101、配套讲解,以及carl的代码随想录; 我的刷题记录:我的牛客、我的力扣 使用什么数据结构比较合适?数组还是vector还是list还是deque,stac 阅读全文

posted @ 2021-03-29 20:50 wsg_blog 阅读(317) 评论(0) 推荐(1) 编辑