- 博客(36)
- 收藏
- 关注
原创 目标和(leetcode)
问题描述给你一个整数数组 nums 和一个整数 target 。向数组中的每个整数前添加 ‘+’ 或 ‘-’ ,然后串联起所有整数,可以构造一个 表达式 :例如,nums = [2, 1] ,可以在 2 之前添加 ‘+’ ,在 1 之前添加 ‘-’ ,然后串联起来得到表达式 “+2-1” 。返回可以通过上述方法构造的、运算结果等于 target 的不同 表达式 的数目。示例示例 1:输入:nums = [1,1,1,1,1], target = 3输出:5解释:一共有 5 种方法让最
2022-01-12 18:47:37
461
原创 Kruskal算法模板
#include <iostream>#include <memory.h>using namespace std;#define MAXEDGE 100//定义最大边集//边结构体struct Edge { int begin;//边起点 int end;//边终点 int weight;//边权值};//判断函数,找节点f的根int Find( int *parent, int f ) { while( parent[f] &
2021-11-29 11:15:23
352
原创 会场安排问题
问题描述Description假设要在足够多的会场里安排一批活动,并希望使用尽可能少的会场。设计一个有效的贪心算法进行安排。(这个问题实际上是著名的图着色问题。若将每一个活动作为图的一个顶点,不相容活动间用边相连。使相邻顶点着有不同颜色的最小着色数,相应于要找的最小会场数。)对于给定的k个待安排的活动,计算使用最少会场的时间表。Input输入数据的第一行有1个正整数k(k≤10000),表示有k个待安排的活动。接下来的k行中,每行有2个正整数,分别表示k个待安排的活动开始时间和结束时间。.
2021-11-29 10:11:43
307
原创 hdu1233还是畅通工程(Prim算法)
#include <iostream>#include <memory.h>#include <stdio.h>using namespace std;#define myINFINITY 2139062143 //自定义无穷int MAXVEX = -1; //顶点个数,默认-1int Graph[101][101]; //二维数组存边int Prim() { // lowcost[i]=18 代表节点i到目前最小生成树的最短距离18
2021-11-28 18:05:46
346
原创 最小生成树Prim算法代码详解
图片来源,我是复制的这个博主的照片具体理论什么的我就不说了,网上有很多,讲的都很好,我就简单总结一下,我们设两个集合,一个是最小生成树集合T,另一个是图Graph,我们选取 集合Graph-集合T 距集合T中顶点最近的顶点 加入后,更新与刚加入顶点相连的顶点权值,这样不断重复,直到集合T顶点==图Graph中顶点。已选那一栏就是我们上面说的集合T,可选与不可选两列和是图Graph-集合T.代码详解:#include <iostream>#include <mem.
2021-11-28 17:55:49
534
原创 N皇后(回溯法)
问题描述以及样例输入输出Description在N*N的方格棋盘放置了N个皇后,使得它们不相互攻击(即任意2个皇后不允许处在同一排,同一列,也不允许处在与棋盘边框成45角的斜线上。你的任务是,对于给定的N,求出有多少种合法的放置方法。Input共有若干行,每行一个正整数N≤10,表示棋盘和皇后的数量;如果N=0,表示结束。Output共有若干行,每行一个正整数,表示对应输入行的皇后的不同放置数量。Sample Input1 8 5 0Sample Output1 9.
2021-11-27 11:31:06
253
原创 java写一些简易图形程序(跟着b站黑马写的)
用java awt跟着b站黑马程序员写的运行结果:代码:package myAwt.myDraw;import javax.swing.*;import java.awt.*;import java.awt.event.*;//弹球游戏public class PinBall { //创建窗口对象 private Frame frame = new Frame("弹球游戏"); //桌面高度 private final int TABLE_WIDTH
2021-11-25 16:37:33
2888
原创 VSCODE写java某些问题
原因Add To Source Path:我一般只在一个code文件夹下写,code文件夹里面再包含很多文件夹,因为太多了,所以我新建了一个与code同级的文件夹蹦出个这个,告诉我要添加路径,skip是不可能的了,只能点add,点了后又会出现又报错,我最后发现是路径问题,就是add to source path解决办法我们要添加的路径应该是包路径的根,应该是添加code或者是wangkeCode,而不因该是他们的子文件夹路径。设置绿色箭头那样的根路径就ok了,如果设置红叉那样的路径不对。
2021-11-24 10:54:07
549
原创 操作系统最先适应算法(c++双向链表实现)
我参考的这篇文章,点这里最先适应算法(First Fit)简介首次适应算法(First Fit):该算法从空闲分区链首开始查找,直至找到一个能满足其大小要求的空闲分区为止。然后再按照作业的大小,从该分区中划出一块内存分配给请求者,余下的空闲分区仍留在空闲分区链中。特点: 该算法倾向于使用内存中低地址部分的空闲区,在高地址部分的空闲区很少被利用,从而保留了高地址部分的大空闲区。显然为以后到达的大作业分配大的内存空间创造了条件。缺点:低地址部分不断被划分,留下许多难以利用、很小的空闲区,而每次查找又都.
2021-11-22 23:07:13
2043
1
原创 操作系统生产者消费者问题(java用PV实现)
理论支持,点我点点我代码有四部分:Storage类:/* * @Author: robot-cmy * @Date: 2021-11-21 18:47:47 * @Last Modified by: robot-cmy * @Last Modified time: 2021-11-22 10:34:46 *///https://www.cnblogs.com/wkfvawl/p/11529681.htmlpackage myOperationSystem.ProducerAndCo.
2021-11-22 13:10:55
789
原创 操作系统读者写者问题(java用PV实现)
代码共四部分理论支持Book类:/* * @Author: robot-cmy * @Date: 2021-11-22 10:59:19 * @Last Modified by: robot-cmy * @Last Modified time: 2021-11-22 11:54:37 *///https://www.cnblogs.com/wkfvawl/p/11538431.htmlpackage myOperationSystem.ReaderAndWriter;publi.
2021-11-22 12:01:39
666
原创 java实现信号量互斥操作
具体操作类class MyMutexPluspackage myOperationSystem.DEMO2;public class MyMutexPlus implements Runnable { private int mutex = 1; //互斥信号量 private int count = 0; //计数器,用来结束线程 //P操作 public synchronized void P() { mutex--; .
2021-11-21 18:11:51
296
原创 vscode写java快捷插件(Extension Pack for Java)
扩展名字是Extension Pack for Java这是一个扩展包,它里面装了多个扩展。我是学生,平常就写点简单的java程序,这里说说我平常用到的。1.自动生成构造函数。右击鼠标,点击源代码操作点Generate Constrator不选中任何变量点确定生成默认构造函数选中变量生成带参构造函数2.自动生成变量getter和setter还是选中源代码操作点Generate Getters and Setters可以选择生成不同变量的getter和setter
2021-11-18 15:29:48
12993
原创 背包问题(动态规划c++)
背包问题(动态规划c++)代码参考,点这里思路参考,点这里问题描述:Description卖方:这件商品14元买方:给你20元卖方:不好意思,我的零钱不够买方:好吧,这是15元,剩的当小费当到一个地方旅游时,如果你买东西的地方不支持信用,带零钱还是非常有用的。特别是有时候卖方没有零钱,如果你没有刚好的钱,你需要支付比卖价多一点。当然你想付尽量少的钱(至少是商品价值的钱)。并且,当支付最少钱的时候,也最好是支付的硬币的数量最少。Input第一行包含一个整数表示测试数据的组数。每组测试
2021-11-16 17:25:09
1617
1
原创 图形压缩算法设计与分析(c++)--动态规划
图形压缩算法设计与分析(c++)下面是几个讲解的比较好的视频北大公开课,屈婉玲教授东北大学,郭楠老师1东北大学,郭楠老师2上面的这几个视频对学习图像压缩都有很大的帮助,建议看一看。分割线--------------------------------------------思路参考,这篇不错我的代码与课本代码的区别在于求最优解,我实在想不明白为什么后面每个分割段中像素所占最大位数是分割结束位置像素所占位数,不应该是这一段中的最大值吗。所以我没有用课本上的代码,参考屈婉玲教授的。下方代码是求
2021-11-12 09:46:49
1903
原创 LRU淘汰算法(c++数组模拟堆栈实现)
理论来源以及思路来源,请点击这里,这是链接图片我是从文章链接网址抄的虽然说是堆栈存储,但不是我们一般想的堆栈,有点像堆栈与队列的结合,他要求的是在栈顶插入,栈底或中间取出,因此我们用数组模拟。具体详情请看LRU原理。#include <iostream>using namespace std;//查找函数,判断元素val有没有在堆栈stack中int Find( int *stack , int val , int usedSpace ){ //usedSp.
2021-11-10 09:14:47
797
原创 多边形游戏(动态规划)
多边形游戏(动态规划)理论和解题步骤有两位大佬说的很好,我就不卖弄了,直接贴他们的,我注释课本中的代码是什么意思。理论支持——点这里超超超超级详细解题步骤——点这里
2021-11-08 09:40:35
3117
原创 每日温度(leetcode)-堆栈
每日温度(leetcode)-堆栈**力扣题目链接,,请点击这里问题描述:请根据每日 气温 列表 temperatures ,请计算在每一天需要等几天才会有更高的温度。如果气温在这之后都不会升高,请在该位置用 0 来代替。图片来源,请点击这里解法1-暴力求解不用堆栈知识,提交时间会超限class Solution { public: vector<int> dailyTemperatures(vector<int> &temperatures)
2021-11-07 11:51:15
126
原创 有效的括号(leetcode)-栈
有效的括号(leetcode)-栈****leetcode题目链接思路:从头开始,把每一个左括号对应的右括号入栈,当遇到右括号时,看栈顶元素是不是遇到的右括号,是就出栈继续,不是的话就返回false。举个栗子:{ ( [ ] ( ) ) }1 2 3 4 5 6 7 8从左往右,将**{ ( [** 对应的 ***} )]***入栈,当碰到右括号 ] 时,将它与栈顶元素比较,相等就出栈,进行下面的工作,将 ( 对应的 ) 入栈,碰到 )将它与
2021-11-06 11:25:58
103
原创 完全平方数BFS
完全平方数BFS***力扣链接***图片来源问题描述给定正整数 n,找到若干个完全平方数(比如 1, 4, 9, 16, …)使得它们的和等于 n。你需要让组成和的完全平方数的个数最少。给你一个整数 n ,返回和为 n 的完全平方数的 最少数量 。完全平方数 是一个整数,其值等于另一个整数的平方;换句话说,其值等于一个整数自乘的积。例如,1、4、9 和 16 都是完全平方数,而 3 和 11 不是。示例1输入:n = 12输出:3 解释:12 = 4 + 4 + 4示例2输入:
2021-11-05 10:38:36
229
原创 打开转盘锁(leetcode)BFS解法
打开转盘锁(leetcode)BFS解法*力扣链接*图片来源*模板代码来源问题描述:你有一个带有四个圆形拨轮的转盘锁。每个拨轮都有10个数字: ‘0’, ‘1’, ‘2’, ‘3’, ‘4’, ‘5’, ‘6’, ‘7’, ‘8’, ‘9’ 。每个拨轮可以自由旋转:例如把 ‘9’ 变为 ‘0’,‘0’ 变为 ‘9’ 。每次旋转都只能旋转一个拨轮的一位数字。锁的初始数字为 ‘0000’ ,一个代表四个拨轮的数字的字符串。列表 deadends 包含了一组死亡数字,一旦拨轮的数字和列表里的任何一
2021-11-03 09:14:40
4418
原创 岛屿数量(力扣)
岛屿数量(力扣)**********题目链接BFS解法 ???时间超限???class Solution {public: int numIslands( vector<vector<char>>& grid ) { int m = grid.size(); int n = grid[0].size(); if( n == 0 || m == 0 ) { return 0;
2021-10-28 11:58:11
49
原创 银行家算法(c++实现)
银行家算法(c++实现)***********图片来源,代码思路参考银行家算法描述:在银行中,客户申请贷款的数量是有限的,每个客户在第一次申请贷款时要声明完成该项目所需的最大资金量,在满足所有贷款要求时,客户应及时归还。银行家在客户申请的贷款数量不超过自己拥有的最大值时,都应尽量满足客户的需要。在这样的描述中,银行家就好比操作系统,资金就是资源,客户就相当于要申请资源的进程。安全序列描述主要数据结构:process为进程数 resource为资源种类还会用到一维数组 work[resou
2021-10-28 09:24:08
830
原创 划分问题——动态规划
划分问题——动态规划思路以及图片来源Description给定一个正整数的集合A={a1,a2,….,an},是否可以将其分割成两个子集合,使两个子集合的数加起来的和相等。例A = { 1, 3, 8, 4, 10} 可以分割:{1, 8, 4} 及 {3, 10}Input第一行集合元素个数n n <=300 第二行n个整数Output如果能划分成两个集合,输出任意一个子集,否则输出“no”Sample Input51 3 8 4 10Sample Output3 10
2021-10-24 16:24:33
4122
原创 最长公共子序列(动态规划)
最长公共子序列(动态规划)图片以及参考来源最长公共子序列:LCS(Longest common subsequence)设X={X1,X2,X3,X4…,Xm},Y={Y1,Y2,Y3,Y4…,Yn},Z={Z1,Z2,Z3,Z4…,Zk}是他们的最长公共子序列分析可知:1、如果Xm = Yn,则Zk = Xm = Yn 且 Zk-1是Xm-1和Yn-1的LCS2、如果Xm != Yn 且 zk != xm,则Z是Xm-1和Y的一个LCS3、如果Xm != Yn 且 zk != yn,则Z是X
2021-10-19 13:13:51
157
原创 最长回文子串-动态规划
最长回文子串-动态规划图片来源时间复杂度 O(n^2),如果用 dp[i][j] 保存子串 从i 到j 是否是回文子串,那么在求 dp[i][j] 的时候如果 j-i+1>=2 时,如果 dp[i+1][j-1] 回文 且 s[i]==s[j] ,那么 dp[i][j] 才会是回文。图片来源class Solution {public: string longestPalindrome( string s ) { //dp[i][j]存串从 i 到 j是否为
2021-10-17 10:06:02
47
原创 最长回文子串——暴力解法(c++)
最长回文子串——暴力解法(c++)暴力解法第一版(用的全是c++自带函数)——代码短,效率低class Solution {public: string longestPalindrome( string s ) { string maxString = ""; //存最长回文子串 int maxCount = 0; //存最长回文子串元素个数 初始都为0 //从前往后依次循环 for( int i = 0; i < s.length
2021-10-16 16:59:17
279
原创 LeetCode 498. 对角线遍历(c++)
LeetCode 498. 对角线遍历(c++)图片来源1.对角线性质设矩阵行数为row,列数为column a.对角线总数为 row+column-1; b.同一条对角线上每个元素横纵坐标之和 x + y都相等,都等于对角线的序号。**2.思路** 思路就是模拟图片中的行走路径。 设对角线序号=i,对角线起始点坐标为x,y 对角线终点坐标为endx,endy temp为元素个数-1 当i为偶数时 i小于行数,即i<row x每次都等于对
2021-10-15 11:51:24
248
原创 动态规划——矩阵连乘
动态规划——矩阵连乘设第i个矩阵为Ai,将矩阵连乘积AiAi+1…Aj记为A[i:j].求A[1:n]最少计算次序.采用完全加括号,即在不同位置将矩阵连乘分割,比较分割后最优,求出最优值。分割位置k(1<=k<n)。#include <iostream>using namespace std;//p存储 行列数,n=矩阵个数,m存矩阵最少乘次数(最优值),n存断开位置(最优解)void MatrixChain( int *p, int n, int m[][100]
2021-10-12 13:10:30
138
原创 2021/10/9 力扣数组和字符串第一题
2021/10/9 力扣数组和字符串第一题 刚开始是想在 数组开头 和 结尾 分别设 两个指针 left right,leftSum rightSum记录两边和,哪边小哪边就加 一个元素,直到两边和相等或没找到,但是各种出错。抄袭大神的代码:int pivotindex( vector<int>& nums ) { int tempSum = 0; for( int i = 0; i < nums.size() ; i++ ) {
2021-10-09 11:36:28
66
原创 求一个阶乘最后面一个非零数
求一个阶乘最后面一个非零数DescriptionN的阶乘写作N!表示小于等于N的所有正整数的乘积。阶乘会很快的变大,如13!就必须用32位整数类型来存储,70!即使用浮点数也存不下了。你的任务是找到阶乘最后面的非零位。举个例子,5!=12345=120所以5!的最后面的非零位是2,7!=1234567=5040,所以最后面的非零位是4。Input共一行,一个整数不大于4,220的整数N。Output共一行,输出N!最后面的非零位。Sample Input7Sample Output4老
2021-03-09 09:52:14
1061
原创 杭电1009 额外测试数据
杭电1009 额外测试数据做杭电1109时给的样本测试都对,但一直wa,最后发现没有考虑J或者F为0的情况,可以试试下面的数据。/* Test data: 0 3 100 0 100 0 100 0 Answer 300.000 */
2021-02-19 21:15:08
114
原创 2021-02-17
DescriptionIn the 22nd Century, scientists have discovered intelligent residents live on the Mars. Martians are very fond of mathematics. Every year, they would hold an Arithmetic Contest on Mars (ACM). The task of the contest is to calculate the sum of t
2021-02-17 20:20:44
90
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人