自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

AKGWSB 's blog

一个菜鸡的博客

  • 博客(66)
  • 收藏
  • 关注

原创 LeetCode:120 三角形最小路径和 动态规划解法 O(n)空间

LeetCode:120 三角形最小路径和 动态规划解法 O(n)空间给定一个三角形,找出自顶向下的最小路径和。每一步只能移动到下一行中相邻的结点上。例如,给定三角形:[ [2], [3,4], [6,5,7], [4,1,8,3]]自顶向下的最小路径和为 11(即,2 + 3 + 5 + 1 = 11)。说明:如果你可以只使用 O(n) 的额外空间(n...

2020-01-31 19:02:06 326 2

原创 LeetCode:990 等号方程的可满足性 并查集解法

LeetCode:990 等号方程的可满足性 并查集解法【传送门】给定一个由表示变量之间关系的字符串方程组成的数组,每个字符串方程 equations[i] 的长度为 4,并采用两种不同的形式之一:“a==b” 或 “a!=b”。在这里,a 和 b 是小写字母(不一定不同),表示单字母变量名。只有当可以将整数分配给变量名,以便满足所有给定的方程时才返回 true,否则返回 false。示例...

2020-01-31 17:51:45 192

原创 LeetCode:199 二叉树右视图 层次遍历解法

LeetCode:199 二叉树右视图 层次遍历解法【传送门】题目描述给定一棵二叉树,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。示例:输入: [1,2,3,null,5,null,4]输出: [1, 3, 4]解释:来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/binary-tree-ri...

2020-01-31 16:59:18 169

原创 蓝桥杯:区间k大数查询

蓝桥杯:区间k大数查询问题描述给定一个序列,每次询问序列中第l个数到第r个数中第K大的数是哪个。输入格式第一行包含一个数n,表示序列长度。第二行包含n个正整数,表示给定的序列。第三个包含一个正整数m,表示询问个数。接下来m行,每行三个数l,r,K,表示询问序列从左往右第l个数到第r个数中,从大往小第K大的数是哪个。序列元素从1开始标号。输出格式总共输出m行,每行一个数,表示询问的...

2020-01-31 15:40:10 469

原创 简单的前缀表达式计算

简单的前缀表达式计算简单是指表达式简单,所有数字均为 0~9 之间,不是代码简单【关于二叉树的递归创建与非递归遍历】【其他:中缀表达式转后缀表达式】【其他:后缀表达式计算】思路因为给定的是前缀表达式,那么方便我们直接递归地建一颗表达式树,并且递归地计算递归创建步骤:读取字符如果字符是数字,那么说明是叶子节点,直接将当前节点赋值为数字如果字符是符号,说明是某个根节点,不仅需要...

2020-01-31 15:21:36 1151

原创 蓝桥杯:二进制数数

问题描述给定L,R。统计[L,R]区间内的所有数在二进制下包含的“1”的个数之和。如5的二进制为101,包含2个“1”。输入格式第一行包含2个数L,R输出格式一个数S,表示[L,R]区间内的所有数在二进制下包含的“1”的个数之和。样例输入2 3样例输出3数据规模和约定L<=R<=100000;思路使用取余除二法,统计1的个数即可代码#include...

2020-01-31 14:44:37 557

原创 蓝桥杯:旅行家的预算 贪心解法

蓝桥杯:旅行家的预算 贪心解法问题描述一个旅行家想驾驶汽车以最少的费用从一个城市到另一个城市(假设出发时油箱是空的)。给定两个城市之间的距离D1、汽车油箱的容量C(以升为单位)、每升汽油能行驶的距离D2、出发点每升汽油价格P和沿途油站数N(N可以为零),油站i离出发点的距离Di、每升汽油价格Pi(i=1,2,……N)。计算结果四舍五入至小数点后两位。如果无法到达目的地,则输出“No Solut...

2020-01-29 16:09:34 1022 1

原创 蓝桥杯:纪念品分组 贪心解法

问题描述元旦快到了,校学生会让乐乐负责新年晚会的纪念品发放工作。为使得参加晚会的同学所获得的纪念品价值 相对均衡,他要把购来的纪念品根据价格进行分组,但每组最多只能包括两件纪念品,并且每组纪念品的价格之和不能超过一个给定的整数。为了保证在尽量短的时 间内发完所有纪念品,乐乐希望分组的数目最少。  你的任务是写一个程序,找出所有分组方案中分组数最少的一种,输出最少的分组数目。输入格式输入包含...

2020-01-28 18:19:23 300

原创 蓝桥杯:C*++ Calculations(不按顺序的加和)贪心解法

问题描述C*++语言和C++语言非常相似,然而C*++的程序有时会出现意想不到的结果。比如像这样的算术表达式:表达式=基本式 / 表达式+基本式 / 表达式-基本式基本式=增量 / 系数*增量增量=a++ / ++a系数=0/1/2/……/1000如“5*a++-3*++a+a++”是合法的C*++表达式。  计算这样的表达式的值的方法:首先是每个基本式进行计算,然后按照正...

2020-01-28 16:56:14 519

原创 蓝桥杯:石子游戏 贪心解法

蓝桥杯:石子游戏 贪心解法问题描述石子游戏的规则如下:地上有n堆石子,每次操作可选取两堆石子(石子个数分别为x和y)并将它们合并,操作的得分记为(x+1)×(y+1),对地上的石子堆进行操作直到只剩下一堆石子时停止游戏。请问在整个游戏过程中操作的总得分的最大值是多少?输入格式输入数据的第一行为整数n,表示地上的石子堆数;第二行至第n+1行是每堆石子的个数。输出格式程序输出一行,为游戏...

2020-01-28 14:09:42 1338

原创 LeetCode:45 跳跃游戏 BFS 解法

LeetCode:45 跳跃游戏 BFS+状态合并 解法这种方法比较麻烦【上一个超时的动态规划法传送门】【最速贪心解法传送门】【类似的BFS的题传送门:迷宫】题目描述给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。你的目标是使用最少的跳跃次数到达数组的最后一个位置。示例:输入: [2,3,1,1,4]输出: 2解释: 跳到...

2020-01-28 00:20:38 401

原创 LeetCode:45 跳跃游戏 贪心解法

LeetCode:45 跳跃游戏 贪心解法【上一个超时的动态规划法传送门】题目描述给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。你的目标是使用最少的跳跃次数到达数组的最后一个位置。示例:输入: [2,3,1,1,4]输出: 2解释: 跳到最后一个位置的最小跳跃数是 2。从下标为 0 跳到下标为 1 的位置,跳 1 步,然后跳...

2020-01-27 23:22:45 238 1

原创 LeetCode:45 跳跃游戏 动态规划解法(最后一个样例时间超限)

题目描述给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。你的目标是使用最少的跳跃次数到达数组的最后一个位置。示例:输入: [2,3,1,1,4]输出: 2解释: 跳到最后一个位置的最小跳跃数是 2。从下标为 0 跳到下标为 1 的位置,跳 1 步,然后跳 3 步到达数组的最后一个位置。说明:假设你总是可以到达数组的最后一个位置...

2020-01-27 22:09:47 365

原创 C++ STL map 的简单使用例

C++ STL map 的简单使用例有时候做OJ,尤其是图的题目,会有要求用字符串表示顶点的,他的输入的顶点信息也是字符串,可是对于邻接矩阵或者邻接表,我们希望把顶点信息转化成数字,这样方便使用数组进行处理一般我们是写一个函数顺序查找整个输入字符串数组,然后找到相同的下标,比较繁琐,而且复杂度是O(N2) ,如果用map,人家底层是红黑树,达到时间复杂度O(log(n))STL 的 map...

2020-01-27 18:11:17 307

原创 C++ STL vector 不想初始化长度怎么办

vector方便的地方就在于不用在意长度的限制,但是如果一开始为vector读取输入的时候,我们没有初始化vector大小的话,很容易出现下标越界的情况,然后程序不跑了。。。有时候未知输入的长度时,vector开小了怕越界,开大了怕浪费解决方法使用 vector 的 insert 方法,这样一来vector会自动地增加自己的长度了,防止越界// 在尾部直接插入元素 xv.insert(v...

2020-01-27 17:45:08 2030

原创 LeetCode:47 全排列II dfs+剪枝解法

LeetCode:47 全排列II dfs+剪枝解法【题目传送门】题目描述给定一个可包含重复数字的序列,返回所有不重复的全排列。示例:输入: [1,1,2]输出:[[1,1,2],[1,2,1],[2,1,1]]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/permutations-ii著作权归领扣网络所有。商业转...

2020-01-27 17:16:26 361

原创 LeetCode 5:最长回文子串 动态规划解法

LeetCode 5:最长回文子串 动态规划解法【传送门】题目描述给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。示例 1:输入: “babad”输出: “bab”注意: “aba” 也是一个有效答案。示例 2:输入: “cbbd”输出: “bb”来源:力扣(LeetCode)链接:https://leetcode-cn.com/pr...

2020-01-27 14:51:10 149

原创 简单的中缀表达式转后缀表达式

简单的中缀表达式转后缀表达式这里的简单指的是表达式简单,所有数字都是个位数,不是代码简单中缀表达式就是我们平时最经常使用的,例:(1+2)*3-4后缀表达式就是把运算符放到运算数后面【后缀表达式传送门】【后缀表达式计算传送门】转换思路假设输入的中缀表达式的字符串为 str需要一个栈 s 来作为临时的先进后出的存储结构需要一个字符串 result 来保存最终的结果从左到右遍历中...

2020-01-27 00:01:25 212

原创 简单的后缀表达式计算

简单的后缀表达式计算(简单不是指代码简单,而是要计算的表达式简单)什么是后缀表达式?百度百科传送门最简单后缀表达式:a b +一眼可以看出结果是 a + b,就是先将前面的数字存起来,遇到运算符,取两个数字,运算,再存起来使用具有先进后出 好特性 的栈结构去存储运算数具体做法:从左往右遍历表达式如果是运算数,进栈如果是运算符,在栈中取两个数字做运算(注意顺序是 ...

2020-01-26 20:49:35 526

原创 蓝桥杯:后缀表达式

由于没有后台数据,答案不一定正确,仅供参考问题描述给定 N 个加号、 M 个减号以及 N + M + 1 个整数 A1; A2; · · · ; AN+M+1,小明想知道在所有由这 N 个加号、 M 个减号以及 N + M + 1 个整数凑出的合法的后缀表达式中,结果最大的是哪一个?请你输出这个最大的结果。例如使用1 2 3 + -,则 “2 3 + 1 -” 这个后缀表达式结果是 4,是最...

2020-01-26 16:25:53 1886 2

原创 蓝桥杯:等差数列(求最短数列长度)动态规划解法

蓝桥杯:等差数列(求最短数列长度)动态规划解法好像没有必要用dp,但是一看到题感觉可以用,姑且写一个吧,后来看到大佬写的,是求公约数直接解的,dp还是复杂了问题描述数学老师给小明出了一道等差数列求和的题目。但是粗心的小明忘记了一部分的数列,只记得其中 N 个整数。现在给出这 N 个整数,小明想知道包含这 N 个整数的最短的等差数列有几项?输入格式输入的第一行包含一个整数 N。第二行包含...

2020-01-26 14:21:54 828

原创 蓝桥杯:完全二叉树的权值(层次遍历求最大和是那一层)

蓝桥杯:完全二叉树的权值(层次遍历求最大和是那一层)问题描述给定一棵包含 N 个节点的完全二叉树,树上每个节点都有一个权值,按从上到下、从左到右的顺序依次是 A1, A2, · · · AN,如下图所示:现在小明要把相同深度的节点的权值加在一起,他想知道哪个深度的节点权值之和最大?如果有多个深度的权值和同为最大,请你输出其中最小的深度。注:根的深度是 1。【输入格式】第一行包含一个整...

2020-01-24 18:15:18 1052

原创 蓝桥杯:特别数的和 枚举解法

蓝桥杯:特别数的和 枚举解法直接暴力枚举就好了…#include <iostream>using namespace std;int is(int x){ while(x) { if(x%10==2 || x%10==0 || x%10==1 || x%10==9) { return 1; } x /= 10; } return 0;}...

2020-01-24 17:58:19 290

原创 蓝桥杯:迷宫 单源最短路径解法

蓝桥杯:迷宫 单源最短路径解法之前做过一个类似的【学霸的迷宫(迷宫最短路径)BFS解法】是用BFS做的,因为那个样例非常大,以至于单源最短路径(迪杰斯特拉)时间过于缓慢了~~(懒得用堆优化了)~~问题描述下图给出了一个迷宫的平面图,其中标记为 1 的为障碍,标记为 0 的为可以通行的地方。010000000100001001110000迷宫的入口为左上角,出口为右下角,在迷...

2020-01-24 17:19:31 2950

原创 蓝桥杯:数的分解 朴素解法

蓝桥杯:数的分解 朴素解法刚刚写了个递归的后来想了一下,好像没这么麻烦的。。。直接for起来,求就完事了去重的方法:令三个数字为 n1,n2, n3,满足n1 < n2 < n3 即可去重因为 n1+n2+n3 = 2019,那么确定了n1, n2,n3就确定了,然后判断就行了代码#include <iostream>using namespace...

2020-01-24 16:10:36 225

原创 蓝桥杯:数的分解 暴力递归解法

蓝桥杯:数的分解 暴力递归解法【问题描述】把 2019 分解成 3 个各不相同的正整数之和,并且要求每个正整数都不包含数字 2 和 4,一共有多少种不同的分解方法?注意交换 3 个整数的顺序被视为同一种方法,例如 1000+1001+18 和1001+1000+18 被视为同一种。思路拿到题目一看三位数,那直接暴力了,20193 也才 8230172859,完全可以跑完(其实是懒,直接暴...

2020-01-24 15:34:49 1802

原创 蓝桥杯:数列求值 (斐波那契 · 改) 对溢出的处理

蓝桥杯:数列求值 (斐波那契 · 改) 对溢出的处理【问题描述】给定数列 1, 1, 1, 3, 5, 9, 17, …,从第 4 项开始,每项都是前 3 项的和。求第 20190324 项的最后 4 位数字。思路一开始我是打算直接递推求的,但是我看到项数我傻了,这用long long 也会溢出无数次的啊于是 再 审 题第 20190324 项的最后 4 位数字。注意这个最后四...

2020-01-24 15:04:04 576

原创 蓝桥杯:年号字串 不能用进制转换

蓝桥杯:年号字串 不能用进制转换【问题描述】小明用字母 A 对应数字 1, B 对应 2,以此类推,用 Z 对应 26。对于 27以上的数字,小明用两位或更长位的字符串来对应,例如 AA 对应 27, AB 对应 28, AZ 对应 52, LQ 对应 329。请问 2019 对应的字符串是什么?乍一看好像是考察进制转换,但是后来写了一下程序会发现:A=1, B=2, … Z=26 是的...

2020-01-24 14:44:45 383

原创 蓝桥杯:组队 暴力解法

蓝桥杯:组队 暴力解法【问题描述】作为篮球队教练,你需要从以下名单中选出 1 号位至 5 号位各一名球员,组成球队的首发阵容。每位球员担任 1 号位至 5 号位时的评分如下表所示。请你计算首发阵容 1号位至 5 号位的评分之和最大可能是多少?试题 A: 组队 2第十届蓝桥杯大赛软件类省赛 C/C++ 大学 B 组编号 1 号位 2 号位 3 号位 4 号位 5 号位97 90 0 0...

2020-01-24 13:44:58 4077 2

原创 刚刚掉过的坑:根据题目确定是使用动态规划还是搜索

刚刚掉过的坑:根据题目确定是使用动态规划还是直接搜索之前有这么一道题,蓝桥网上的tag是搜索,递归,于是我直接用搜索+剪枝做的,今天发现这题好像也可以用动态规划做,于是花了几分钟写了一下,交上去发现不行,后来看了下后台发现了问题题目传送门算了还是直接贴上把蓝桥杯:盾神与砝码称重问题描述有一天,他在宿舍里无意中发现了一个天平!这个天平很奇怪,有n个完好的砝码,但是没有游码。盾神为他的发现...

2020-01-23 23:10:01 308

原创 Softmax层 输出&梯度推导及Python实现

Softmax层 输出&梯度推导及Python实现详细代码在这里,存在于Layer.py中的Softmax类里面推导太长不看 下面有结论及代码结论约定:Input = I 输入,Output = O 输出Softmax层的前向传播非常简单,就是输入向量的每个分量取指数,再除以所有分量的指数和即可反向传播需要计算输出向量对输入向量的导数,输出向量i分量(Oi)对输...

2020-01-23 16:54:44 1215

原创 蓝桥杯:概率计算 动态规划解法

蓝桥杯:概率计算 动态规划解法问题描述生成n个∈[a,b]的随机整数,输出它们的和为m的概率。输入格式  一行输入四个整数依次为n,a,b,x,用空格分隔。输出格式  输出一行包含一个小数位和为m的概率,小数点后保留四位小数样例输入2 1 3 4样例输出0.3333数据规模和约定对于50%的数据,n≤5.  对于100%的数据,n≤100,b≤100.坑一开始...

2020-01-23 16:05:44 510

原创 LeetCode 198 打家劫舍(序列型DP)

LeetCode 198 打家劫舍(序列型DP)你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你在不触动警报装置的情况下,能够偷窃到的最高金额。示例 1:输入: [1,2,3,1]输出: 4解释: 偷窃...

2020-01-23 13:37:16 601

原创 LeetCode 300 最长上升子序列 O(n^2)普通解法

LeetCode 300 最长上升子序列 (LIS问题)O(n^2)普通解法给定一个无序的整数数组,找到其中最长上升子序列的长度。示例:输入: [10,9,2,5,3,7,101,18]输出: 4解释: 最长的上升子序列是 [2,3,7,101],它的长度是 4。说明:可能会有多种最长上升子序列的组合,你只需要输出对应的长度即可。你算法的时间复杂度应该为 O(n2) 。进阶: 你...

2020-01-23 12:41:31 302

原创 完全背包问题的时间优化及其理解:使用一维dp数组的背包

完全背包问题的时间优化及其理解:使用一维dp数组的背包Re:View上一篇:完全背包最简单粗暴的解法https://blog.csdn.net/weixin_44176696/article/details/104073113优化优化的方式有些许雷人,就是把一维数组表示的 01 背包问题(戳这里回顾01背包的一维dp数组表示)的状态计算的内环的for循环改个方向即可:// 完全背包的一维...

2020-01-22 23:27:47 624

原创 完全背包问题:最基础解法 一般动态规划

完全背包问题:最基础解法 一般动态规划约定dp[ i ][ j ] 表示在 1~i 个物品中,使用容量为 j 的背包拿取得到的最大值(不管是不是完全背包)思路01背包状态转移方程:dp[ i ][ j ] = max( dp[ i-1 ][ j ] , dp[ i-1 ][ j - cost[ i ] ])完全背包规定了物品不止可以选取一次,那么其实状态从 0,1变成了 0,1,2...

2020-01-22 22:23:43 457 1

原创 蓝桥杯:拿糖果 动态规划解法

蓝桥杯:拿糖果 动态规划解法上次写过一个类似的,用的dfs+记忆https://blog.csdn.net/weixin_44176696/article/details/104066663问题描述妈妈给小B买了N块糖!但是她不允许小B直接吃掉。  假设当前有M块糖,小B每次可以拿P块糖,其中P是M的一个不大于根号下M的质因数。这时,妈妈就会在小B拿了P块糖以后再从糖堆里拿走P块糖。然后...

2020-01-22 13:51:28 356

原创 蓝桥杯:拿糖果 记忆搜索解法(递归解法)

蓝桥杯:拿糖果 记忆搜索解法问题描述妈妈给小B买了N块糖!但是她不允许小B直接吃掉。  假设当前有M块糖,小B每次可以拿P块糖,其中P是M的一个不大于根号下M的质因数。这时,妈妈就会在小B拿了P块糖以后再从糖堆里拿走P块糖。然后小B就可以接着拿糖。  现在小B希望知道最多可以拿多少糖。输入格式  一个整数N输出格式  最多可以拿多少糖样例输入15样例输出6数据规模...

2020-01-21 23:38:13 606

原创 国王的金矿:动态规划中 “01背包问题” 的空间优化

国王的金矿:动态规划中 “01背包问题” 的空间优化上一篇:国王的金矿 经典解法,使用二维数组https://blog.csdn.net/weixin_44176696/article/details/104063272观察经典状态转移方程根据刻在DNA里的状态转移方程:// cost[x] / value[x] 表示开第x座矿的需要的人手,价值dp[i][j] = max(dp[i-...

2020-01-21 19:05:58 584

原创 国王的金矿:01背包问题 动态规划解法

国王的金矿:01背包问题 动态规划解法题目描述有一个国家发现了 n 座金矿,每座金矿的黄金储量不同,需要参与挖掘的工人数也不同。参与挖矿工人的总数是 m 人。每座金矿要么全挖,要么不挖,不能派出一半人挖取一半金矿。要求用程序求解出,要想得到尽可能多的黄金,应该选择挖取哪几座金矿?输入输出第一行输入两个整数 n,m表示有n座矿,m个人可用,接下来n行,每行输入两个整数value,co...

2020-01-21 16:49:05 958

空空如也

空空如也

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

TA关注的人

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