LeetCode笔记
文章平均质量分 72
yizhi_hao
这个作者很懒,什么都没留下…
展开
-
关于二分法
二分法中点的取法参考博文:二分以及编程过程中求中点各种写法思想解析以及完美写法从我大学学习二分时,一直习惯将二分法中点取法写为mid = (l + r) / 2,最近开始做LeetCode题目,发现二分法求区间中点的写法更多是mid = l + (r - l) / 2,在化简后可以发现这两种实际在数学上是等价,这两种方式的差异或者说后者的优势在哪?mid = (l + r) / 2的劣势溢出问题l + r可能会溢出int的最大范围,而l + (r - l) / 2不会,这里用减法替代了加法上下转载 2021-05-07 11:21:37 · 428 阅读 · 0 评论 -
LeetCode笔记(一)回溯
回溯、递归与剪枝简介递归回溯剪枝经典题目LeetCode46 全排列LeetCode47 全排列IILeetCode39 组合总数LeetCode40 组合总数II总结简介递归递归:一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解。在LeetCode刷题过程中,遇到很多运用递归解法的题目,递归代码较难理解,但是可以使代码逻辑简洁。回溯回溯是一种算法思想,从问题的某一种可能出发,搜索从这种情况出发所能达到的所有原创 2021-05-05 00:17:38 · 314 阅读 · 1 评论 -
链表中的双指针——快慢指针
快速查找单链表的中点单链表定义如下:class ListNode { int val; ListNode next; ListNode() { } ListNode(int val) { this.val = val; } ListNode(int val, ListNode next) { this.val = val; this.next = next; }}原创 2021-05-04 18:52:20 · 218 阅读 · 0 评论