自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 26 docker前后端部署

参考博客](

2023-10-01 15:07:08 827

原创 18scala笔记

Scala2.12视频地址1 入门1.1 发展历史…1.2 Scala 和 JavaScala = Java++编写代码使用scalac编译成.class字节码文件scala + .class文件 执行代码1.3 特点1.4 安装视频地址注意配置好环境变量简单代码1.5 编译文件编译scala文件会产生两个.class文件使用java命令执行scala编译出的class文件,报错:正确方法如下1.6 IDEA使用创建maven项目

2023-10-01 14:55:42 480

原创 16数据处理

yaxis_title=‘金额(元)’,xaxis_title=‘日期’

2023-10-01 14:52:52 279

原创 15np+pandas+matplotlib

title="用户消费记录",labels={"Raise_time": "日期", "Money": "金额(元)", "Equip_num": "设备号"})# 自定义日期格式fig.show()fig.show()

2023-10-01 14:51:40 116

原创 10OpenMP

通过线程实现并行化,与Pthread一样,是基于线程的共享内存库。

2023-10-01 14:43:25 88

原创 如何在 Ubuntu 20.04 启用 SSH,并且通过局域网登录Ubuntu机器

本文介绍Secure Shell (SSH) 是一个网络协议,它主要被用来加密客户端和服务端之间的连接。 在客户端和服务端的每一次交互都被加密。这个教程解释了如何在 Ubuntu 机器上启用 SSH。启用 SSH 将会允许你远程连接到你的系统,并且执行管理员任务。你将能够通过 scp和sftp安全传输文件。一、 在 Ubuntu 上启用 SSH01.打开终端,并且安装openssh-server软件包:sudo apt updatesudo apt install openssh-serve

2020-11-29 17:33:03 15081

原创 如何在Ubuntu 20.04 Focal Fossa Linux上设置FTP服务器

1.安装VSFTPD$ sudo apt-get install vsftpd2使用nano或您喜欢的任何文本编辑器创建新的VSFTPD配置文件:$ sudo nano /etc/vsftpd.conf3.将以下基本配置复制到您的文件中。此配置对于基本的FTP服务器就足够了,并且在您确认其可以正常工作之后,可以对其进行调整,以满足您环境的特定需求:listen=NOlisten_ipv6=YESanonymous_enable=NOlocal_enable=YESwrite_enabl

2020-11-29 15:27:58 355 2

原创 978.最长湍流子数组

问题描述思路求最值问题,不用输出具体的结果,只需要输出长度,那么就可以使用动态规划,确定了方法,就可以根据方法的模板来写。首先确定状态,这里的dp数组为2行n列dp[0][j]表示以第j个数字为结尾的,且当前为升序列,也就是第j个数大于第j-1个数。dp[1][j]表示以第j个数字为结尾的,且当前为降序列,也就是第j个数小于第j-1个数。第一行代表状态为升,第二行代表状态为减那么就有了状态转移方程:如果当前状态为升,那么dp[0][j]=dp[1][j-1]+1;如果当前状态为降,那么

2020-11-20 16:50:46 116

原创 LeetCode51N皇后问题 回溯算法

问题描述思路最暴力的解法就是在棋盘上把所有的位置都遍历一遍,并判断当前位置能否放皇后……那么此题就可以递归回溯算法,用递归,首先就要确定递归的参数,void getQueens(int n,int index,vector & row)n代表皇后的个数,index表示当前考虑将皇后放到第index行,row[i]=k,表示第i行的第k列放了皇后。其次,此题的关键就是判断当前位置能不能放皇后,这里有一定的技巧性,我定义了以下向量来存储vector col,dia1,dia2;**

2020-11-09 17:30:12 170

原创 417太平洋大西洋水流问题

问题描述思路采用逆向思维,从数组的最外边开始遍历,向数组中心开始遍历,如果太平洋和大西洋都被访问过,那么当前节点就就符合题目条件。代码class Solution { int m,n;public: int changePos[4][2]={{1,0},{0,1},{-1,0},{0,-1}}; bool isEffective(int x,int y) { if(x>=0&&x<m&&y>=0&&

2020-11-06 11:46:17 99

原创 leetcode 130被围绕的区域 回溯算法

问题描述对不起,我是fw,看官方解答吧class Solution {public: int n, m; void dfs(vector<vector<char>>& board, int x, int y) { if (x < 0 || x >= n || y < 0 || y >= m || board[x][y] != 'O') { return; }

2020-11-03 17:28:59 124

原创 leetcode 200岛屿数量

问题描述代码class Solution {private: vector <vector <bool> >visited; int m,n; int move[4][2]={{-1,0},{0,1},{1,0},{0,-1}}; bool effective(int x,int y) { if(x>=0&&x<=m-1&&y>=0&&y<=n-1) re

2020-11-02 11:11:09 97

原创 leetcode79单词搜索回溯算法

问题描述思路代码class Solution {private: vector <vector <bool>> isVisited; int m,n; int position[4][2]={{-1,0},{0,1},{1,0},{0,-1}}; bool canMove(int x,int y){ if(x>=0&&x<m&&y>=0&&y<n) re

2020-11-01 11:17:52 102

原创 LeetCode401二进制手表回溯算法

问题描述思路1.读懂题意,把题目尽可能抽象成“子集、排列、组合”类型问题本题的题目总结而言就是:有十盏灯,我分别给他编号0-9,号码0-3代表小时,号码4-9代表分钟。这就是一个典型的组合问题,说白了就是从10个数字中挑选n个组合起来。代码class Solution { unordered_map <int,int> h={{0,1},{1,2},{2,4},{3,8},{4,1},{5,2},{6,4},{7,8},{8,16},{9,32}}; vector

2020-10-31 15:20:25 222

原创 leetcode 90子集2 回溯算法

问题描述思路首先明确这是一个组合问题,

2020-10-31 10:35:19 90

原创 递归LeetCode 78子集

问题描述代码class Solution {public: vector<int> t; vector<vector<int>> ans; void getSubsets(int cur, vector<int>& nums) { if (cur == nums.size()) { ans.push_back(t); return; }

2020-10-31 10:22:26 85

原创 回溯算法LeetCode216组合求和3

问题描述思路分析首先确定这是一个什么问题,很明显,输出的结果不需要考虑顺序,那就是一个组合问题,组合问题的start并不总是从0开始,会随着递归的推进而改变,注意的事项就是这么多。然后根据树状图来解就行了。代码class Solution { vector <vector <int> > res; void getCombunation(int start,int k,int n,vector <int> &p) {

2020-10-27 15:33:15 111

原创 LeetCode47全排列二 回溯算法

问题描述代码class Solution { vector <vector <int> > res; vector <bool> isVisited; void getPermute(vector <int>&nums,int index,vector <int>& p) {//关于参数的引用问题,因为本题中每一次回溯,p都会删除一个元素, //所以返回的时候p是和函数调用的时候是一样的

2020-10-25 10:40:47 78

原创 回溯算法 LeetCode 131 分割回文子串

问题描述思路在写题时,如果题目是要求枚举所有的情况,那么首先就要考虑递归,因为递归本身就会回溯,但根据不同的题目,在考虑时,就要注意递归的参数是否要和递归本身一样进行回溯,这也是回溯的难点和重点。如果状态容易储存,就可以考虑动态规划的方法来接,但像是本题一样的要求列举所有的到的解时,就用回溯法吧。确定好方法之后,那接下来就是画出树状图了,然后根据树状图来进行解答。代码class Solution { vector <vector <string>> res;

2020-10-24 20:34:16 158

原创 LeetCode 动态规划72编辑距离

问题描述思路求最值,动态规划问题,首先是确定状态,一般在两个字符串上进行的操作,dp就为二维数组,i,j分别表示考虑word1,word2从0到i,j字符串。状态方程在这里,建议拿纸笔模拟一下,很容易就可以得到代码class Solution {public: int min3(int a,int b,int c) { return min(a,min(b,c)); } int minDistance(string word1, string word

2020-10-22 22:10:28 75

原创 leetcode 动态规划494目标和

问题描述思路这是一道关于选择的题目,也就是对于每一个数,都有选+还是选-两种选择。首先确定状态,设数组的位置为变量i,表示考虑数组的第0到i的数,target的数值为j很容易就可以找出状态方程dp[i][j]=dp[i-1][j-nums[i]]+dp[i-1][j+nums[i]];当然要注意边界情况然后这个题目很容易犯错的一点就是,二维数组的列要开所有元素和的两倍加1那么大,表示target从-sum到sum。而且当S大于sum的时候,是没有解的。代码class Solution {

2020-10-22 21:11:46 109

原创 LeetCode 动态规划139单词拆分

问题描述思路状态:dp[i]表示考虑0到i-1所表示的字符串可不可以被拆分成单词状态转移方程在程序中有,不难理解代码class Solution {public: bool wordBreak(string s, vector<string>& wordDict) { int n=s.size(); vector <bool> dp(n+1,false); unordered_set <string&

2020-10-22 19:04:40 108

原创 leetcode 474 1和0

问题描述思路分析求最值问题,并且需要考虑所有的情况,所以可以用动态规划来写。题中是要选出最大的子集,首先,明确状态,dp[i][j][k]表示考虑第strs[0]到strs[i],0的个数为j,1的个数为k的最大子集。对应每一个字符串,就有选还是不选的问题。所以状态方程是dp[i][j][k]=max(dp[i-1][j][k](不选),dp[i-1][j-num0][k-num1]+1(选));然后还有一个步骤就是初始化的问题,那就是考虑第一个字符串对应的dp数组应该如何写,具体见代码代码

2020-10-20 16:36:30 71

原创 LeetCode377组合总和4

问题描述状态转移方程为当数组不越界的情况下(i-nums[j]>=0)dp[i]=sum(dp[i-nums[j]]);代码class Solution {public: int combinationSum4(vector<int>& nums, int target) { int n=nums.size(); if(target<=0||n==0) return 0; vector <unsign

2020-10-20 14:59:17 80

原创 LeetCode 动态规划322零钱兑换

问题描述思路根据题意,最暴力的方法就是枚举所有的情况,并且是求最值问题,所以就可以想到用动态规划的方法进行求解代码class Solution {public: int coinChange(vector<int>& coins, int amount) { int n=coins.size(); if(amount==0) return 0; if(n==1&&amount%coins[0]!=0)

2020-10-20 14:28:00 82

原创 leetcode 416.分割等和子集

问题描述思路本题可以看做能否将n个物体放入容量恰好为sum/2的背包中,是一个典型的背包问题状态转移方程为如果当前物体(第i个)可以放得下,也就是if(sums[i]<=c)dp[i][c]=(dp[i-1][c]||dp[i-1][c-sums[i]]);即考虑0到i个物品能不能恰好放入容量为c的背包,就要考虑第i个物品放还是不放,如果放,那就是考虑0到i-1个物品能不能恰好放入容量为c-sums[i]的背包,,如果不放,就考虑能否将0到i-1个物品能不能恰好放入容量为c的背包。如果

2020-10-16 11:07:01 51

原创 LeetCode113路径总和2递归 二叉树

问题描述代码/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public: vector<vector<in

2020-09-26 17:20:55 83

原创 *leetcode257二叉树的所有路径递归

代码/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public: vector<string> binary.

2020-09-26 16:58:32 64

原创 *LeetCode递归 二叉树404左叶子之和

问题描述代码实现/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public: int sumOfLeftLeaves(

2020-09-26 16:46:27 130

原创 LeetCode 121 买卖股票的最佳时期 动态规划

问题描述思路要遍历所有的情况,并且有重叠子问题,就可以考虑使用动态规划的思想来求解1.首先就是确定dp[i]该表示什么,本题就按照题目意思来,表示第i天以前的最大利润2.状态方程 本题为 dp[i]=max(dp[i−1],prices[i]−minprice),第i天要么什么都不做,要么在第i天卖出股票,所得的利润才可能是最大的3.初始化 dp[0]=0;代码代码class Solution {public: int maxProfit(vector<int&g

2020-09-21 19:02:09 68

原创 动态规划LeetCode309最佳买卖股票时期含冷冻期

问题描述思路读完题目,就知道要求出所有可能的情况,可以使用递归。然后可以发现递归求解过程中会有重叠子问题,所以就采用动态规划的方法。用一个二维数组来保存状态。总共三列,第一列表示持有股票,第二列表示未持有股票且处于冷冻期,第三列表示未持有股票且未处于冷冻期,dp[i]表示这天结束后的最大收益,每个dp[i]只与昨天也就是dp[i-1]有关。不难理解,只要昨天对应的三种状态的收益是最大的,在这个基础上进行相关操作,就能确保今天的收益是最大的代码class Solution {public:

2020-09-21 11:03:13 105

原创 LeetCode 213 打家劫舍 动态规划

问题描述该题就是在打家劫舍1的基础上增加了一个条件,就相当于求两次打家劫舍1,因为要想偷得钱最多,就要分两种情况:在第一个和最后一个中选择哪个(两个都不选的舍去,那肯定不是最大的)偷到的钱是最多的;代码class Solution {public: int f(vector <int> &nums,int s,int e)//相当于打家劫舍1 { vector <int> dp(nums.size()); dp[s]=

2020-09-20 20:46:13 63

原创 动态规划LeetCode 337打家劫舍3

问题描述题解我曾试用递归的方法来做这个题目,超时了;所以就尝试用记忆化搜索来写,其实也就是动态规划,,那怎样保存数据呢?这里就要用到容器 unordered_map,关于其使用方法可以去百度一下,这个东西就是一个无序的映射,就是插入元素不会自动进行排序。具体用法见代码代码/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * Tree

2020-09-20 20:38:48 71

原创 七桥问题,判断图中是否存在欧拉回路

#include <iostream>#include <vector>using namespace std;int n;void dfs(int start,vector <vector <int> > &juzhen,vector <int> &vis){ vis[start]=1; for(int j=1;j<=n;j++) { if(vis[j]==0&&ju

2020-09-16 22:52:59 477

原创 P1364 医院设置

问题描述思路本题用floyed算法求出一点到其余个点的最短路径,然后按照题目要求求最小值代码#include <iostream>#include <vector>#include <algorithm>using namespace std;int main(){ int n,x,y,num=0,res=1e9; cin>>n; vector <int> p(n+1); vector <

2020-09-12 21:56:52 916

原创 P5076 【深基16.例7】普通二叉树(简化版)

问题描述思路本题就是multiset(二叉线索平衡树)的应用主要应用两个函数 :lower_bound,upper_bound看完了有关set 和multiset的CSDN,这题就绝对没问题查询 x 数的排名排名,说白了就是排序之后的x的下标。我们只要用lower_bound方法,找到第一个x的位置。然后从begin开始往后遍历容器,只要达到这个位置,就输出当前下标即可。2.查询排名为 x 的数遍历容器,只要当前排名到达x,就输出当前值。(因为multiset容器无法进行随机访问

2020-09-12 19:49:21 345

原创 ccf201809-2买菜

问题描述思路首先注意,每个人的输入数据是已经排好序的,按题目要求进行模拟即可,代码中有详细解释代码#include <iostream>#include <vector>#include <algorithm>using namespace std;struct time{ int s; int e;};int main(){ int n,x,y,end,st; long long int res=0; c

2020-09-11 22:32:48 111

原创 落谷二叉树根据前序遍历和中序遍历,输出后序遍历

问题描述思路如果在纸上来写这个题目,我们呢就会发现会有很多重复的,类似的步骤,这就可以利用递归,个人建议自己在纸上画出解题的过程,递归的条件和过程就会比较清楚代码#include <iostream>#include <string>using namespace std;string a,b;//a代表前序遍历,b代表中序遍历void houxu(int x,int y,int p,int q)//x到y表示前序遍历的范围,p到q表示中序遍历范围{ if

2020-09-11 11:18:03 403

原创 落谷二叉树淘汰赛

问题描述思路题解大佬的思路:将比赛的队伍分为2类,第一类就是前一半的参赛队伍,第二类则是后一半的参赛队伍,,最后的决赛总是在第一类和第二类的最强者中进行,所以只需要在两类中进行排序就行代码#include <iostream>#include <algorithm>#include <vector>#include <stdio.h>using namespace std;struct dui{ int num; int

2020-09-11 11:06:57 208

原创 栈 LeetCode20有效符号

问题描述解题思路栈顶元素反映了在嵌套层次关系中,最近的需要匹配的元素这里可以利用栈代码class Solution {public: bool isValid(string s) { stack <char> a; for(int i=0;i<s.size();i++) { if(s[i]=='(' ||s[i]=='[' || s[i]=='{') a.push(s[i]); else

2020-09-07 18:48:29 90

空空如也

空空如也

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

TA关注的人

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