自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(104)
  • 收藏
  • 关注

原创 LeetCode-DP专题-整数拆分

题目描述:给定一个正整数 n,将其拆分为至少两个正整数的和,并使这些整数的乘积最大化。 返回你可以获得的最大乘积。示例示例 1:输入: 2输出: 1解释: 2 = 1 + 1, 1 × 1 = 1。示例 2:输入: 10输出: 36解释: 10 = 3 + 3 + 4, 3 × 3 × 4 = 36。解答:class Solution {public: int integerBreak(int n) { int dp[62]; dp[

2021-03-17 17:03:35 110

原创 PAT A1053 -《算法笔记》

前言:21考研,正在啃《算法笔记》,不论能否进复试记录一下准备路上写下的垃圾代码。#include<stdio.h>#include<iostream>#include<vector>#include<cmath>#include<algorithm>#include<cstring>#include<string>#include<map>#include<stack>#inc

2021-03-15 18:58:09 193

原创 PAT A1102 -《算法笔记》

前言:21考研,正在啃《算法笔记》,不论能否进复试记录一下准备路上写下的垃圾代码。#include<stdio.h>#include<iostream>#include<vector>#include<cmath>#include<algorithm>#include<cstring>#include<string>#include<map>#include<stack>#inc

2021-03-15 11:49:47 151

原创 LeetCode-Tree专题-从上到下打印二叉树 II

题目描述:从上到下按层打印二叉树,同一层的节点按从左到右的顺序打印,每一层打印到一行。链接:https://leetcode-cn.com/problems/cong-shang-dao-xia-da-yin-er-cha-shu-ii-lcof解答:/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right;

2021-03-09 10:51:00 103

原创 LeetCode-DP专题-等差数列划分

题目描述:如果一个数列至少有三个元素,并且任意两个相邻元素之差相同,则称该数列为等差数列。例如,以下数列为等差数列:1, 3, 5, 7, 97, 7, 7, 73, -1, -5, -9以下数列不是等差数列。1, 1, 2, 5, 7数组 A 包含 N 个数,且索引从0开始。数组 A 的一个子数组划分为数组 (P, Q),P 与 Q 是整数且满足 0<=P<Q<N 。如果满足以下条件,则称子数组(P, Q)为等差数组:元素 A[P], A[p + 1], …, A[Q

2021-03-08 14:20:23 129

原创 LeetCode-DP专题-两个字符串的最小ASCII删除和

题目描述:给定两个字符串s1, s2,找到使两个字符串相等所需删除字符的ASCII值的最小和。示例示例 1:输入: s1 = “sea”, s2 = “eat”输出: 231解释: 在 “sea” 中删除 “s” 并将 “s” 的值(115)加入总和。在 “eat” 中删除 “t” 并将 116 加入总和。结束时,两个字符串相等,115 + 116 = 231 就是符合条件的最小和。示例 2:输入: s1 = “delete”, s2 = “leet”输出: 403解释: 在

2021-03-08 13:32:21 76

原创 LeetCode-DP专题-统计全为 1 的正方形子矩阵

题目描述:给你一个 m * n 的矩阵,矩阵中的元素不是 0 就是 1,请你统计并返回其中完全由 1 组成的 正方形 子矩阵的个数。示例示例 1:输入:matrix =[[0,1,1,1],[1,1,1,1],[0,1,1,1]]输出:15解释:边长为 1 的正方形有 10 个。边长为 2 的正方形有 4 个。边长为 3 的正方形有 1 个。正方形的总数 = 10 + 4 + 1 = 15.示例 2:输入:matrix =[[1,0,1],[1,1,0],[1

2021-03-07 13:07:30 71

原创 LeetCode-DP专题-统计字典序元音字符串的数目

题目描述:给你一个整数 n,请返回长度为 n 、仅由元音 (a, e, i, o, u) 组成且按 字典序排列 的字符串数量。字符串 s 按 字典序排列 需要满足:对于所有有效的 i,s[i] 在字母表中的位置总是与 s[i+1] 相同或在 s[i+1] 之前。链接:https://leetcode-cn.com/problems/count-sorted-vowel-strings示例示例 1:输入:n = 1输出:5解释:仅由元音组成的 5 个字典序字符串为 [“a”,“e”,“i”,

2021-03-05 13:14:13 154

原创 LeetCode-DP专题-比特位计数

题目描述:给定一个非负整数 num。对于 0 ≤ i ≤ num 范围中的每个数字 i ,计算其二进制数中的 1 的数目并将它们作为数组返回。示例示例 1:输入: 2输出: [0,1,1]示例 2:输入: 5输出: [0,1,1,2,1,2]解答:class Solution {public: vector<int> countBits(int num) { vector<int>dp; dp.push_back(

2021-03-05 10:39:20 106 1

原创 放苹果(北大复试上机)

前言:21考研,记录一下准备复试路上写下的垃圾代码。本来啃《算法笔记》,但是感觉太多了做不完,改做王道机试指南。题目描述:把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法。输入描述每行均包含二个整数M和N,以空格分开。1<=M,N<=10。输出描述:对输入的每组数据M和N,用一行输出相应的K。解答#include<stdio.h>#include<iostream>#

2021-03-04 17:24:13 104 1

原创 最小邮票个数(清华复试上机)

前言:21考研,记录一下准备复试路上写下的垃圾代码。本来啃《算法笔记》,但是感觉太多了做不完,改做王道机试指南。题目描述:有若干张邮票,要求从中选取最少的邮票张数凑成一个给定的总值。 如,有1分,3分,3分,3分,4分五张邮票,要求凑成10分,则使用3张邮票:3分、3分、4分即可。输入描述有多组数据,对于每组数据,首先是要求凑成的邮票总值M,M<100。然后是一个数N,N〈20,表示有N张邮票。接下来是N个正整数,分别表示这N张邮票的面值,且以升序排列。输出描述:对于每组数据,能

2021-03-04 16:19:40 131 1

原创 采药(北大复试上机)

前言:21考研,记录一下准备复试路上写下的垃圾代码。本来啃《算法笔记》,但是感觉太多了做不完,改做王道机试指南。题目描述:辰辰是个很有潜能、天资聪颖的孩子,他的梦想是称为世界上最伟大的医师。 为此,他想拜附近最有威望的医师为师。医师为了判断他的资质,给他出了一个难题。 医师把他带到个到处都是草药的山洞里对他说: “孩子,这个山洞里有一些不同的草药,采每一株都需要一些时间,每一株也有它自身的价值。 我会给你一段时间,在这段时间里,你可以采到一些草药。如果你是一个聪明的孩子,你应该可以让采到的草药的总价值

2021-03-04 13:53:23 85 1

原创 最大子矩阵(北大复试上机)

前言:21考研,记录一下准备复试路上写下的垃圾代码。本来啃《算法笔记》,但是感觉太多了做不完,改做王道机试指南。题目描述:已知矩阵的大小定义为矩阵中所有元素的和。给定一个矩阵,你的任务是找到最大的非空(大小至少是1 * 1)子矩阵。 比如,如下4 * 4的矩阵 0 -2 -7 0 9 2 -6 2 -4 1 -4 1 -1 8 0 -2 的最大子矩阵是 9 2 -4 1 -1 8 这个子矩阵的大小是15。输入描述输入是一个N * N的矩阵。输入的第一行给出N (0 < N <= 100

2021-03-03 18:00:06 89 1

原创 LeetCode-DP专题-三步问题

题目描述:三步问题。有个小孩正在上楼梯,楼梯有n阶台阶,小孩一次可以上1阶、2阶或3阶。实现一种方法,计算小孩有多少种上楼梯的方式。结果可能很大,你需要对结果模1000000007。链接:https://leetcode-cn.com/problems/three-steps-problem-lcci示例示例 1:输入:n = 3输出:4说明: 有四种走法示例 2:输入:n = 5输出:13解答:class Solution {public: int waysToS

2021-03-03 15:14:07 111 1

原创 LeetCode-DP专题-连续子数组的最大和

题目描述:输入一个整型数组,数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。要求时间复杂度为O(n)。链接:https://leetcode-cn.com/problems/min-cost-climbing-stairs示例示例 1:输入: nums = [-2,1,-3,4,-1,2,1,-5,4]输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。解答:class Solution {public: int maxSubArray

2021-03-03 14:39:59 84 1

原创 LeetCode-DP专题-使用最小花费爬楼梯

题目描述:数组的每个下标作为一个阶梯,第 i 个阶梯对应着一个非负数的体力花费值 cost[i](下标从 0 开始)。每当你爬上一个阶梯你都要花费对应的体力值,一旦支付了相应的体力值,你就可以选择向上爬一个阶梯或者爬两个阶梯。请你找出达到楼层顶部的最低花费。在开始时,你可以选择从下标为 0 或 1 的元素作为初始阶梯。链接:https://leetcode-cn.com/problems/min-cost-climbing-stairs示例示例 1:输入:cost = [10, 15, 20

2021-03-03 14:31:58 88

原创 LeetCode-DP专题-买卖股票的最佳时机

题目描述:给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0 。链接:https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock示例示例 1:输入:[7,1,5,3,6,4]输出:

2021-03-03 13:54:56 86

原创 LeetCode-DP专题-按摩师

题目描述:一个有名的按摩师会收到源源不断的预约请求,每个预约都可以选择接或不接。在每次预约服务之间要有休息时间,因此她不能接受相邻的预约。给定一个预约请求序列,替按摩师找到最优的预约集合(总预约时间最长),返回总的分钟数。链接:https://leetcode-cn.com/problems/the-masseuse-lcci示例示例 1:输入: [1,2,3,1]输出: 4解释: 选择 1 号预约和 3 号预约,总时长 = 1 + 3 = 4。示例 2:输入: [2,7,9,3,1

2021-03-03 12:52:04 135

原创 谁是你潜在的朋友(北大复试上机)

前言:21考研,记录一下准备复试路上写下的垃圾代码。本来啃《算法笔记》,但是感觉太多了做不完,改做王道机试指南。题目描述:“臭味相投”——这是我们描述朋友时喜欢用的词汇。两个人是朋友通常意味着他们存在着许多共同的兴趣。然而作为一个宅男,你发现自己与他人相互了解的机会并不太多。幸运的是,你意外得到了一份北大图书馆的图书借阅记录,于是你挑灯熬夜地编程,想从中发现潜在的朋友。 首先你对借阅记录进行了一番整理,把N个读者依次编号为1,2,…,N,把M本书依次编号为1,2,…,M。同时,按照“臭味相投”

2021-03-01 17:56:11 108

原创 开门人和关门人(浙大复试上机)

前言:21考研,记录一下准备复试路上写下的垃圾代码。本来啃《算法笔记》,但是感觉太多了做不完,改做王道机试指南。题目描述:每天第一个到机房的人要把门打开,最后一个离开的人要把门关好。现有一堆杂乱的机房签到、签离记录,请根据记录找出当天开门和关门的人。输入描述每天的记录在第一行给出记录的条目数M (M > 0 ),下面是M行,每行的格式为证件号码 签到时间 签离时间其中时间按“小时:分钟:秒钟”(各占2位)给出,证件号码是长度不超过15的字符串。输出描述:对每一天的记录输出1行,即当天

2021-03-01 17:32:56 141

原创 统计同成绩学生人数(浙大复试上机)

前言:21考研,记录一下准备复试路上写下的垃圾代码。本来啃《算法笔记》,但是感觉太多了做不完,改做王道机试指南。题目描述:读入N名学生的成绩,将获得某一给定分数的学生人数输出。输入描述测试输入包含若干测试用例,每个测试用例的格式为第1行:N第2行:N名学生的成绩,相邻两数字用一个空格间隔。第3行:给定分数当读到N=0时输入结束。其中N不超过1000,成绩分数为(包含)0到100之间的一个整数。输出描述:对每个测试用例,将获得给定分数的学生人数输出。解答#include<std

2021-03-01 16:46:52 95

原创 魔咒词典(浙大复试上机)

前言:21考研,记录一下准备复试路上写下的垃圾代码。本来啃《算法笔记》,但是感觉太多了做不完,改做王道机试指南。题目描述:哈利波特在魔法学校的必修课之一就是学习魔咒。据说魔法世界有100000种不同的魔咒,哈利很难全部记住,但是为了对抗强敌,他必须在危急时刻能够调用任何一个需要的魔咒,所以他需要你的帮助。 给你一部魔咒词典。当哈利听到一个魔咒时,你的程序必须告诉他那个魔咒的功能;当哈利需要某个功能但不知道该用什么魔咒时,你的程序要替他找到相应的魔咒。如果他要的魔咒不在词典中,就输出“what?

2021-03-01 16:03:01 69

原创 搬水果(吉林大学复试上机)

前言:21考研,记录一下准备复试路上写下的垃圾代码。本来啃《算法笔记》,但是感觉太多了做不完,改做王道机试指南。题目描述:在一个果园里,小明已经将所有的水果打了下来,并按水果的不同种类分成了若干堆,小明决定把所有的水果合成一堆。每一次合并,小明可以把两堆水果合并到一起,消耗的体力等于两堆水果的重量之和。当然经过 n‐1 次合并之后,就变成一堆了。小明在合并水果时总共消耗的体力等于每次合并所耗体力之和。 假定每个水果重量都为 1,并且已知水果的种类数和每种水果的数目,你的任务是设计出合并的次序方

2021-03-01 14:24:48 280 3

原创 查找第K小数(北邮复试上机)

前言:21考研,记录一下准备复试路上写下的垃圾代码。本来啃《算法笔记》,但是感觉太多了做不完,改做王道机试指南。题目描述:查找一个数组的第K小的数,注意同样大小算一样大。 如 2 1 3 4 5 2 第三小数为3。输入描述输入有多组数据。每组输入n,然后输入n个整数(1<=n<=1000),再输入k。输出描述:输出第k小的整数。解答#include<stdio.h>#include<iostream>#include<algorithm&g

2021-03-01 14:14:05 91

原创 复数集合(北邮复试上机)

前言:21考研,记录一下准备复试路上写下的垃圾代码。本来啃《算法笔记》,但是感觉太多了做不完,改做王道机试指南。题目描述:一个复数(x+iy)集合,两种操作作用在该集合上: 1、Pop 表示读出集合中复数模值最大的那个复数,如集合为空 输出 empty ,不为空就输出最大的那个复数并且从集合中删除那个复数,再输出集合的大小SIZE; 2 Insert a+ib 指令(a,b表示实部和虚部),将a+ib加入到集合中 ,输出集合的大小SIZE; 最开始要读入一个int n,表

2021-03-01 09:41:27 138

原创 二叉搜索树(浙大复试上机)

前言:21考研,不论能否进复试记录一下准备路上写下的垃圾代码。本来啃《算法笔记》,但是感觉太多了做不完,改做王道机试指南。题目描述:判断两序列是否为同一二叉搜索树序列输入描述开始一个数n,(1<=n<=20) 表示有n个需要判断,n= 0 的时候输入结束。接下去一行是一个序列,序列长度小于10,包含(0~9)的数字,没有重复数字,根据这个序列可以构造出一颗二叉搜索树。接下去的n行有n个序列,每个序列格式跟第一个序列一样,请判断这两个序列是否能组成同一颗二叉搜索树。输出描述:如果

2021-02-18 15:14:40 126

原创 二叉排序树(华科复试上机)

前言:21考研,不论能否进复试记录一下准备路上写下的垃圾代码。本来啃《算法笔记》,但是感觉太多了做不完,改做王道机试指南。题目描述:二叉排序树,也称为二叉查找树。可以是一颗空树,也可以是一颗具有如下特性的非空二叉树: 1. 若左子树非空,则左子树上所有节点关键字值均不大于根节点的关键字值; 2. 若右子树非空,则右子树上所有节点关键字值均不小于根节点的关键字值; 3. 左、右子树本身也是一颗二叉排序树。 现在给你N个关键字值各不相同的节点,要求你按顺序插入一个初始为空树的二叉排序树中,每次插入后成功后

2021-02-18 13:47:01 203

原创 二叉树遍历(清华复试上机)

前言:21考研,不论能否进复试记录一下准备路上写下的垃圾代码。本来啃《算法笔记》,但是感觉太多了做不完,改做王道机试指南。题目描述:编一个程序,读入用户输入的一串先序遍历字符串,根据此字符串建立一个二叉树(以指针方式存储)。 例如如下的先序遍历字符串: ABC##DE#G##F### 其中“#”表示的是空格,空格字符代表空树。建立起此二叉树以后,再对二叉树进行中序遍历,输出遍历结果。输入描述输入包括1行字符串,长度不超过100。输出描述:可能有多组测试数据,对于每组数据,输出将输入字符串建立

2021-02-17 15:38:07 142 1

原创 Codeup-100000628-《算法笔记》

前言:21考研,正在啃《算法笔记》,不论能否进复试记录一下准备路上写下的垃圾代码。解答:#include<stdio.h>#include<iostream>#include<algorithm>#include<vector>#include<cmath>#include<cstring>using namespace std;const int maxn = 100+ 10;int dp[maxn][maxn]

2021-02-17 13:33:25 67

原创 Codeup-100000627-《算法笔记》

前言:21考研,正在啃《算法笔记》,不论能否进复试记录一下准备路上写下的垃圾代码。解答:#include<stdio.h>#include<iostream>#include<algorithm>using namespace std;const int maxn = 1000 + 10;int dp[maxn];int main(){ int n; int a[maxn]; while (cin >> n) { int max

2021-02-11 13:07:09 70

原创 Codeup-100000626-《算法笔记》

前言:21考研,正在啃《算法笔记》,不论能否进复试记录一下准备路上写下的垃圾代码。解答:#include<stdio.h>#include<iostream>#include<algorithm>#include<vector>#include<cmath>#include<cstring>using namespace std;struct max_subq { int sum; int i; //记录最大子序

2021-02-10 17:15:33 118

原创 Codeup-100000625-《算法笔记》

前言:21考研,正在啃《算法笔记》,不论能否进复试记录一下准备路上写下的垃圾代码。解答:#include<stdio.h>#include<iostream>#include<algorithm>#include<vector>using namespace std;const int maxn = 31;int dp[maxn];int f(int n) { if (n == 0 || n == 1) return n; else

2021-02-10 16:20:21 79 1

原创 Codeup-100000609E-《算法笔记》

#include<stdio.h>#include<iostream>#include<algorithm>#include<vector>#include<queue>#include<map>using namespace std;int a, b, c, k; //分别为三个容器的最大体积和要求的体积struct node { int vol[3]; int step=0;}start;vector&lt

2021-02-08 15:58:07 81

原创 Codeup-100000609B-《算法笔记》

前言:21考研,正在啃《算法笔记》,不论能否进复试记录一下准备路上写下的垃圾代码。解答:#include<stdio.h>#include<iostream>#include<algorithm>#include<vector>#include<queue>using namespace std;struct node { int x; int y; int step = 0; //记录要走到该点所需的步数}sta

2021-02-08 13:30:15 108 1

原创 Codeup-100000608F-《算法笔记》

前言:21考研,正在啃《算法笔记》,不论能否进复试记录一下准备路上写下的垃圾代码。解答:#include<stdio.h>#include<iostream>#include<algorithm>#include<vector>using namespace std;struct point{ int r; //行 int c; //列};int ct = 0; //对成功路径数量计数,为0则输出-1vector<vecto

2021-02-06 12:35:14 68

原创 Codeup-100000608E-《算法笔记》

前言:21考研,正在啃《算法笔记》,不论能否进复试记录一下准备路上写下的垃圾代码。解答:#include<stdio.h>#include<iostream>#include<algorithm>#include<vector>#include<cmath>using namespace std;int ct = 0;void dfs(int push, int pop,int n){ if (push == n &

2021-02-05 16:01:44 54 1

原创 Codeup-100000608D-《算法笔记》

前言:21考研,正在啃《算法笔记》,不论能否进复试记录一下准备路上写下的垃圾代码。解答:#include<stdio.h>#include<iostream>#include<algorithm>#include<vector>#include<cmath>using namespace std;bool hashtab[11] = { false };int res[11];int ct = 0;void generate

2021-02-05 15:07:39 50

原创 Codeup-100000608C-《算法笔记》

前言:21考研,正在啃《算法笔记》,不论能否进复试记录一下准备路上写下的垃圾代码。解答:#include<stdio.h>#include<iostream>#include<vector>#include<cmath>using namespace std;bool hashtab[110] = { false };int num[21] = {-1};int ct = 0;bool isprime(int n) { int sq =

2021-02-05 14:44:51 68

原创 Codeup-100000583D-《算法笔记》

前言:21考研,正在啃《算法笔记》,不论能否进复试记录一下准备路上写下的垃圾代码。解答:#include<iostream>#include<vector>#include<string>using namespace std;bool flag[9] = { false };string res;vector<string> vi;void get_seq(int done,int n) { if (done == n) { bo

2021-02-04 16:23:41 57

原创 Codeup-100000583C-《算法笔记》

前言:21考研,正在啃《算法笔记》,不论能否进复试记录一下准备路上写下的垃圾代码。解答:#include<iostream>using namespace std;int a[20];int n = 1;int count(int i, int sum){ if (sum == 0) { return 1; } //找到一组和为sum的组合数; if (i == n || sum < 0) return 0;//i==n说明没有其他的数来组合,sum<0说明组合

2021-02-04 15:15:25 94

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除