自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 树状数组和线段树知识点记录

一、树状数组这个数据结构主要有两个功能,支持单点修改和区间查询。树状数组其实是个一维的结构,每个数存的都是原数组一段数的和,在单点修改的时候就只需要改变和修改值有关联的几个位置就行。树状数组有关的几个操作:(1)lowbit(int x) 返回x的最后一位1(2)add(int u,int v)在u处加上v (树状数组只能支持加上一个数的操作,如果需要把u处的数i变成j,转换成加上j-i)(3)query(int x)返回x的前缀和#include <ios.

2022-03-19 10:19:17 1011

原创 排序方式总结

一、冒泡排序基本思路:大的向下沉小的向上浮,每次交换的数字都是相邻的。#include <iostream>#include <algorithm>using namespace std;const int N=10010;int num[N];int n;void bubble_sort(int num[],int n){ for(int i=0;i<n;i++) { for(int j=n-1;j>=i;j--) { if(n

2022-03-12 10:19:05 1749

原创 力扣寒假刷题笔记(20)2.17

一、每日一题马走日象走田的移动方式,个人写法是DFS+记忆化,感觉一下子就能想到DFS,试了一下单纯DFS会超时,加一个备忘录就可以过了。一开始没看懂概率是啥意思,以为是满足要求的走法除所有走法。后来想明白了,这里概率指的是选择某一种走法然后在棋盘上的概率。int dix[]={-2,-2,-1,-1,1,1,2,2},diy[]={-1,1,-2,2,-2,2,-1,1};double dp[101][25][25];class Solution {public: doub

2022-02-17 21:09:09 304

原创 力扣寒假刷题笔记(19)

一、每日一题class Solution {public: int maxNumberOfBalloons(string text) { int n = text.size(); int cnt[5]={0}; for(int i=0;i<n;i++) { if(text[i]=='a') cnt[0]++; if(text[i]=='b') cnt[1]++;

2022-02-13 22:46:24 234

原创 力扣寒假刷题笔记(18)2.12 二分+DFS

一、每日一题 网格型深搜class Solution {public: int n,m; void dfs(vector<vector<int>>& grid,int i,int j) { if(i<0||i>=n||j<0||j>=m||grid[i][j]==0) return; grid[i][j] = 0; if(i-1 >= 0 &&amp.

2022-02-12 22:31:41 193

原创 力扣寒假刷题笔记(17)2.11

二、二分练习我是从左上角开始写的,从上到下遍历matrix[i][0],找到小于等于target的值,再对每一行二分查找。class Solution {public: bool findNumberIn2DArray(vector<vector<int>>& matrix, int target) { //int n = matrix.size(),m=matrix[0].size(); if(matrix.size.

2022-02-11 23:45:42 281

原创 力扣寒假刷题笔记(16)2.10

一、每日一题直接暴力class Solution {public: bool check(int i,int j) { if(i==1) return true; while(i != j) { if(i>j) i-=j; else j-=i; } if(i != 1) return false; return true; .

2022-02-10 22:44:22 6408

原创 力扣寒假刷题笔记(15)2.8 二分练习

一、每日一题class Solution {public: vector<int> gridIllumination(int n, vector<vector<int>> &lamps, vector<vector<int>> &queries) { unordered_map<int, int> row, col, diagonal, antiDiagonal; au

2022-02-08 22:14:13 5789

原创 力扣寒假刷题笔记(14)2.7

一、每日一题 最长快乐子串规则有两条,一是不能有两个以上相同的字符相邻,二是a,b,c三个int分别对应a,b,c三个字符最大可以出现的次数。我们把次数从大到小排序,每次取剩余次数最多的一种字符使用。class Solution {public: string longestDiverseString(int a, int b, int c) { string res; vector<pair<int,char>> arr

2022-02-07 21:55:18 215

原创 力扣寒假刷题笔记(13)2.6

一、每日一题排序+双指针写法,先把Nums由小到大排序,然后遍历数组,选取大小相同的【i,j),如果长度为1就累加。class Solution {public: int sumOfUnique(vector<int>& nums) { int n = nums.size(); sort(nums.begin(),nums.end()); int ans=0,i=0; while(i<n) .

2022-02-06 21:42:25 286

原创 力扣寒假刷题笔记(12)2.5

一、每日一题 DFS递归回溯之前总结过的网格类DFS问题,这段时间一直在练,很简单。class Solution {public: int sum =0,maxval =0; int n,m; bool st[16][16]; void dfs(vector<vector<int>>& grid,int i,int j,int sum) { if(i<0||j<0||i>=n||j&gt

2022-02-05 23:10:17 2117

原创 力扣寒假刷题笔记(11)2.4

今天不舒服,头痛欲裂,写个每日一题算了。class Solution {public: int countGoodRectangles(vector<vector<int>>& rectangles) { int n= rectangles.size(); int maxlen=0,cnt=0; for(int i = 0;i<n;i++) { int x = m

2022-02-04 22:03:48 270

原创 力扣寒假刷题笔记(10)2.3

突然一下子就二月份了,休息了三天,三天都只是写了每日一题。一、记一下这三天的每日一题class Solution {public: int numberOfSteps(int num) { int ans=0; while(num) { if(num%2==0) num/=2; else num-=1; ans++; } retu

2022-02-03 22:47:10 5501

原创 力扣寒假刷题笔记(9)1.30 开始BFS

一、每日一题,记录stringstream用法题意简单来说,就是找出在两句话中都只出现了一次的单词。我们可以用哈希表的方式,键为字符串,值为出现次数进行存储。今天学到个新东西,stringstream类,以前是我孤陋寡闻了。字符串用流方式进行输入实在是非常爽,查了一下还可以做字符串拼接,我又学会了。class Solution {public: vector<string> uncommonFromSentences(string s1, string s2) { .

2022-01-30 22:50:39 515

原创 力扣寒假刷题笔记(8)1.29

一、每日一题今天每日一题是个多源BFS题目,本质上是从当前这个点像水波一样向外扩展。每次把源头加入队列,然后向上下左右四个方向高度加一,每次记录高度就行了。class Solution {public: int dx[4]={1,-1,0,0}; int dy[4]={0,0,1,-1}; vector<vector<int>> highestPeak(vector<vector<int>>& isWater)

2022-01-29 23:27:03 1882

原创 力扣寒假刷题笔记(7)1.28

一、每日一题今天是个排序题目,一开始没看懂题目,以为是要求存在一个角色的攻击力和防御力都要严格小于其他所有角色,想来想去那不是答案只有0和1吗,看到示例3才明白存在严格小于另外一个角色就行了。思路就是按照攻击力从大到小排序,那么可能存在的弱角色就肯定在二维向量后面。另外就是防御力的问题,记下已经遍历过的角色的最大防御力,后续遍历只要有一个角色的防御小于这个最大值就说明它前面有一个角色攻击和防御都强于它。另外注意攻击力相同的情况(这里指的是,与目前的最大防御力拥有者的攻击力相同),此时按照防御力从

2022-01-28 19:10:08 1181

原创 力扣寒假刷题笔记(6)1.27 继续图论复习

一、每日一题今天是个简单题,题意很明确,我们直接按照空格分成每一个子串,然后判断是不是符合标准就行了,if,else写了一堆。class Solution {public: bool isvalid(string temp,int m) { int c1=0,c2=0; for(int k=0;k<m;k++) { if(temp[k]=='!'||temp[k]=='.'||temp[k]==',

2022-01-27 21:31:51 262

原创 力扣寒假刷题笔记(5)1.26

一、这个题很单纯,想不出写什么,记一下代码。class DetectSquares {public: unordered_map<int ,unordered_map<int ,int>> map; DetectSquares() { } void add(vector<int> point) { int x= point[0],y=point[1]; map[y][x]++;

2022-01-27 11:55:35 134

原创 力扣寒假刷题笔记(4)1.25 简单模拟,图论复习

一、每日一题今天每日一题很简单,简单模拟就行,记一下代码。class Solution {public: int numberOfMatches(int n) { int ans=0,res=0; while(n>1) { ans += n / 2; res = n % 2; n = n/2 + res; } return ans;

2022-01-25 22:37:26 148

原创 力扣寒假刷题日记(3)1.24 dijkstra求最短路径

一、今天每日一题const int N=10010,M=4*N,INF=0x3f3f3f3f;int h[N],e[M],ne[M],dist1[N],dist2[N];class Solution {public: int idx=0; void add(int a,int b){ e[idx]=b; ne[idx]=h[a]; h[a]=idx++; } int secondMinimum(int .

2022-01-24 16:26:30 460

原创 力扣寒假刷题笔记(2)1.23

一、每日一题今天每日一题的思路很简单,基本不需要动脑子,STL运用熟练就没问题。一开始只用了一个map,存储{timestamp,price},最小最大值不好整,调用min_element和max_element倒也是可以跑,就是会超时。class StockPrice {public: multiset<int> st; map<int,int> m; int cur; StockPrice() { cur=0; .

2022-01-23 17:33:19 195

原创 力扣寒假刷题笔记(1)1.22 回文子序列,整数除法

一、删除回文子串2022/1/22 的每日一题,点开前看着简单还松了一口气,一看题目:好高端,这是简单?我是fw。最开始的思路是用动态规划dp枚举出所有起点所有长度的回文子序列,这个错误思路和力扣第五题相同。没删完之前一直循环,每次删除最大的一个回文子串,也就是每次都要重新对新的字串进行dp。第五题利用的一点是:如果一个长度大于2的字串是回文串,那么去掉首尾的两个字符剩下的字串也是回文串。动态规划一直不熟练,想不到,不会用,寒假能搞明白就谢天谢地。#include &lt.

2022-01-22 09:55:53 120

空空如也

空空如也

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

TA关注的人

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