
算法
梦呓abcd
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【蓝桥杯】算法很美 ----7 深搜+递归+回溯剪枝
1.1逐步生成结果类问题之数值解cc9.1上楼梯cc9.2机器人走方格cc9.8硬币表示cc9.1自上而下取看,更直观,直接写出递推公式分析:一层:1种(1)两层:2种(1+1,2)三层:4种(1+1+1,1+2,2+1,3)四层:先走一层,还剩三层:4 先走两层,还剩两层:2 先走三层,还剩一层:1 f(4) = f(3)+f(2)+f(1) 得到递归式:f(n) = f(n-1) + f(n-2) + f(n-3)cc9.2递推:cc9.8以1原创 2020-08-08 20:00:08 · 458 阅读 · 0 评论 -
蓝桥杯--c++ sort
头文件algorithm注意sort第二个参数要比排序结尾的数大一最好不要用false原创 2020-08-08 14:58:19 · 221 阅读 · 1 评论 -
蓝桥杯--年份处理
闰年:1、年份非整百且能被4整除 (year % 4 = = 0 && year % 100 != 0)2、年份能被400整除 (year%400 = = 0)需要注意的是:能被100整除的数,必须能被400整除才算是闰年question1:星期几输入年月日,输出星期几#include<iostream>#include<cstring>using namespace std;int whatDay(int y, int m, int d){原创 2020-08-08 14:44:44 · 345 阅读 · 0 评论 -
递归1--gcd欧几里得
// 辗转相除法// 如果m%n = 0, 则n为最大公约数 // 如果m%n=k n%k #include<iostream>using namespace std;int gcd(int m, int n){ if(m % n == 0) return n; else gcd(n, m%n);}原创 2020-08-07 17:48:02 · 179 阅读 · 0 评论 -
分治4--逆序对
逆序对在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。输入: arr[]={8,5,4,2,1}输出: 10解释: 逆序对为(8,5)、(8,4)、(8,2)、(8,1),(5,4)、(5,2)、(5,1),还有(4,2)、(4,1)和(2,1),总共10个。其实也可以直接计算5(5-1)/2=10,前提是知道数组完全逆序输入: arr[]={5,1,4,2,8}输出: 4解释: 逆序对为(5,1)、(5,4)、(5原创 2020-08-07 12:55:24 · 217 阅读 · 0 评论 -
分治3--寻找发帖水王
寻找发帖水王即寻找超过一半的数字数组中有一个元素出现的次数超过了数组长度的一半,找出这个数字思路1: 排序后在中间的数思路2: 寻找第k大数(k=n/2)思路3: 消除法 记录元素及其出现次数,遇到不同数字两者皆消去,否则次数++,由于概数出现次数>一半长度,最后剩余的一定是该数int f(int arr[], int len) { int candidate = arr[0]; // 候选 int nTimes = 1; // 出现的次数 // 扫描数组 fo原创 2020-08-06 22:25:43 · 139 阅读 · 0 评论 -
二分法详解
https://www.cnblogs.com/kyoner/p/11080078.html原创 2020-08-05 16:36:24 · 231 阅读 · 0 评论