算法
ztq小天
sdasas
展开
-
汉诺塔—ACM
移动圆环的要求:小圆环上不能放大圆环,一次只能从一个柱子上移动一个圆环现有三根柱子,两根空一根有圆环,求将有圆环的柱子上的圆环(圆环下大上小)全部移动到另一个柱子上(圆环下大上小)的最少次数#include <iostream>using namespace std;// A,B,C表示三根柱子(这三个只起到辅助作用,可以舍去)// 在这里的意思是(即从A借助B移动到C...原创 2020-09-25 11:13:23 · 393 阅读 · 0 评论 -
数独—ACM
题目描述问题描述:数独(Sudoku)是一款大众喜爱的数字逻辑游戏。玩家需要根据9X9盘面上的已知数字,推算出所有剩余空格的数字,并且满足每一行、每一列、每一个粗线宫内的数字均含1-9,并且不重复。输入:包含已知数字的9X9盘面数组[空缺位以数字0表示]输出:完整的9X9盘面数组输入描述:包含已知数字的9X9盘面数组[空缺位以数字0表示]输出描述:完整的9X9盘面数组...原创 2020-09-25 11:13:35 · 152 阅读 · 0 评论 -
偷窃—ACM
你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你在不触动警报装置的情况下,能够偷窃到的最高金额。示例 1:输入: [1,2,3,1]输出: 4解释: 偷窃 1 号房屋 (金额 = 1) ,然后偷窃 ...原创 2020-09-25 11:08:07 · 94 阅读 · 0 评论 -
子序列最大和—ACM
给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4],输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。#include <stdio.h>#include <vector>#include <iostrea...原创 2020-09-25 11:08:22 · 184 阅读 · 0 评论 -
买卖股票—ACM
给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。注意你不能在买入股票前卖出股票。示例 1:输入: [7,1,5,3,6,4]输出: 5解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。 ...原创 2020-09-25 11:10:31 · 291 阅读 · 0 评论 -
经典动态规题思路
线性模型【例题1】在一个夜黑风高的晚上,有n(n <= 50)个小朋友在桥的这边,现在他们需要过桥,但是由于桥很窄,每次只允许不大于两人通过,他们只有一个手电筒,所以每次过桥的两个人需要把手电筒带回来,i号小朋友过桥的时间为T[i],两个人过桥的总时间为二者中时间长者。问所有小朋友过桥的总时间最短是多少。思路:每次过桥的时候最多两个人,如果桥这边还有人,那么还得回来一个人(送手电筒...原创 2020-09-25 11:08:59 · 148 阅读 · 0 评论 -
切割—ACM
p为长度从1-10英寸,对应的价格n为给出一长度(整型)求切割成以上长度后能获得的最大收益#include <string.h>#include <stdio.h>#include <stdlib.h>int cut(int* p,int n){ if(n == 0) return 0; int q = -1; int i; f...原创 2020-09-25 11:16:12 · 167 阅读 · 0 评论 -
爬楼梯—ACM
fibonacci.c:为斐波那数列climbStair.c:假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。示例 1:输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1. 1 阶 + 1 阶2. 2 阶示例 2:输入: 3输出: 3解释: 有三种方法...原创 2020-09-25 11:10:52 · 254 阅读 · 0 评论 -
数字三角形最大和—ACM
在下面的数字三角形中寻找一条从顶部到底边的路径,使得路径上所经过的数字之和最大。路径上的每一步都只能往左下或 右下走。只需要求出这个最大和即可,不必给出具体路径。 三角形的行数大于1小于等于100,数字为 0 - 99输入格式:5//表示三角形的行数接下来输入三角形73881027...原创 2020-09-25 11:10:12 · 288 阅读 · 0 评论 -
火车进站—ACM
题目描述给定一个正整数N代表火车数量,0<N<10,接下来输入火车入站的序列,一共N辆火车,每辆火车以数字1-9编号。要求以字典序排序输出火车出站的序列号。输入描述:有多组测试用例,每一组第一行输入一个正整数N(0<N<10),第二行包括N个正整数,范围为1到9。输出描述:输出以字典序从小到大排序的火车出站序列号,每个编号以空格隔开,每个输出序列换行,...原创 2020-09-25 11:16:52 · 795 阅读 · 0 评论 -
查找两个字符串a,b中的最长公共子串—ACM
题目描述查找两个字符串a,b中的最长公共子串。若有多个,输出在较短串中最先出现的那个。输入描述:输入两个字符串输出描述:返回重复出现的字符示例1输入abcdefghijklmnopabcsafjklmnopqrstuvw输出jklmnop算法实现// 暴力#include <iostream>#include <st...原创 2020-09-25 11:09:16 · 283 阅读 · 0 评论 -
最长回文字符串—ACM
题目描述Catcher是MCA国的情报员,他工作时发现敌国会用一些对称的密码进行通信,比如像这些ABBA,ABA,A,123321,但是他们有时会在开始或结束时加入一些无关的字符以防止别国破解。比如进行下列变化ABBA->12ABBA,ABA->ABAKK,123321->51233214 。因为截获的串太长了,而且存在多种可能的情况(abaaab可看作是aba,或baa...原创 2020-09-25 11:09:45 · 180 阅读 · 0 评论 -
24点游戏—ACM
题目描述问题描述:给出4个1-10的数字,通过加减乘除,得到数字为24就算胜利输入:4个1-10的数字。[数字允许重复,但每个数字仅允许使用一次,测试用例保证无异常数字]输出:trueorfalse输入描述:输入4个int整数输出描述:返回能否得到24点,能输出true,不能输出false示例1输入7 2 1 10输出true算法实现...原创 2020-09-25 11:12:08 · 429 阅读 · 0 评论 -
统计兔子总数—ACM
题目描述有一只兔子,从出生后第3个月起每个月都生一只兔子,小兔子长到第三个月后每个月又生一只兔子,假如兔子都不死,问每个月的兔子总数为多少?输入描述:输入int型表示month输出描述:输出兔子总数int型示例1输入9输出34迭代算法实现#include <iostream>int GetTotalCount(int mont...原创 2020-09-25 11:11:55 · 142 阅读 · 0 评论 -
汽水瓶—ACM
题目描述有这样一道智力题:“某商店规定:三个空汽水瓶可以换一瓶汽水。小张手上有十个空汽水瓶,她最多可以换多少瓶汽水喝?”答案是5瓶,方法如下:先用9个空瓶子换3瓶汽水,喝掉3瓶满的,喝完以后4个空瓶子,用3个再换一瓶,喝掉这瓶满的,这时候剩2个空瓶子。然后你让老板先借给你一瓶汽水,喝掉这瓶满的,喝完以后用3个空瓶子换一瓶满的还给老板。如果小张手上有n个空汽水瓶,最多可以换多少瓶汽水喝?输...原创 2020-09-25 11:12:24 · 112 阅读 · 0 评论 -
字符串通配符—ACM
题目描述问题描述:在计算机中,通配符一种特殊语法,广泛应用于文件搜索、数据库、正则表达式等领域。现要求各位实现字符串通配符的算法。要求:实现如下2个通配符:*:匹配0个或以上的字符(字符由英文字母和数字0-9组成,不区分大小写。下同)?:匹配1个字符输入:通配符表达式;一组字符串。输出:返回匹配的结果,正确输出true,错误输出false输入描述:先输入一个带...原创 2020-09-25 11:12:38 · 113 阅读 · 0 评论 -
放苹果—ACM
题目描述题目描述把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1是同一种分法。输入每个用例包含二个整数M和N。0<=m<=10,1<=n<=10。样例输入73样例输出8输入描述:输入两个int整数输出描述:输出结果,int型示例1输入7 3...原创 2020-09-25 11:12:48 · 222 阅读 · 0 评论 -
迷宫问题—ACM
题目描述定义一个二维数组N*M(其中2<=N<=10;2<=M<=10),如5×5数组下所示:intmaze[5][5]={0,1,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,1,1,0,0,0,0,1,0,}...原创 2020-09-25 11:07:39 · 378 阅读 · 0 评论 -
走梅花桩—ACM
题目描述题目描述Redraiment是走梅花桩的高手。Redraiment总是起点不限,从前到后,往高的桩子走,但走的步数最多,不知道为什么?你能替Redraiment研究他最多走的步数吗?样例输入6251545样例输出3提示Example:6个点的高度各为251545如从第1格开始走,最多为3步,245从第2格...原创 2020-09-25 11:10:04 · 560 阅读 · 0 评论 -
购买办公用品—ACM
题目描述王强今天很开心,公司发给N元的年终奖。王强决定把年终奖用于购物,他把想买的物品分为两类:主件与附件,附件是从属于某个主件的,下表就是一些主件与附件的例子:主件 附件 电脑 打印机,扫描仪 书柜 图书 书桌 台灯,文具 工作椅 无 如果要买归类为附件的物品,必须先买该附件所属的主件。每个主件可以有0个、1个或2...原创 2020-09-25 11:07:19 · 172 阅读 · 0 评论 -
折半查找(二分查找)
表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表。重复以上过程,直到找到满足条件的记录,使查找成功,或直到子表不存在为止,此时查找不成功。#include <iostream>#include <...原创 2020-02-29 10:56:44 · 166 阅读 · 0 评论 -
堆排序
#include <iostream>using namespace std;// 大根堆排序void HeapAdjust(int array[], int s, int n);void swap(int array[], int i, int j);void heapSort(int array[], int n){ // 生成大根堆 for (int i = ...原创 2020-01-09 14:29:15 · 56 阅读 · 0 评论 -
快速排序
#include <iostream>using namespace std;void quicksort(int a[], int left, int right);//接口调整void adjust_quicksort(int k[], int n){ quicksort(k, 0, n - 1);}void quicksort(int a[], int left...原创 2020-01-09 14:29:26 · 67 阅读 · 0 评论 -
排序
排序算法https://blog.csdn.net/yushiyi6453/article/details/76407640对数组排序#include <algorithm>#include <vector>int compare(const void * a, const void * b){ //return (*(int*)a - ...原创 2020-01-09 14:37:39 · 65 阅读 · 0 评论 -
冒泡排序
动图描述:https://img-blog.csdn.net/20161009190728886#include <iostream>#include <time.h>#include <vector>#include <ostream>using namespace std;#define RANDOM_NUM 10// 随机生...原创 2020-01-14 19:05:39 · 108 阅读 · 0 评论 -
选择排序
动图描述:http://img2.imgtn.bdimg.com/it/u=62738227,2933425217&fm=214&gp=0.jpg#include <iostream>#include <time.h>#include <vector>#include <ostream>using namespace s...原创 2020-01-14 19:09:56 · 96 阅读 · 0 评论 -
插入排序
动图描述:https://img-blog.csdn.net/20161009190855230#include <iostream>#include <time.h>#include <vector>#include <ostream>using namespace std;#define RANDOM_NUM 10// 随机生...原创 2020-01-14 19:10:49 · 85 阅读 · 0 评论 -
图的遍历(深度、广度、最小生成树、最短路径)
#include<stdio.h>#include<malloc.h>#define MAXV 7 //最大顶点个数#define INF 32767 //定义 ∞ //∞ == INF(表示两点不可直达)//图:Graph//顶点:Vertex//邻接:Adjacency//矩阵:Matrix//表:List//边:Edge //...原创 2020-03-18 15:09:59 · 755 阅读 · 0 评论