【数据结构与算法】学习笔记-《算法笔记》
weixin_42176221
这个作者很懒,什么都没留下…
展开
-
【数据结构与算法】学习笔记-《算法笔记》-17【分数的表示、化简和输出】
分数的表示//分数的表示struct Fraction { int up, down;//分子与分母};分数的化简分数的化简应该满足三项原则:当分母为负数时,分子与分母同时取反;当分数为零时(分子为零时),分母必为1;分子分母没有除了1以外的公约数(同除最大公约数)。//求最大公约数int gcd(int a, int b){ return !b ? a : gcd...原创 2019-10-02 18:46:25 · 240 阅读 · 0 评论 -
【数据结构与算法】学习笔记-《算法笔记》-16【最大公约数与最小公倍数】
最大公约数int gcd(int a, int b){ return !b ? a : gcd(b, a%b);}最小公倍数设正整数a与b的最大公约数是d,最小公倍数是c,则c=a* b/d,为了防止溢出,应写为a/d*b。...原创 2019-10-02 16:31:57 · 125 阅读 · 0 评论 -
【数据结构与算法】学习笔记-《算法笔记》-15【简单数学问题】
示例:数字黑洞#include <cstdio> #include <time.h> #include<stdlib.h>#include<math.h>#include <vector>//#include <cstring>#include <iostream>#include <str...原创 2019-10-02 16:31:49 · 121 阅读 · 0 评论 -
【数据结构与算法】学习笔记-《算法笔记》-14【其他高效技巧与算法】
打表如事先计算出Fibonacci数列,需要时再对其进行查询。活用递推例如就一类涉及序列的题目来说,加入序列的每一位所需要计算的值都可以通过太尉左右两侧的结果计算得到,那么就可以考虑所谓的“左右两侧的结果”是否能通过地推进行预处理来得到,这样在后面的使用中就可以不必反复求解示例:给定字符串,问一共可以形成多少个PAT?输入样例APPAPT输出样例Hint:输入字符串长度不超过1...原创 2019-10-01 19:49:20 · 137 阅读 · 0 评论 -
【数据结构与算法】学习笔记-《算法笔记》-13【two pointers】
引例给定一个递增的正整数序列和一个正整数M,求序列中的两个不同位置的数a和b,使得它们的和恰好为M,输出所有满足条件的方案。二重枚举的复杂度为O(N2)two pointers 将利用有序序列的枚举特性来有效降低复杂度。它对本题的算法过程如下: while (i < j) { if (a[i] + a[j] == m) { printf("%d%d", i, j...原创 2019-09-30 19:22:54 · 177 阅读 · 0 评论 -
【数据结构与算法】学习笔记-《算法笔记》-12【二分】
按顺序查找的方法,时间复杂度为O[n];二分法的时间复杂度为O[logn]。示例:在A[n]={1,3,4,6,7,8,10,11,12,15}中找到6和9的下标(失败返回-1)#include "stdafx.h"#include <cstdio>int binaryS(int A[], int left, int right, int x){ int mid; ...原创 2019-09-29 20:43:17 · 140 阅读 · 0 评论 -
【数据结构与算法】学习笔记-《算法笔记》-11【贪心】
简单贪心示例一:月饼#include "stdafx.h"#include <string>#include <cstdio>#include <algorithm>using namespace std;struct mooncake { double store;//库存量 double sell;//总售价 double pric...原创 2019-09-27 08:54:47 · 235 阅读 · 0 评论 -
【数据结构与算法】学习笔记-《算法笔记》-10【递归】
递归有两个重要概念:原创 2019-09-25 20:30:18 · 121 阅读 · 0 评论 -
【数据结构与算法】学习笔记-《算法笔记》-9
散列示例问题:查询N个正整数是否在M个正整数中出现过传统遍历法的复杂度为O(NM)采用散列思想,用空间换时间,复杂度为O(N+M)#include <cstdio>#include <vector>#include <algorithm>#include <string>#include <cstring>#inclu...原创 2019-09-22 10:56:06 · 157 阅读 · 0 评论 -
【数据结构与算法】学习笔记-《算法笔记》-8
排序选择排序学习了最常用的简单选择哎嘘,复杂度高达O(n2)示例:插入排序学习了最直观的直接插入排序示例:sort函数的应用推荐直接使用C语言中的库函数qsort或是C++中的sort函数进行代码编写sort函数的头文件为< algorithm>它的使用必须加上#include<algorithm>using namespace std;函数格...原创 2019-09-19 20:48:33 · 161 阅读 · 0 评论 -
【数据结构与算法】学习笔记-《算法笔记》-7
练习剩下的树题目描述有一个长度为整数L(1<=L<=10000)的马路,可以想象成数轴上长度为L的一个线段,起点是坐标原点,在每个整数坐标点有一棵树,即在0,1,2,…,L共L+1个位置上有L+1棵树。现在要移走一些树,移走的树的区间用一对数字表示,如 100 200表示移走从100到200之间(包括端点)所有的树。可能有M(1<=M<=100)个区间,区间之间...原创 2019-09-18 21:12:54 · 286 阅读 · 0 评论 -
【数据结构与算法】学习笔记-《算法笔记》-6
害死人不偿命的(3n+1)猜想#include "stdafx.h"#include <cstdio>#include <cstring>#include <cmath>using namespace std;int main(){ int n; int i = 0; scanf("%d", &n); while (n - 1)...原创 2019-09-11 15:44:59 · 378 阅读 · 0 评论 -
【数据结构与算法】学习笔记-《算法笔记》-5
cin / cout使用cin / cout 需要添加头文件#include以及 using namespace std;同时读入多个变量:cin>>n>>db>>c>>str;读入一整行(使用getline函数):char str[100];cin.getline(str, 100)如果是string容器,则需要用下面的方式输入...原创 2019-08-20 07:20:55 · 276 阅读 · 0 评论 -
【数据结构与算法】学习笔记-《算法笔记》-4
结构体结构体基本格式:struct Name{//一些基本的数据结构或者自定义的数据类型};Eg. struct studentInfo { int id; char gender; char name[20]; char major[20]; }Alice, Bob, sru[1000];结构体不能定义自己本身,但是可以定义自身类型的指针变量Eg s...原创 2019-08-19 17:58:25 · 191 阅读 · 0 评论 -
【数据结构与算法】学习笔记-《算法笔记》-3
函数函数的基本语法格式返回类型 函数名称(参数类型 参数){函数主体}值传递:函数定义的小括号内的参数称为形参,实际调用的参数为实参数组作为函数参数:实际调用的时候只要写数组名。在函数中对数组元素的修改就等同于对原数组元素的修改(这与普通的局部变量不同)不过,虽然数组可以作为参数,却不允许作为返回类型出现。练习习题7-5 字符串逆序存放题目描述 写一个函数...原创 2019-08-18 20:43:21 · 240 阅读 · 0 评论 -
【数据结构与算法】学习笔记-《算法笔记》-2
选择结构对于if语句而言,如果条件表达式是"!=0"或"==0",有一个信达雅的写法:如if(n!=0)改写为if(n)switch 语句格式switch(表达式){ case 常量表达式1: … break; case 常量表达式2: … break; …… default: … }如果没有break,将会全部执...原创 2019-08-17 00:55:00 · 465 阅读 · 0 评论 -
【数据结构与算法】学习笔记-《算法笔记》-1
基础知识stdio= standard Input output , h= headstdio.h =一个包含了输入输出的头文件,#include<stdio.h> × #include< cstdio> √#include<math.h> × #include< cmath> √#include&...原创 2019-08-16 17:13:14 · 402 阅读 · 0 评论 -
【数据结构与算法】学习笔记-《算法笔记》-18【素数】
将解决两个问题:如何判断给定的正整数n是否是质数;如何在较短的时间内得到1~n内的素数表如何判断给定的正整数n是否是质数;结论:只需要判定n能否被2,3……sqrt(n)(向下取整)中的一个整除,即可判定n是否为素数。 具体证明过程如下:代码如下://判断是否为素数bool isPrime(int n){ //特判 if (n <= 1) return fals...原创 2019-10-02 21:15:40 · 232 阅读 · 0 评论