自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(37)
  • 论坛 (6)
  • 问答 (1)
  • 收藏
  • 关注

原创 [力扣每日一题]1004. 最大连续1的个数 III

[力扣每日一题]1004. 最大连续1的个数 III给定一个由若干 0 和 1 组成的数组 A,我们最多可以将 K 个值从 0 变成 1 。返回仅包含 1 的最长(连续)子数组的长度。示例 1:输入:A = [1,1,1,0,0,0,1,1,1,1,0], K = 2输出:6解释:[1,1,1,0,0,1,1,1,1,1,1]粗体数字从 0 翻转到 1,最长的子数组长度为 6。原题链接解题思路:滑动窗口重点:题意转换。把「最多可以把 K 个 0 变成 1,求仅包含 1 的最长子数组的长

2021-02-19 11:16:57 9

原创 vector<vector<int >>初始化

vector<vector>初始化vector<vector>res(r, vector(c, 0));初始化r行 c列 初试为0的元素

2021-02-17 11:32:47 62

原创 牛客刷题[字母全排列]

牛客刷题[字母全排列]太久没做了 重新码一遍输入描述:输入一个字符串,长度不超过9(可能有字符重复),字符只包括大小写字母。注意点:要去重!class Solution {public: bool visit[10010]={false}; void dfs(int l,int size,string &a,vector<string>&res,string str){ if(l==size){ res.pus

2021-02-15 11:27:47 1

原创 笔记(最大公约数函数)

笔记(最大公约数函数)最大公约数函数int gcd(int a,int b){return b?gcd(b,a%b):a;}

2021-02-12 21:31:38 12

转载 Navicat导出数据库表

Navicat导出数据库表1.打开Navicat,双击打开你要导出表结构的数据库(此时数据库名称变绿),点击“查询”——“新建查询”2.在查询页面,新建查询输入以下代码SELECT COLUMN_NAME 列名, COLUMN_TYPE 数据类型, DATA_TYPE 字段类型, CHARACTER_MAXIMUM_LENGTH 长度, IS_NULLABLE 是否为空, COLUMN_DEFAULT 默认值, COLUMN_COMMENT 备注 FROM

2021-01-05 23:25:19 36

原创 [力扣每日一题]830. 较大分组的位置

[力扣每日一题]830. 较大分组的位置在一个由小写字母构成的字符串 s 中,包含由一些连续的相同字符所构成的分组。例如,在字符串 s = “abbxxxxzyy” 中,就含有 “a”, “bb”, “xxxx”, “z” 和 “yy” 这样的一些分组。分组可以用区间 [start, end] 表示,其中 start 和 end 分别表示该分组的起始和终止位置的下标。上例中的 “xxxx” 分组用区间表示为 [3,6] 。我们称所有包含大于或等于三个连续字符的分组为 较大分组 。找到每一个 较大分

2021-01-05 21:21:39 7

原创 [力扣每日一题]135. 分发糖果

[力扣每日一题]135. 分发糖果老师想给孩子们分发糖果,有 N 个孩子站成了一条直线,老师会根据每个孩子的表现,预先给他们评分。你需要按照以下要求,帮助老师给这些孩子分发糖果:每个孩子至少分配到 1 个糖果。相邻的孩子中,评分高的孩子必须获得更多的糖果。那么这样下来,老师至少需要准备多少颗糖果呢?原题链接class Solution {public: int candy(vector<int>& ratings) { int n=rating

2020-12-24 10:27:56 6

原创 [python]豆瓣网爬取图书图片信息教程

[python]豆瓣网爬取图书图片信息教程1.准备工作:已经爬取了图片的URL,图书的相关信息,以便后期进行标记。画圈处为图片链接和图书ID(用于匹配图片)2.定义url数组和id数组作用同上,且长度相同,url用于爬图片,id用于命名图片存储本地。3.操作代码引用了python的requests库PS:在获取网页操作r = requests.request(‘get’,urls[i], headers=headers) #获取网页时,若不加headers和headers配置文件

2020-12-23 16:52:02 36

原创 [每日一题]746. 使用最小花费爬楼梯

[每日一题]746. 使用最小花费爬楼梯数组的每个索引作为一个阶梯,第 i个阶梯对应着一个非负数的体力花费值 costi。每当你爬上一个阶梯你都要花费对应的体力花费值,然后你可以选择继续爬一个阶梯或者爬两个阶梯。您需要找到达到楼层顶部的最低花费。在开始时,你可以选择从索引为 0 或 1 的元素作为初始阶梯。原题思路:动态规划:选前1点或者前2点的最小花费...

2020-12-21 10:38:59 6

原创 [力扣每日一题]714. 买卖股票的最佳时机含手续费

[力扣每日一题]714. 买卖股票的最佳时机含手续费给定一个整数数组 prices,其中第 i 个元素代表了第 i 天的股票价格 ;非负整数 fee 代表了交易股票的手续费用。你可以无限次地完成交易,但是你每笔交易都需要付手续费。如果你已经购买了一个股票,在卖出它之前你就不能再继续购买股票了。返回获得利润的最大值。注意:这里的一笔交易指买入持有并卖出股票的整个过程,每笔交易你只需要为支付一次手续费。原题链接思路:DPclass Solution {public: int maxPr

2020-12-17 10:45:13 98

原创 [力扣每日一题]738. 单调递增的数字

[力扣每日一题]738. 单调递增的数字给定一个非负整数 N,找出小于或等于 N 的最大的整数,同时这个整数需要满足其各个位数上的数字是单调递增。(当且仅当每个相邻位数上的数字 x 和 y 满足 x <= y 时,我们称这个整数是单调递增的。)原题链接暴力过不去.贪心算法题目要求小于等于N的最大单调递增的整数,那么拿一个两位的数字来举例。例如:98,一旦出现strNum[i - 1] > strNum[i]的情况(非单调递增),首先想让strNum[i - 1]–,然后strNum

2020-12-15 20:53:30 14

原创 [力扣每日一题]49. 字母异位词分组

[力扣每日一题]49. 字母异位词分组给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。原题思路:先进行string的哈希,个人用数字哈希,也可以用按序排列的string作为键值排列。class Solution {public: vector<vector<string>> groupAnagrams(vector<string>& strs) { unordered_map<

2020-12-14 09:50:36 7

原创 [力扣每日一题]376. 摆动序列

[力扣每日一题]376. 摆动序列如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为摆动序列。第一个差(如果存在的话)可能是正数或负数。少于两个元素的序列也是摆动序列。例如, [1,7,4,9,2,5] 是一个摆动序列,因为差值 (6,-3,5,-7,3) 是正负交替出现的。相反, [1,4,7,2,5] 和 [1,7,4,5,5] 不是摆动序列,第一个序列是因为它的前两个差值都是正数,第二个序列是因为它的最后一个差值为零。给定一个整数序列,返回作为摆动序列的最长子序列的长度。 通过从原始

2020-12-12 19:25:56 20

原创 C++集合的使用

vector<int> v{ 1, 2, 2, 3, 4, 5, 6, 6, 7, 8, 9, 0 };binary_search(v.begin(), v.end(), 7); // 折半查找count(v.begin(), v.end(), 6); // 返回指定元素的个数 count_if(v.begin(), v.end(), [](int x) {return x >= 3; }); // 返回指定条件的个数、LAMBDA 初使用

2020-12-09 09:39:50 41

原创 [力扣每日一题]621. 任务调度器

[力扣每日一题]621. 任务调度器给你一个用字符数组 tasks 表示的 CPU 需要执行的任务列表。其中每个字母表示一种不同种类的任务。任务可以以任意顺序执行,并且每个任务都可以在 1 个单位时间内执行完。在任何一个单位时间,CPU 可以完成一个任务,或者处于待命状态。然而,两个 相同种类 的任务之间必须有长度为整数 n 的冷却时间,因此至少有连续 n 个单位时间内 CPU 在执行不同的任务,或者在待命状态。你需要计算完成所有任务所需要的 最短时间原题链接参考「桶思想」,详细说明各种情况建立

2020-12-05 09:39:00 13

原创 [力扣刷题]204. 计数质数

[力扣刷题]204. 计数质数添加链接描述统计所有小于非负整数 n 的质数的数量。1.暴力法超时2.素数筛思路:用额外bool数组存每个数是否需要判断标记,若发现一个质数,则其倍数全都不需要再进行判断。class Solution {public: int countPrimes(int n) { if(n < 3) return 0; vector<bool> isPrime(n + 1, true); for(int

2020-12-03 16:52:01 7

原创 WIN10下的VMware与Docker冲突的解决方案

WIN10下的VMware与Docker冲突的解决方案一、冲突原因 Hyper-V是微软的虚拟化软件,类似VirtualBox、VMware,可以用来创建虚拟机。它们被称为Hypervisor或Virtual Machine Monitor(虚拟机监视器)。 由于Hyper-V与VirtualBox、VMware不能共存,因此当Hyper-V打开时,VirtualBox、VMware就不能正常工作了。 然而,docker必须要在Hyper-V打开时才能进行工作,所以,二者理论上无法共存。二、尝试

2020-10-21 23:11:43 424

原创 【力扣每日一题】116. 填充每个节点的下一个右侧节点指针

【力扣每日一题】116. 填充每个节点的下一个右侧节点指针原题链接思路:层序遍历,每次扩展当前层 全部节点class Solution {public: Node* connect(Node* root) { queue<Node *>Q; if(root==NULL)return root; Q.push(root); while(!Q.empty()) { int siz

2020-10-15 09:29:19 3

原创 【ACWING刷题】845. 八数码

【ACWING刷题】845. 八数码原题链接思路:保存每一步的状态,BFS进行遍历搜索,只有当前字符串t==end时返回步数#include <isotream>#include <string>#include <algorithm>#include <queue>#include <unordered_map>using namespace std;const int N=100010;int n;int bf

2020-09-29 22:13:18 10

原创 染色法判断二分图

染色法判断二分图#include <isotream>#include <cstring>using namespace std;int n;int h[N],e[M],ne[M],idx;// 邻接表存储图int color[N]; // 表示每个点的颜色,-1表示未染色,0表示白色,1表示黑色// 参数:u表示当前节点,c表示当前点的颜色bool dfs(int u,int c){ color[u]=c; for (int i=h[u];i!=-1

2020-09-29 12:15:06 6

原创 【算法整理】多源最短路径

【算法整理】多源最短路径算法采用floyd算法//floyd求多源最短路//初始化各个边的权值for (int i=1;i<=n;i++) for (int j=1;j<=n;j++) if(i==j)d[i][j]=0; else d[i][j]=INF; // 算法结束后,d[a][b]表示a到b的最短距离void floyd(){ for (int k = 1; k <= n; k ++ ) for (int i =

2020-09-29 11:06:28 7

原创 【ACWING刷题】853. 有边数限制的最短路

【ACWING刷题】853. 有边数限制的最短路原题链接运用朴素版的Bellman-Ford算法进行求解#include <isotream>#include <cstring>using namespace std;int n,m; // n表示点数,m表示边数int dist[N];// dist[x]存储1到x的最短路距离struct Edge{ int a,b,w; // 边,a表示出点,b表示入点,w表示边的权重}edges[M];int

2020-09-29 10:49:13 6

原创 【ACWING刷题】迪杰斯特拉求单源最短路径

【ACWING刷题】迪杰斯特拉求单源最短路径原题 链接#include <iostream>#include <cstring>using namespace std;const int N=1010;int g[N][N];// 存储每条边int dist[N];// 存储1号点到每个点的最短距离bool st[N];// 存储每个点的最短路是否已经确定int n,m;int dijkstra()// 求1号点到n号点的最短路,如果不存在则返回-1

2020-09-28 21:54:54 9

原创 【ACWING刷题】有向图的拓扑序列

【ACWING刷题】有向图的拓扑序列通过队列与层次遍历实现,每次用该点的入度d[i]进行判定bool topsort(){ queue<int>q; int hh=0,tt=-1; for (int i=1;i<=n;i++) if(!d[i]) //d[i]存储i点的入度 q.push(i); while (!q.empty()) { int t=q.front(); for (int i=h[t];i!=-1;i=ne[i

2020-09-28 21:19:25 21

原创 【ACWING刷题】 图中点的层次

【ACWING刷题】 图中点的层次对于图从一点开始层次遍历,用队列实现int h[N],e[N],ne[N],idx;main(){ queue<int>q; st[1]=true; q.push(1); while(q.size()) { int t=q.front(); q.pop(); for (int i=h[t];i!=-1;i=ne[i]) { int j=e[i]; if(!st[j]) { st[j]=true;

2020-09-28 21:09:54 5

原创 有向图的存储

有向图的存储邻接表表示法:#include <iostream>using namespace std;const int N=110;int h[N],e[N],ne[N],idx;//h[i]存储以i为起点的头结点;e[i]是点i为起点的边,ne[i]是i为起点的边连接的下一条边,idx是当前的下标指针void add(int a,int b) //添加有向边a->b{ e[idx]=b; //给尾结点赋值b ne[idx]=h[a]; //b

2020-09-28 20:52:06 50

原创 开放寻址法

开放寻址法//开放寻址法 find函数int h[N];int find(int x){int x=(x%N+N)%N;while(h[t]!=null&&h[t]!=x){t++;if(t==N)t=0;}return t;}

2020-09-24 16:15:35 21

原创 字符串哈希

字符串哈希把每个截取字符串以P进制形式转化成整数映射#include <iostream>using namespace std;typedef unsigned long long ULL;const int N=100010,P=13331;//经验值P取131或13331ULL h[N],p[N];// h[k]存储字符串前k个字母的哈希值, p[k]存储 P^k mod 2^64void inti() // 初始化{ p[0]=1;

2020-09-24 16:02:11 7

原创 【ACWING刷题】154.滑动窗口

【ACWING刷题】154.滑动窗口原题链接思路:单调队列#include <iostream>#include <deque>using namespace std;const int N=100010;int a[N];deque<int>ss;int main(){ int n,k; cin >> n >> k; for (int i=0;i<n;i++)scanf("%d",&am

2020-09-23 12:58:26 9

原创 单链表的数组实现

单链表的数组实现原题链接#include <iostream>using namespace std;const int N=100010;int head,e[N],ne[N],idx;// head存储链表头,e[]存储节点的值,ne[]存储节点的next指针,idx表示当前用到了哪个节点void init(){ head=-1; idx=0;}void remove(int k){ //删除下标是k的节点 ne[k]=ne[ne[k]]

2020-09-22 19:51:19 15

原创 【力扣刷题】56.合并区间

【力扣刷题】56.合并区间原题链接思路:对初试区间序列排序,用左指针 l,右指针r,对序列遍历主要3中情况,r>当前区间右端点,两个区间无法合并,所指区间加入答案。r<=当前区间右端点,更新r,合并区间区间包含关系,可忽略写法一:vector<vector>class Solution {public: typedef vector<vector<int>>pii; vector<vector<int>&

2020-09-22 17:18:07 12

原创 【ACWING刷题】786. 第k个数

【ACWING刷题】786. 第k个数原题链接做法:快速排序为基础,用k与当前区间长度比较,进行区间剪枝,时间复杂度O(2n)#include <iostream>using namespace std;const int N=100010;int a[N];int quick_sort(int l,int r,int k){ if(r==l)return a[r]; int i=l-1,j=r+1,x=a[l]; while(i<j){

2020-09-20 11:49:57 17

原创 【ACWING算法经典】797.一维差分算法

【ACWING算法经典】797.一维差分算法原题链接#include<bits/stdc++.h>using namespace std;const int N =100010;int n,m,l,r,c;int a[N],b[N];int main(){ cin>>n>>m; for(int i=1;i<=n;i++) scanf("%d",&a[i]); //输入原数组 //构造差分数组 s[i]=s[i-1]+a

2020-09-19 16:52:23 10

原创 【算法学习】二分法模板

【算法学习】二分法模板一、整数划分1.数组区间为[l,r],划分为[l,mid],[mid+1,r];int binary_search_1(int l,int r){ while(l<r){ mid=l+r>>1; if(check(a[mid]))r=mid; // check()判断mid是否满足性质 else l=mid+1; } return l;}...

2020-09-18 21:56:37 12

原创 【力扣刷题】05.最长回文子串

【力扣刷题】05.最长回文子串原题链接方法一:暴力+剪枝时间复杂度O(n*n)。方法二:动态规划开辟二维dp[N][N],下标一x1为起始下标,下标二x2为终止下标,若区间x1-x2位回文则保存dp[x1][x2]=1;时间复杂度O(N*len)=O(N)class Solution {public: string longestPalindrome(string s) { int len=s.size(); if(len==0||len==1)

2020-09-18 15:54:45 16

原创 【力扣刷题】03.最长无重复子串

【力扣刷题】03.最长无重复子串原题链接方法一:暴力+简单剪枝,最后一个超长样例会超时。class Solution {public: int fun(string s) //查重函数 { int a[150]={0}; for (int i=0;i<s.size();i++) { a[s[i]]++; if(a[s[i]]>1)return -1; }

2020-09-17 21:03:12 6

原创 【力扣刷题-优化】01.两数之和

01.两数之和``原题链接class Solution {public:vector twoSum(vector& nums, int target) {multimap<int,int>pp;vectorres;for (int i=0;i<nums.size();i++){pp.insert(multimap<int, int>::value_type(nums[i], i));}multimap<int,int>::iterat

2020-09-17 16:12:48 19

空空如也

二叉排序树建立

发表于 2020-02-15 最后回复 2020-02-16

c语言gets()函数问题

发表于 2020-02-01 最后回复 2020-02-03

关于c语言调用二叉树指针的问题。

发表于 2020-01-24 最后回复 2020-01-24

数据结构树的路径

发表于 2019-10-07 最后回复 2019-10-08

C语言共用体问题

发表于 2019-10-03 最后回复 2019-10-05

基础运算求解

发表于 2019-09-08 最后回复 2019-10-05

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

TA关注的人 TA的粉丝

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