
解题体会
主要写一点自己刷题过程中的心得
秋名山码民
2019NOIP退役成员,华为云享专家,阿里云专家博主,努力进行算法分享,有问题欢迎私聊,有需求请添加wx
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
听说你还不会滑动窗口?来一篇文章带你学会滑动窗口算法
无重复字符的最长子串这道题主要就是滑动窗口的思想,何为滑动窗口?其实就是一个队列,比如例题中的 abcabcbb,进入这个队列(窗口)为 abc 满足题目要求,当再进入 a,队列变成了 abca,这时候不满足要求。所以,我们要移动这个队列!也是单调队列的经典应用把最左边的队列持续移出,保留其最大长度,维持这个最大长度的队列,即是题目解class Solution {public: int lengthOfLongestSubstring(string s) { if(s原创 2022-02-11 13:39:39 · 2678 阅读 · 1 评论 -
蓝桥杯——备考路线
蓝桥杯刷题的路上,你需要知道的事情原创 2021-12-27 14:45:42 · 13964 阅读 · 5 评论 -
带你从0->1学习双指针算法
为啥要用双指针?先试想一下,如果用BF来解题for(i = 0;i < len; i++) for(j = 0;j <= i; j++) if(check(——)) 时间复杂度为O(n^2),没有进行优化,如果数列为单调,(sort后必然单调)可以使用双指针优化,所以核心思想:将BF算法O(n^2)=>双指针O(n)在我理解,只要是这种的优化都可以称之为双指针算法模板实现for(i = 0,j = 0;i < n;i++){ while(j <原创 2021-12-23 23:46:22 · 1970 阅读 · 3 评论 -
算法0基础之高精度加法模板+解题报告
文章目录前言高精度算法的实现高精度加法例题前言????秋名山码民的主页????????欢迎关注????点赞????收藏⭐️留言????????作者水平很有限,如果发现错误,一定要及时告知作者高精度算法存在的意义:在c++中变量的最大范围也不过是64位的大小,可是在实际的数据中难免出现超出范围的,从而由字符串(数组)引申出来了高精度的计算,用字符串来模拟每一位数字,用算术模拟计算高精度加法,高精度乘法高精度算法的实现高精度加法for (int i = 0; i < maxlen原创 2021-11-16 21:05:03 · 4911 阅读 · 1 评论 -
小小码民刷算法——反转字符串
模板经过一个下午的刷题时光,我发现力扣中字符串有关的题,可分为有空格和无空格的俩种类型,模板一记,直接开挂,秋名山的赛道,跑的飞起!!!1、如果有前后置空格,那么必须判断临时字符串非空才能输出,否则会输出空串`对应的代码如下:void test01(){ s += " "; //这里在最后一个字符位置加上空格,这样最后一个字符串就不会遗漏 string temp = ""; //临时字符串 vector<string> res; //存放字符串的数组 for (char原创 2021-11-14 23:58:09 · 4029 阅读 · 2 评论 -
快速幂----递归
文章目录零 这是打卡的第15天,由于某些原因我旷了3天今天先完成今天的任务,会抽时间补上的,主要的讲解知识点在《算法零基础100讲》(第15讲)二分查找快速幂一 概况三种情况:源码解析:3种情况#define ll long longll f(ll a, ll b, ll c) { if (b == 0) return 1 % c; ll v = f(a*a % c, b/2, c); if (b % 2)原创 2021-11-04 23:58:40 · 402 阅读 · 1 评论 -
因子和——解题报告
躺平几天了,快来写一篇解题报告,前面我们写了因子的分解,这次来写因子和。四因数思路:存在以下俩种情况1. 俩个素数的乘积2.一个素数的三次幂想到了俩种解法:暴力class Solution {public: int sumFourDivisors(vector<int>& nums) { int ans = 0; for (int num: nums) { // factor_cnt: .原创 2021-11-02 10:56:50 · 221 阅读 · 1 评论 -
因数的多少——解题报告
因子数【1,n】中的数进行余数的判断,若为0,则是它的一个因数,对应的优化便是【1,sqrt(n)】的判断1,返回因子数返回因子数题目的意思是:一个数只含有2,3,5,7因子,返回它包含的因子数#include<cstdio>#define ll long longint main() { ll n; int yueshu[4] = { 2,3,5,7 }; while (scanf("%lld", &n) != EOF && n != 0) {原创 2021-10-31 13:54:14 · 235 阅读 · 1 评论 -
因子分解和枚举(一)
今天有难题,所以我分了俩个来写,第一篇水题,发车了……返回n的第k个质数题目中有一个说是排序,但是你for循环后已经是排好序的了,所以说很水的一题,不要相的太难了,请彦祖们看代码class Solution {public: int kthFactor(int n, int k) { int count=0; for(int i=1;i<=n;++i) { if(n%i==0) {原创 2021-10-30 15:53:35 · 251 阅读 · 0 评论 -
算术基本定理
我仔细看了2个题目都比较水,所以我就简单写了一下,不要建议哦,彦祖们完美数英雄哥,在博客中的解法就是一个完美数的解法,哈哈bool checkPerfectNumber(int num){ int i, sum = 0; if(num == 1) { return false; // (1) } for(i = 1; i*i <= num; ++i) { // (2) if(num % i == 0原创 2021-10-30 00:53:58 · 206 阅读 · 1 评论 -
万人千题——素数筛选
一个题用英雄哥博客中写的方法就能解决,所以说完成起来还是比较简单的。计数质数bool f[50001];#define ll long long;bool isPrime(int x){ for (int i = 2; i*i <= x; ++i) { if (x%i == 0) return false; } return true;}int countPrimes(int n){ int ans = 0; for (int i = 2; i < n; +原创 2021-10-28 20:18:59 · 353 阅读 · 0 评论 -
素数判断——数论
前言今天的题还是有点难度的,毕竟剑指offer不是吃素的,我感觉这个题目应该十分接近蓝桥杯的难度了,或者是已经超过了蓝桥杯的难度,但是刷的题中题,方为人中人,发车了解题报告1.剑指offer49丑数算是一个比较新的概念,我刚看这个题的时候,就只想到了暴力解法,循环判断,先写一个函数IsChou来判断是不是丑数,再从1开始递增找第1500位的丑数。//暴力解法#include<iostream>using namespace std;bool IsChou(int numbur)原创 2021-10-27 22:53:27 · 416 阅读 · 4 评论 -
算法0基础刷题——日期计算
准备知识刷完今天的题目,我感觉有以下需要掌握的知识提取字符串由于日期存储是一个字符串的形式,所以说要先提取年,月,日。下面我们来说几个string的函数s.substr(pos, n) //截取s中从pos开始(包括0)的n个字符的子串,并返回用这个来截取年,月,日返回字符串长度s.size()或s.length(),返回无符号类型的数为字符串长度解题报告一周中的第几天暴力解题: int days = 0,ret=0; switch (month)//以闰年举例原创 2021-10-27 00:16:39 · 399 阅读 · 5 评论 -
算法0基础刷题——组合数
前言最近由于备战蓝桥杯,码神开了个新的专题——英雄老师算法之0基础刷题记,主要作用就是写一下自己的题解报告,用来帮助自己提高一下写作能力,也是复盘的一个好方法,话不多说,发车了!杨辉三角介绍性质:每个数等于它上方两数之和。每行数字左右对称,由1开始逐渐变大。第n行的数字有n项。前n行共[(1+n)n]/2 个数。第n行的m个数可表示为 C(n-1,m-1),即为从n-1个不同元素中取m-1个元素的组合数。对于解题有用的性质就这几个,如果想要深入了解杨辉三角,请各位彦祖百度一下。解原创 2021-10-26 00:06:56 · 298 阅读 · 0 评论