算法笔记—数学
文章平均质量分 87
算法笔记——数学
沉迷单车的追风少年
CSDN博客专家,CSDN商业化专家,官方内容合作伙伴,官方认证“人工智能领域优质创作者”,入选2023年中国开发者影响力年度榜单。
代表专栏《Diffusion Models与深度学习》、《手把手写深度学习》、《深度学习-计算机视觉》、《手把手写C++服务器》等。
展开
-
数学/基础数论——从LeetCode题海中总结常见套路
今天是大年初一,祝大家新年快乐!原创 2021-02-12 14:46:11 · 582 阅读 · 4 评论 -
数字操作——从LeetCode题海中总结常见套路
异常处理溢出情况:LeetCode7.整数反转转换成字符串处理:LeetCode9.回文数统计5因子的个数:LeetCode172.阶乘后的零数论位数根:LeetCode258.各位相加常规解法:找规律:原创 2020-07-05 20:39:41 · 483 阅读 · 2 评论 -
二维矩阵——从LeetCode题海中总结常见套路
二维矩阵的有套路吗?当然有,但是不如回溯、贪心这类题有模板,但是很多题的思路可以举一反三的!目录二维矩阵中的经典:LeetCode54.螺旋矩阵剑指offer经典:LeetCode74.搜索二维矩阵类似上一题的:LeetCode240.搜索二维矩阵II二维二分法:LeetCode378.有序矩阵中第K小的元素二维矩阵中的经典:LeetCode54.螺旋矩阵这道题的思路很清晰,但是一次AC难度可不小,可以当做一个经典模板题来处理!class Solution {publ原创 2020-07-05 11:39:31 · 725 阅读 · 0 评论 -
从找多数元素题理解摩尔投票法
目录先看题目:LeetCode169.多数元素思路一:哈希表法思路二:中位数法思路三:摩尔投票法先看题目:LeetCode169.多数元素思路一:哈希表法顺便提一句,如果提前指定了数组中元素,可以使用木桶法,但是这里不适用,只能老老实实用哈希表class Solution {public: int majorityElement(vector<int>& nums) { map<int,int> m;原创 2020-06-06 17:03:35 · 273 阅读 · 0 评论 -
由经典“接雨水”问题引发的思考——从LeetCode题海中总结常见套路
leetcode面试题17.21.直方图的雨量解法一:解法二:从每个点的角度来优化算法相同的思路解决:LeetCode121.买卖股票的最佳时机原创 2020-04-01 12:16:39 · 914 阅读 · 1 评论 -
剑指offer——约瑟夫环问题
前几天华为机试做到类似题,当时并不知道,用数组强行模拟然后挂掉看来还是要多读书,闭门造车是不行的!用链表或者数组模拟是不行的!得用公式求解:f(N,M)=(f(N−1,M)+M)%N这个公式咋来的,我看到另一篇很好的博客,直接拿来了:https://blog.csdn.net/u011500062/article/details/72855826约瑟夫环是一个经典的数...原创 2020-03-30 10:24:42 · 273 阅读 · 0 评论 -
二分搜索——从LeetCode题海中总结常见套路
LeetCode852.山脉数组的峰顶索引笨方法当然是找到最大值的下标然后垫底class Solution {public: int peakIndexInMountainArray(vector<int>& A) { vector<int> a(A.begin(),A.end()); sort(a.be...原创 2020-03-21 16:19:09 · 414 阅读 · 0 评论 -
左右指针——从LeetCode题海中总结常用套路
双指针分类:快慢指针:常用来解决链表中的问题 左右指针:常用来解决数组和字符串的问题LeetCode88.合并两个有序数组其实这题算是左右指针问题;定义两个下标滑动即可;但是要新开一个数组会浪费不少空间class Solution {public: void merge(vector<int>& nums1, int m, vec...原创 2020-03-12 20:28:36 · 1252 阅读 · 1 评论 -
快慢指针——从LeetCode题海中总结常用套路
目录双指针分类:快慢指针典例:判断链表中是否有环LeetCode141.环形链表进阶问题:已知链表中含有环,返回这个环的起始位置LeetCode142.环形链表快慢指针典例:寻找链表的中间结点LeetCode876.链表的中间结点进阶问题:寻找链表的倒数第 k 个元素LeetCode面试题02.02.返回倒数第k个结点参考:双指针分类:快慢指针:常用...原创 2020-03-12 20:05:02 · 1016 阅读 · 0 评论 -
位运算——从LeetCode题海中总结常见套路
目录位运算常用技巧&运算判断2的幂:LeetCode231.2的幂左移运算右移运算LeetCode1290.二进制链表转整数常规递归法:使用位移运算LeetCode191.位1的个数:“与”运算后右移异或运算:LeetCode461.汉明距离常规方法:记得末尾补0位运算:异或运算后统计1的个数位运算+DP: LeetCode338.比特位计数LeetCode190.颠倒二进制位经典异或运算:LeetCode136.只出现一次的数字有...原创 2020-03-10 18:15:27 · 595 阅读 · 2 评论 -
LeetCode136.只出现一次的数字[异或运算典例]
这种去重类的题目,用使用set或者map是常规套路;但是用异或运算会很有逼格啊哈哈其实也是套路满满异或运算法则:0 ^ 0 = 0, 0 ^ 1 = 1, 1 ^ 0 = 1, 1 ^ 1 = 0即相应位的值相同的,结果为 0,不相同的结果为 1。排序查找的笨方法:class Solution {public: int singleNumber(vec...原创 2020-03-09 15:00:06 · 201 阅读 · 0 评论 -
【LeetCode】50.Pow(x,n)反复平方法解决快速幂问题
参加我之前的一篇文章:【数论基础】判断素数、埃拉托色尼筛选法、欧几里得算法、反复平方法https://blog.csdn.net/qq_41895747/article/details/104379060题目:class Solution {public: double myPow(double x, int n) { double res = 1; ...原创 2020-03-02 21:29:13 · 323 阅读 · 0 评论 -
【数论基础】判断素数、埃拉托色尼筛选法、欧几里得算法、反复平方法
筛选素数快速筛选素数:埃拉托色尼筛选法只有一行的算法:欧几里得算法求解最大公约数求幂乘:反复平法法原创 2020-02-18 17:42:35 · 940 阅读 · 3 评论 -
贪心——POJ整理
目录1.字典序最小问题POJ36172.硬币问题3.最少标记点POJ30694.修复栅栏POJ3253贪心法就是遵循某种规则,不断贪心地选取当前最优化策略的算法设计方法。1.字典序最小问题POJ3617//贪心 字典序比较题/*Best Cow LineTime Limit: 1000MS Memory Limit: 65536KTotal Su...原创 2020-01-07 20:00:06 · 452 阅读 · 0 评论