算法
!Y_M!
这个作者很懒,什么都没留下…
展开
-
关于大数越界问题的三种取余方式
1. 大数越界问题概述由于最近在刷leetcode时,遇到了大数越界问题,就正好打算做一次总结。大数越界:在程序运算的过程中,变量可能超出int32甚至int64的取值范围。解决方法:循环取余。 快速幂取余 二分取余1.1 循环取余循环取余是最为简单的一种。就是在每次操作时,就对边界进行取余操作,确保结果res,是在边界内的。例如:1.2 快速幂取余1.2.1 例子代码 int b = n % 3, p = 100000...原创 2020-07-15 17:07:49 · 2862 阅读 · 0 评论 -
双指针技巧汇总(含滑动窗口)
本文将双指针分为快慢指针和左右指针两大类进行介绍。目录一、快慢指针快慢指针一般都初始化指向链表的头结点 head,前进时快指针 fast 在前,慢指针 slow 在后。(1)判断链表中是否含有环算法思路:1. 设置快指针fast、慢指针slow,然后让fast以2的步长,slow以1的步长进行遍历2.如果链表中不含有环,fast指针最后就会遇到空指针就代表到头了3. 如果链表含有环,快指针肯定会在某一个时刻超过慢指针一圈,最后相遇 此时关于环有几点...原创 2020-06-29 23:38:04 · 950 阅读 · 0 评论 -
二分查找算法一锅端
二分查找的注意事项1、分析二分查找代码时,不要出现 else,全部展开成 else if 方便理解。2、注意「搜索区间」和 while 的终止条件,如果存在漏掉的元素,记得在最后检查。3、如需定义左闭右开的「搜索区间」搜索左右边界,只要在 nums[mid] == target 时做修改即可,搜索右侧时需要减一。4、如果将「搜索区间」全都统一成两端都闭,好记,只要稍改 nums[mid] == target 条件处的代码和返回的逻辑即可不同二分查找的思路和细节第一个,最基本的二分查找算法:因原创 2020-06-27 19:52:00 · 128 阅读 · 0 评论