自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【Leetcode hot 100】96. 不同的二叉搜索树

我们将 [1,2][1,2][1,2] 构建不同左子树的数量表示为 G(2)G(2)G(2), 从 [4,5,6,7][4, 5, 6, 7][4,5,6,7] 构建不同右子树的数量表示为 G(4)G(4)G(4),注意到 G(n)G(n)G(n) 和序列的内容无关,只和序列的长度有关。(i-1)为左子树,i+1…稍后我们将看到,G(n)G(n)G(n) 可以从 F(i,n)F(i, n)F(i,n) 得到,而 F(i,n)F(i, n)F(i,n) 又会递归地依赖于 G(n)G(n)G(n)。

2023-05-24 22:03:37 522

原创 go语言使用append向二维数组添加一维数组

需要注意的是,为了避免对原切片造成影响,代码在将当前排列追加到结果数组 ans 时,使用了 append(ans, append([]int(nil), nums…)) 的方式创建了一个新的切片,保证了 ans 切片和新切片不共享内存。这个时候向ans添加nums会和原来的nums数组共享内存,当nums数据改变时,ans里的数据也会改变,这是一个坑。

2023-03-10 23:06:25 1198

原创 Go语言编程需要注意的点

Go语言编程需要注意的点。

2023-02-08 00:07:25 344

原创 【LeetCode每日一题】1798. 你能构造出连续值的最大数目

通过以上要点分析,本题可用贪心算法,初始设x=0(没有取任何coin),能表示的区间为[0,0],要使得区间扩大并且连续,需要尽可能满足要点②条件:y

2023-02-04 23:22:36 107

原创 MyBatis当传入参数为0时,条件不生效问题

Mybatis入Integer类型的参数,且传的值为0时,会把他看作空字符串。只需要去掉标签里的空值判断即可。

2022-04-30 22:37:43 418

原创 echarts控制台打印有数据,但是图显示不出来

原因:axios的异步问题,解决方法:必须先获取到数据再进行画图解决部分代码:this.getRes().then(res=>{ // console.log(res) if(res.code==200){ this.factorRes = res.data.data.factorRes; this.factorRes.f

2022-04-06 19:26:08 6096

原创 leetcode[剑指offer 03数组中重复的数字]

//找出数组中重复的数字。//////在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请//找出数组中任意一个重复的数字。//// 示例 1://// 输入://[2, 3, 1, 0, 2, 5, 3]//输出:2 或 3////////// 限制://// 2 <= n <= 100000// Related Topics 数组 哈希表 排序// 👍

2022-03-02 11:24:37 107

原创 leetcode[剑指offer 10-I斐波拉切数列]

//写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项(即 F(N))。斐波那契数列的定义如下://////F(0) = 0, F(1) = 1//F(N) = F(N - 1) + F(N - 2), 其中 N > 1.//// 斐波那契数列由 0 和 1 开始,之后的斐波那契数就是由之前的两数相加而得出。//// 答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。//////// 示例 1://

2022-03-02 11:13:01 83

原创 leetcode[剑指offer-09]用两个栈实现队列

//用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的//功能。(若队列中没有元素,deleteHead 操作返回 -1 )//////// 示例 1://// 输入://["CQueue","appendTail","deleteHead","deleteHead"]//[[],[3],[],[]]//输出:[null,null,3,-1]////// 示例 2:////

2022-03-02 11:01:44 117

转载 SpringBoot常用注解

添加链接描述

2022-02-18 23:05:05 70

转载 解决Idea中Cannot resolve plugin org.apache.maven.plugins:maven-clean-plugin:3.1.0配置问题

添加链接描述

2022-02-18 13:31:47 1253

原创 mybatis学习-02-增删改查

总流程:1.编写接口2.编写对应的mapper中的sql语句3.测试1. namespacenamespace中的包名要和Dao/Mapper中的接口保持一致!2. select选择,查询语句:id:就是对应的namespace中的方法名;resulType:sql语句执行的返回值!parameterType:参数类型注意增删改需要提交事务!userMapper.java接口:package com.zuo.dao;import com.zuo.pojo.User;im

2022-02-01 22:26:05 1211

原创 mybatis学习-01-第一个mybatis程序

1.创建数据库use mybatis;create table `user`(`id` int(20) NOT NULL PRIMARY KEY AUTO_INCREMENT,`name` VARCHAR(30) DEFAULT NULL,`pwd` VARCHAR(30) DEFAULT NULL)ENGINE=INNODB default CHARSET=utf8;insert `user`(`name`,`pwd`) values ('zz','123'),('张三','12352'

2022-02-01 20:57:44 357

转载 理解vue之element-ui中的 <template slot-scope=“scope“>

添加链接描述

2021-11-22 15:56:14 454

原创 算法小技巧:判断是否为2的整数次幂,判断二进制中1的个数

2021-11-12 14:58:00 125

原创 PAT甲级1136 A Delayed Palindrome (20 分)

题目链接思路:大整数运算,测试点2,3,4注意坑点:如果输入是回文的话就直接输出代码:#include<bits/stdc++.h>using namespace std;struct bign{ int d[100005]; int len; bign(){ memset(d,0,sizeof(d)); len=0; }};bign change(string s){ bign a; a.len=s.length(); for(int i=0;i<a.

2021-08-24 18:08:48 78

原创 PAT甲级1148 Werewolf - Simple Version (20 分)

题目链接思路:用v数组存储每个人说的话,v[i]就表示i说abs(v[i])是狼还是人,例如v[1]=-6,表示1说6号是狼,遍历i从1到n,j从i+1到n,枚举i,j为狼人的情况,初始化a数组元素全为1,表示为人,令a[i]=a[j]=-1,表示i,j为狼。遍历k从1到n来判断说谎,如果k号说的和实际的不同即为说谎,即v[k]*a[abs(v[k])]<0说明k说谎了,就把k push进lie数组。如果最后lie里面元素正好有两个,即说明有两个人说谎,并且a[lie[0]]+a[lie[1]]=

2021-08-17 11:41:16 101

原创 PAT甲级1154 Vertex Coloring(25 分)

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar

2021-08-11 21:15:08 101

原创 P1003 [NOIP2011 提高组] 铺地毯

题目描述为了准备一个独特的颁奖典礼,组织者在会场的一片矩形区域(可看做是平面直角坐标系的第一象限)铺上一些矩形地毯。一共有 n 张地毯,编号从 1 到 n。现在将这些地毯按照编号从小到大的顺序平行于坐标轴先后铺设,后铺的地毯覆盖在前面已经铺好的地毯之上。地毯铺设完成后,组织者想知道覆盖地面某个点的最上面的那张地毯的编号。注意:在矩形地毯边界和四个顶点上的点也算被地毯覆盖。输入格式输入共n+2 行。第一行,一个整数 n,表示总共有 n 张地毯。接下来的 n 行中,第i+1 行表示编号 i 的地毯的

2021-05-06 22:14:52 129

转载 Linux中root用户找不到JAVA_HOME

转载

2021-04-18 23:21:00 388

原创 计蒜客:打水滴(BFS)

样例输入12 2 22 00 011 1样例输出1YES样例输入22 2 22 00 021 21 1样例输出2NO0 20 0代码:#include <stdio.h>#include <string.h>#include <iostream>#include <string>#include <math.h>#include <algorithm>#include &l..

2021-04-18 22:45:43 220

原创 计蒜客:吃糖的时间(BFS)

思路bfs 出最后一个拿到糖果的小朋友的时间,然后加上 m 就是答案了。(注意只有一个小朋友时,答案就是m)代码#include<bits/stdc++.h>using namespace std;vector<int> Adj[100005];bool vis[100005];int n,p,c,m;int layer;struct Node{ int x,l;};void bfs(int x){ queue<Node> q;..

2021-04-17 19:56:07 787

原创 蒜头君回家(BFS)

样例输入8 10P.####.#P#..#..#...#..#T##.#.#............##.#####..........#####...#####....S##样例输出21方法1bfs 的时候标记数组多开一维度表示是否已经取得了钥匙的状态。如果到达终点并且取得钥匙的状态被标记,bfs 结束。#include<bits/stdc++.h>using namespace std;int n,m,sx,sy,ex,ey;char mp[200..

2021-04-17 19:25:00 200

原创 计蒜客:三阶平面魔方(BFS)

思路:写一个函数来进行相应的12种操作(12种有:每一列的上移下移 每一行的左移右移)然后就是用map来判重,因为此时9位数的可能性太多了,用vis数组判重就容易爆栈#include<bits/stdc++.h>using namespace std;string s,res="123456789";map<string,bool> mp;struct Node{ string t; int step;};string oper(strin...

2021-04-17 17:23:03 369

原创 计蒜客:一维跳棋(BFS)

我的代码#include<bits/stdc++.h>using namespace std;int n;string s1,s2;vector<int> temp;struct Node{ string s; int ind;//空格位置 vector<int> vc;};void bfs(){ queue<Node> q; q.push({s1,n,temp}); while(!q.e...

2021-04-17 16:35:59 578

原创 计蒜客:乳草的侵占(BFS)

样例输入4 3 1 1......*..**.样例输出4题解一定注意 u,vu,v 的位置处理。这道题目想必你已经可以直接想到bfs搜索了吧。把整个图遍历一遍,顺便记录下步数就可以了。其他的就是和普通bfs差不太多。#include<bits/stdc++.h>using namespace std;int X,Y,mx,my;char mp[105][105];int ans;int dir[8][2]={{0,1},{1,1},{1,0},{0,...

2021-04-17 15:25:35 190

原创 计蒜客:密码锁(BFS)

现在一个紧急的任务是打开一个密码锁。密码由四位数字组成,每个数字从 1 到 9 进行编号。每次可以对任何一位数字加 1 或减 1。当将9加 1 时,数字将变为1,当1减 1 的时,数字将变为9。你也可以交换相邻数字,每一个行动记做一步。现在你的任务是使用最小的步骤来打开锁。注意:最左边的数字不与最右边的数字相邻。输入格式第一行输入四位数字,表示密码锁的初始状态。第二行输入四位数字,表示开锁的密码。输出格式输出一个整数,表示最小步骤。样例输入12342144样例输出2思路此类题

2021-04-17 14:46:25 1081

原创 因数最多的数(DFS,质因数分解,剪枝)

蒜头君对一个数的因数个数产生了兴趣,他想知道在 1 到 n 的范围内,因数个数最多的数是多少。如果有多个这样的数,他想知道最小的那个。输入格式第一行一个整数 T,表示数据的组数。接下来 T 行,每行一个正整数 n。1≤T≤100,1≤n≤10e16输出格式一共输出 T 行,每行一个正整数表示最多因数个数的数。样例输入3101001000样例输出660840思路:代码:#include<bits/stdc++.h>using namespace st

2021-04-17 11:49:09 739

原创 计蒜客:置换的玩笑(DFS)

小蒜头又调皮了。这一次,姐姐的实验报告惨遭毒手。姐姐的实验报告上原本记录着从 1 到 n 的序列,任意两个数字间用空格间隔。但是“坑姐”的蒜头居然把数字间的空格都给删掉了,整个数字序列变成一个长度为 1 到 100 的且首部没有空格的数字串。现在姐姐已经怒了,蒜头找你写个程序快点把试验数据复原。输入格式输入文件有一行,为一个字符串——被蒜头搞乱的实验数据。字符串的长度在 1 到 100 之间。输出格式输出共一行,为姐姐的原始测试数据—— 1 到n 的输出。任意两个数据之间有一个空格。如果有

2021-04-17 00:51:03 221

原创 计蒜客:正方形(DFS)

相似题:三角形蒜头君手上有一些小木棍,它们长短不一,蒜头君想用这些木棍拼出一个正方形,并且每根木棍都要用到。 例如,蒜头君手上有长度为 1,2,3,3, 3 的 5 根木棍,他可以让长度为1,22 的木棍组成一条边,另外三根分别组成 3 条边,拼成一个边长为 3 的正方形。蒜头君希望你提前告诉他能不能拼出来,免得白费功夫。输入格式首先输入一个整数 n(4≤n≤20),表示木棍数量,接下来输入 n 根木棍的长度 pi (1≤pi≤10000)。输出格式如果蒜头君能拼出正方形,输出"Yes",否则输出

2021-04-16 23:04:22 839 1

原创 蒜头君的旅游计划(DFS)

马上就要放寒假了,蒜头君已经辛勤的工作一年了,打算和家人一起出去旅游放松放松。有经验的人一定知道,出去旅游前一定要有详细的旅行规划。蒜头君打算旅游 n 个城市,但并不是每条路线的花费都是一样的。蒜头君是一个勤俭节俭的人,他就在想怎么把所有的城市旅游一遍花费最小呢?(蒜头君不喜欢重复旅游同一个城市,也就是说已到达过的城市蒜头君是不会再次光临的)输入格式第一行输入一个整数 n (1≤n≤15),表示有 n 个城市。接下来有一个 n×n 的矩形,表示每两个城市之间的火车花费,每两个城市之间的花费不会超过 1

2021-04-16 22:11:34 767

原创 全排列(DFS和next_permutation解法)

从 n 个不同元素中任取m (m≤n) 个元素,按照一定的顺序排列起来,叫做从 n 个不同元素中取出 m 个元素的一个排列。当 m=n 时所有的排列情况叫全排列。今天这道题目很简单就是给你一个整数 n ,计算 [1,n] 所有数字的排列组合。输入格式第一行输入一个整数n(1≤n≤10).输出格式第一行输出一个全排列的方案总数 m。接下来按照字典序依次输出这 m 个排列。排列的字典的比较方法和字符串一样,比如两个排列 a,b,从第一个数开始,找到第一个不同的数的位置为i,然后比较 a[i] 和b

2021-04-16 21:55:07 232

原创 找数字(DFS)

给一个数 n,让你找出一个只由 0,1 组成的十进制数 m,要求这个正整数 m 可以被 n 整除。输入格式输入一个整数 n (1≤n<200)。输出格式对于输入整数 n 的每一个值,输出 m 的相应值,保证有一个数字长度小于 19 位的数字。如果有一个给定值 n 有多个解,其中任何一个都是可以接受的。本题答案不唯一,符合要求的答案均正确样例输入2样例输出10思路:在这里我们可以直接想到的就是枚举出所有的字符串,然后查看哪一个字符串是满足条件的。比如 1 10 11 …

2021-04-16 21:16:25 317

原创 DFS奇偶性剪枝

思路:代码:#include <iostream>using namespace std;const int N = 10;int n, m, T;char mat[N][N];bool vis[N][N];int dx[4]={0,0,-1,1};int dy[4]={1,-1,0,0};bool ok;void dfs(int x,int y,int t){ if(ok) return; if(t==T){ if(mat[x][y].

2021-04-16 20:58:34 122

原创 计蒜客:数独(DFS)

样例输入* 2 6 * * * * * ** * * 5 * 2 * * 4* * * 1 * * * * 7* 3 * * 2 * 1 8 ** * * 3 * 9 * * ** 5 4 * 1 * * 7 *5 * * * * 1 * * *6 * * 9 * 7 * * ** * * * * * 7 5 *样例输出1 2 6 7 3 4 5 9 83 7 8 5 9 2 6 1 44 9 5 1 6 8 2 3 77 3 9 4 2 5 1 8 68 6 1 3 ...

2021-04-16 18:08:48 587

原创 2n皇后问题

给定一个 n∗n 的棋盘,棋盘中有一些位置不能放皇后。现在要向棋盘中放入 n 个黑皇后和 n 个白皇后,使任意的两个黑皇后都不在同一行、同一列或同一条斜线(包括正负斜线)上,任意的两个白皇后都不在同一行、同一列或同一条斜线(包括正负斜线)上。问总共有多少种放法?n 小于等于 8。输入格式输入的第一行为一个整数 n,表示棋盘的大小。接下来 n 行,每行 n 个 0 或 1 的整数,如果一个整数为 1,表示对应的位置可以放皇后,如果一个整数为 0,表示对应的位置不可以放皇后。输出格式输出一个整数,表示

2021-04-16 01:10:01 89

原创 修改数组(并查集)

给定一个长度为 N 的数组 A=[A1,A2,⋅⋅⋅AN],数组中有可能有重复出现的整数。现在小明要按以下方法将其修改为没有重复整数的数组。小明会依次修改 A2,A3,⋅⋅⋅,AN。当修改 Ai 时,小明会检查 Ai 是否在 A1∼Ai−1 中出现过。如果出现过,则小明会给 Ai 加上 1;如果新的 Ai 仍在之前出现过,小明会持续给 Ai 加 1,直到 Ai 没有在 A1∼Ai−1 中出现过。当 AN 也经过上述修改之后,显然 A 数组中就没有重复的整数了。现在给定初始的 A 数组,请你计算出

2021-04-16 00:09:36 263

原创 引爆炸弹(DFS)

样例输入5 50001000010010011000101000样例输出2题解遍历每一个炸弹,同时把它所在的行和列的炸弹不断递归引爆,并将该炸弹变为0代码#include<bits/stdc++.h>using namespace std;int n,m,ans;char mp[1005][1005];bool vis1[1005],vis2[1005];void dfs(int x,int y){ mp[x][y]='0'; if...

2021-04-15 21:20:08 371

原创 计蒜客:方程的解数

样例输入:31001 2-1 21 2样例输出104题解:采用暴力的思想,枚举每一个 x 所有可能的值, 然后进行判断是否计算结果为 0。注意预处理,否则会超时。#include<bits/stdc++.h>using namespace std;typedef long long ll;int n,m,ans;int k[10],p[10];ll x[10][150];void dfs(int ind,ll s){ if(ind>n) ..

2021-04-15 20:57:21 92

原创 计蒜客:等边三角形(DFS)

蒜头君手上有一些小木棍,它们长短不一,蒜头君想用这些木棍拼出一个等边三角形,并且每根木棍都要用到。 例如,蒜头君手上有长度为 1,2,3,3 的4根木棍,他可以让长度为1,2 的木棍组成一条边,另外 2 跟分别组成 2 条边,拼成一个边长为 3 的等边三角形。蒜头君希望你提前告诉他能不能拼出来,免得白费功夫。输入格式首先输入一个整数 n(3≤n≤20),表示木棍数量,接下来输入 n 根木棍的长度 pi (1≤ pi ≤10000)。输出格式如果蒜头君能拼出等边三角形,输出"yes",否则输出"no"

2021-04-15 20:34:43 662

空空如也

空空如也

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

TA关注的人

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