![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法与数据结构
文章平均质量分 69
失败的Cc
这个作者很懒,什么都没留下…
展开
-
算法与数据结构笔记
文章目录算法动态规划算法递归算法回溯算法搜索算法分治算法与树有关位运算二分查找单调栈单调队列滑动窗口并查集随机化算法双指针排序算法模拟数学数据结构位图二叉树链表图论正则匹配表达式求值模板算法动态规划算法关键点(求最值,有重叠子问题(计算过的结果用dp保存),最优子结构(最后的解包含上一步的解))状态和选择# 初始化 base casedp[0][0][...] = base# 进行状态转移for 状态1 in 状态1的所有取值: for 状态2 in 状态2的所有取值:原创 2021-09-23 17:20:20 · 131 阅读 · 0 评论 -
算法与数据结构之二分查找
要点找出判断的条件何时退出循环举例无重复数字的普通二分查找找出判断的条件:用arr[mid]和target去比较。如果arr[mid] == target时,返回mid;如果arr[mid] > target时,说明要找的值在左边,right = mid - 1;arr[mid] < target时,说明要找的值在右边,left = mid + 1;如果退出循环时还没有找到匹配到的项,则直接返回-1。何时退出循环:left <= right时执行循环体。代码publ原创 2021-09-22 00:21:59 · 46 阅读 · 0 评论 -
算法与数据结构之递归
要点搞清楚递归函数的作用处理当前状态和下一递归状态的关系处理好递归的出口举例反转链表当前递归函数的作用:反转链表,并返回新的头结点。当前状态和下一递归状态的关系:递归调用ReverseList(head.next),函数会返回新的头结点,我们需要处理好当前状态和下一状态的关系。递归的出口:如果head或者head.next为null,直接返回head;代码 public class Solution { public ListNode ReverseLis原创 2021-09-22 00:21:20 · 95 阅读 · 0 评论