自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(139)
  • 资源 (2)
  • 收藏
  • 关注

原创 记录一些提示信息

发现 AI 比我还聪明,你给他题目,让他用某种思路完成题目,居然能AC,而且符合要求。不用等到 35 就能喜提失业。

2024-04-16 22:37:49 320

原创 链式前向星解析

类似,先填充 edge[2] 的终点(即第二条边指向的终点)和下一条边编号(继承 head[0] 内值),然后修改 head[0] 内值,使得以 0 为起点的第一条边是 2 号边,而非初始的 0 号边。与单链表插入结点类似,先给edge[0]结点的值域内存入 to 和 nxt 值,nxt值继承 head[0] ,再修改head[0]。与邻接表很相似,链式前向星也开辟一块数组空间head,数组大小为拓补图中结点个数,上图中有0~4号节点,所以数组大小为5,数组内存储边的序号,

2024-03-30 16:58:54 325

原创 树形DP例题总结

其实并不对,因为可能 u 节点子树高度,举个例子,一个为1000,一个为1001,那么最长路径应该是1000 + 1001 + 1(u作为根节点,跨越两棵子树)。我们观察 u 会发现,由于根节点是 0 号,树的形态由此确定了(可能有的出边我们用虚线表示),所以 p 节点一定是它的父节点,其余全是子节点。比如 leetcode 310 最小高度树,给定的输入就是无向图的边,让你找到使得树高度最小的根节点的集合。当一棵树的根节点被拎出来,确定以后,这棵树的形态唯一确定,我们就给根节点标记为 0 号。

2024-03-26 21:18:08 192

原创 动态规划专题(笔记)

新建./source/Solution.cpp。新建./include/Solution.h。今天只是刷了一题leetcode,暂时以。LeetCode 64. 最小路径和。打了一天游戏,没时间学习,要努力辽。新建./CMakeLists.txt。相关题型为复习点,编点工程代码。新建./main.cpp。

2024-02-25 22:52:28 506

原创 生成gtest静态库 libgtest.a 文件

googletest文件夹下目录。

2024-02-01 22:33:16 409

原创 channel并发编程

我们通常可以把channel想象成一个传送带,将goroutine想象成传送带周边的人,一个传送带的上游放上物品,通过传送带的传输,下游的人可以将物品取走。channel是golang并发编程中一种重要的数据结构,用于多个goroutine之间进行通信。

2023-08-27 22:18:15 509

原创 golang channel

channel是不同协程之间异步通信的数据结构。

2023-08-27 20:36:49 724

原创 LeetCode 722. 删除注释

这个程序source是一个数组,其中source[i]表示第i行源码。删除注释后,隐含的换行符被删除,留下字符串 “ab” 用换行符分隔成数组时就是 [“ab”].输出: [“int main()”,”{ “,” “,“int a, b, c;我们保证每一个块注释最终都会被闭合, 所以在行或块注释之外的/*总是开始新的注释。第 4 行的字符串 // 表示行注释。从源代码中删除注释后,需要以相同的格式返回源代码。表示一个块注释,它表示直到下一个(非重叠)出现的。C++中有两种注释风格,行内注释和块内注释。

2023-08-03 19:54:32 286

原创 友好城市(LIS问题)

每对友好城市都向政府申请在河上开辟一条直线航道连接两个城市,但是由于河上雾太大,政府决定避免任意两条航道交叉,以避免事故。编程帮助政府做出一些批准和拒绝申请的决定,使得在保证任意两条航线不相交的情况下,被批准的申请尽量多。第2行到第n+1行,每行两个整数,中间用1个空格隔开,分别表示南岸和北岸的一对友好城市的坐标。Palmia国有一条横贯东西的大河,河有笔直的南北两岸,岸上各有位置各不相同的N个城市。仅一行,输出一个整数,表示政府所能批准的最多申请数。仅一行,输出一个整数,表示政府所能批准的最多申请数。

2023-08-02 21:15:31 361

原创 LeetCode 1027. 最长等差数列

回想一下,nums 的子序列是一个列表 nums[i1], nums[i2], …, nums[ik] ,且 0 <= i1 < i2 < …并且如果 seq[i+1] - seq[i]( 0 <= i < seq.length - 1) 的值都相同,那么序列 seq 是等差的。2.下标从0开始,新添加第j个数,需要用i指针遍历从0到第j-1个数,统计这每种公差下的间隔数量,并贪心的选择间隔数量最大的那个;1.考虑到公差可能为±500,所以将公差值k都加上500,这样范围就在0~1000之间;

2023-04-24 22:53:53 155 1

原创 LeetCode 174. 地下城游戏

有些房间由恶魔守卫,因此骑士在进入这些房间时会失去健康点数(若房间里的值为负整数,则表示骑士将损失健康点数);其他房间要么是空的(房间里的值为 0),要么包含增加骑士健康点数的魔法球(若房间里的值为正整数,则表示骑士将增加健康点数)。我们英勇的骑士最初被安置在 左上角 的房间里,他必须穿过地下城并通过对抗恶魔来拯救公主。注意:任何房间都可能对骑士的健康点数造成威胁,也可能增加骑士的健康点数,包括骑士进入的左上角房间以及公主被监禁的右下角房间。如果他的健康点数在某一时刻降至 0 或以下,他会立即死亡。

2023-04-23 21:22:03 141

原创 LeetCode 683. K 个关闭的灯泡

给你一个长度为 n 的灯泡数组 blubs ,其中 bulls[i] = x 意味着在第 (i+1) 天,我们会把在位置 x 的灯泡打开,其中 i 从 0 开始,x 从 1 开始。C++中的set一种关联容器,其中每个元素值都必须是唯一的,因为元素值标识了它。元素的值一旦被添加到容器中,不可修改,但是可以删除/添加元素。给你一个整数 k ,请返回恰好有两个打开的灯泡,且它们中间 正好 有 k 个 全部关闭的 灯泡的 最小的天数。最初,所有灯泡都关闭。每天 只打开一个 灯泡,直到 n 天后所有灯泡都打开。

2023-04-20 18:26:06 170

原创 LeetCode 1444. 切披萨的方案数(一)

阴影部分是一刀切下后,能即刻分到的披萨,每次切需要保证即刻分得的披萨内部“A”的数量至少为1(“A”即Apple)。切披萨的每一刀,先要选择是向垂直还是水平方向切,再在矩形的边界上选一个切的位置,将披萨一分为二。如果垂直地切披萨,那么需要把左边的部分送给一个人,如果水平地切,那么需要把上面的部分送给一个人。dp[m][n][k]前两个维度是坐标,最后一个维度是cuts数,用来表示右下角的pizza切k cuts有多少种合法的切法。你需要切披萨 k-1 次,得到 k 块披萨并送给别人。

2023-04-18 22:56:40 127

原创 LeetCode 304. 二维区域和检索 - 矩阵不可变

int sumRegion(int row1, int col1, int row2, int col2) 返回 左上角 (row1, col1) 、右下角 (row2, col2) 所描述的子矩阵的元素总和。计算其子矩形范围内元素的总和,该子矩阵的 左上角 为 (row1, col1) ,右下角 为 (row2, col2)。dp[x-1][y-1]:元素左上角。dp[x-1][y]:元素左边。dp[x][y-1]:元素上边。

2023-04-16 20:57:19 37

原创 LeetCode 218. 天际线问题

多重集合,区间集合

2023-04-09 22:45:13 317

原创 LeetCode 127.单词接龙

BFS,最短路

2023-04-04 21:26:34 75

原创 LeetCode 200.岛屿数量

bfs 四连通图

2022-09-07 15:12:46 81

原创 第K短路(Dijkstra+A*)

第K短路径

2022-07-18 20:38:02 160

原创 LeetCode 297. 二叉树的序列化与反序列化

序列化是将一个数据结构或者对象转换为连续的比特位的操作,进而可以将转换后的数据存储在一个文件或者内存中,同时也可以通过网络传输到另一个计算机环境,采取相反方式重构得到原数据。请设计一个算法来实现二叉树的序列化与反序列化。这里不限定你的序列 / 反序列化算法执行逻辑,你只需要保证一个二叉树可以被序列化为一个字符串并且将这个字符串反序列化为原始的树结构。提示: 输入输出格式与 LeetCode 目前使用的方式一致,详情请参阅 LeetCode 序列化二叉树的格式。你并非必须采取这种方式,你也可以采用其他的方

2022-05-11 18:05:34 82

原创 LeetCode 97. 交错字符串

给定三个字符串 s1、s2、s3,请你帮忙验证 s3 是否是由 s1 和 s2 交错 组成的。两个字符串 s 和 t 交错 的定义与过程如下,其中每个字符串都会被分割成若干 非空 子字符串:s = s1 + s2 + … + snt = t1 + t2 + … + tm|n - m| <= 1交错 是 s1 + t1 + s2 + t2 + s3 + t3 + … 或者 t1 + s1 + t2 + s2 + t3 + s3 + …注意:a + b 意味着字符串 a 和 b 连接。此题

2022-05-10 13:48:15 174

原创 LeetCode 713. 乘积小于 K 的子数组

给你一个整数数组 nums 和一个整数 k ,请你返回子数组内所有元素的乘积严格小于 k 的连续子数组的数目。注意:1=<nums[i]<=1000,均为正整数。class Solution { public int numSubarrayProductLessThanK(int[] nums, int k) { if(k<=1) return 0; int multi=1; int res=0;

2022-05-10 10:36:13 115

原创 Leetcode 942. 增减字符串匹配

思想:划分子问题class Solution { public int[] diStringMatch(String S) { int size=S.length(); int l=0; int h=size; int[] output_arr=new int[size+1]; for(int i=0;i<size;i++){ if(S.charAt(i)=='.

2022-05-09 21:46:38 127

原创 LeetCode 433. 最小基因变化

基因序列可以表示为一条由 8 个字符组成的字符串,其中每个字符都是 ‘A’、‘C’、‘G’ 和 ‘T’ 之一。假设我们需要调查从基因序列 start 变为 end 所发生的基因变化。一次基因变化就意味着这个基因序列中的一个字符发生了变化。例如,“AACCGGTT” --> “AACCGGTA” 就是一次基因变化。另有一个基因库 bank 记录了所有有效的基因变化,只有基因库中的基因才是有效的基因序列。给你两个基因序列 start 和 end ,以及一个基因库 bank ,请你找出并返回能够使

2022-05-09 16:52:20 319

原创 LeetCode 44 通配符匹配

给定一个字符串 (s) 和一个字符模式 § ,实现一个支持 ‘?’ 和 ‘*’ 的通配符匹配。‘?’ 可以匹配任何单个字符。‘*’ 可以匹配任意字符串(包括空字符串)。两个字符串完全匹配才算匹配成功。说明:s 可能为空,且只包含从 a-z 的小写字母。p 可能为空,且只包含从 a-z 的小写字母,以及字符 ? 和 *。class Solution {public: bool isMatch(string s, string p) { int m=s.siz

2022-05-08 18:00:11 258

原创 LeetCode 442 数组中重复的数据

给你一个长度为 n 的整数数组 nums ,其中 nums 的所有整数都在范围 [1, n] 内,且每个整数出现 一次 或 两次 。请你找出所有出现 两次 的整数,并以数组形式返回。你必须设计并实现一个时间复杂度为 O(n) 且仅使用常量额外空间的算法解决此问题。class Solution { public List<Integer> findDuplicates(int[] nums) { List<Integer> arr_list=new Arra

2022-05-08 11:59:59 65

原创 分布式数据库核心原理

随着互联网时代,特别是移动互联网时代的到来,形形色色的企业都在将自己的系统平台快速升级迭代,以此作为向互联网转型的一个部分。在这样的背景下,这类应用平台所依赖的数据库系统就需要支持突然增加的巨量的交易数据,但是在这种情况下,单体的数据库往往会很快的过载。而用于扩展数据库最常用的技术手段就是数据分片。那么1.什么是分片?2.如何将它应用于扩展数据库?3.常见分片架构的优缺点分片是将大数据表分解为较小的数据表的过程,这些分片分布在多个数据库集群节点上。分片本质上可以被看作传统数据库中的分区表,是一种

2022-05-03 16:20:30 1780

原创 分布式数据库

分布式数据库1.由位于不同站点的多个数据文件组成2.允许多个用户访问和操作数据3.从离用户最近的位置快速传文件4.如果其中一个站点发生故障,数据可恢复5.来自分散数据库的多个文件必须同步集中式数据库1.由单个中央数据库文件组成2.多个用户同时访问同一文件时发生瓶颈问题3.文件传递给用户可能需要更长时间4.单站点意味着系统发生故障时停机5.在单一的中央系统中更简单地更新和管理数据分布式数据库的核心——数据分片、数据同步数据分片数据分片是分布式数据库的技术创新,它可以突破中心化数据库

2022-05-02 11:43:32 887

原创 LeetCode 30 串联所有子串

给定一个字符串 s 和一些 长度相同 的单词 words 。找出 s 中恰好可以由 words 中所有单词串联形成的子串的起始位置。注意子串要与 words 中的单词完全匹配,中间不能有其他字符 ,但不需要考虑 words 中单词串联的顺序。class Solution: def findSubstring(self, s: str, words: List[str]) -> List[int]: if len(words)==0: return

2022-04-15 17:16:39 262

原创 LeetCode 42 接雨水

给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。维护一个单调不增栈class Solution { public int trap(int[] height) { int n=height.length; Deque<Integer> stack=new ArrayDeque<>(); int res=0; int curIndex=0; w

2022-04-11 18:32:00 405

原创 LeetCode 37 解数独

编写一个程序,通过填充空格来解决数独问题。数独的解法需 遵循如下规则:数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。(请参考示例图)数独部分空格内已填入了数字,空白格用 ‘.’ 表示。class Solution { public void solveSudoku(char[][] board) { helper(board); } private boolea

2022-04-11 14:51:07 239

原创 LeetCode 357 统计各位数字都不同的数字个数

给你一个整数 n ,统计并返回各位数字都不同的数字 x 的个数,其中 0 <= x < 10^nclass Solution { public int countNumbersWithUniqueDigits(int n) { if(n==0) return 1; int res=10; for(int i=1;i<n;i++){//i=1时为两位数, 以此类推 int base=9;

2022-04-11 12:12:48 77

原创 Acwing1323. 出现

给定 n 个自然数,求没有在这 n 个自然数中出现过的最小的自然数是多少。注意,0 也是自然数。输入格式第一行输入一个正整数 n。第二行输入给定的 n 个自然数,相邻两个自然数之间用一个空格隔开。输出格式输出只有一行,一个自然数,表示没有在输入的 n 个自然数中出现过的最小的自然数。数据范围1≤n≤1000,输入的 n 个自然数都不大于 1000。#include<bits/stdc++.h>using namespace std;int num,a[1001];se

2022-03-26 14:38:57 392

原创 剑指 Offer 38. 字符串的排列

输入一个字符串,打印出该字符串中字符的所有排列。你可以以任意顺序返回这个字符串数组,但里面不能有重复元素。class Solution {public: vector<string> ans; vector<int> vis; void dfs(string& dic,int idx,string& str){ if(idx==dic.size()) { ans.push_back(str);

2022-03-24 17:04:11 355

原创 LeetCode 1528 重新排列字符串

给你一个字符串 s 和一个 长度相同 的整数数组 indices 。请你重新排列字符串 s ,其中第 i 个字符需要移动到 indices[i] 指示的位置。返回重新排列后的字符串。JAVA代码:class Solution { public String restoreString(String s, int[] indices) { int n=s.length(); char arr[]=new char[n]; for(int id

2022-03-23 17:13:47 99

原创 DMA复习

1.CPU is inchargeGet 2 delays:1)I/O->CPU2)CPU->Memory2.DMA(Direct Memory Access)Bring 2 merits:1)Reduce time2)Reduce the effort of CPU in data transfer(We require CPU for the complex task rather than moving the data from here to there.We nee

2022-03-23 15:47:23 122

原创 LeetCode 653. 两数之和 IV - 输入 BST

给定一个二叉搜索树 root 和一个目标结果 k,如果 BST 中存在两个元素且它们的和等于给定的目标结果,则返回 true。1.BST转数组存储2.双指针求解单调数组相关问题/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} * TreeN

2022-03-21 21:13:57 301

原创 leetcode 720. 词典中最长的单词

class Solution { public String longestWord(String[] words) { Arrays.sort(words); HashSet<String> builtWords=new HashSet(); String res=""; for(String s:words){ if(s.length()==1 || builtWords.c.

2022-03-18 17:51:47 96

原创 leetcode 1690 石子游戏

石子游戏中,爱丽丝和鲍勃轮流进行自己的回合,爱丽丝先开始 。有 n 块石子排成一排。每个玩家的回合中,可以从行中移除最左边的石头或最右边的石头,并获得与该行中剩余石头值之和相等的得分。当没有石头可移除时,得分较高者获胜。鲍勃发现他总是输掉游戏(可怜的鲍勃,他总是输),所以他决定尽力减小得分的差值 。爱丽丝的目标是最大限度地扩大得分的差值 。给你一个整数数组stones,其中stones[i]表示从左边开始的第 i 个石头的值,如果爱丽丝和鲍勃都发挥出最佳水平,请返回他们得分的差值 。...

2022-03-18 16:46:20 3393

原创 LeetCode 2043. 简易银行系统

class Bank {public: vector<long long>balance; int maxID,minID; Bank(vector<long long>& _balance) { balance.push_back(0); for(auto x:_balance) balance.push_back(x); minID=1; maxID=balance.siz..

2022-03-18 16:41:17 281

原创 leetcode 1221.分割平衡字符串

在一个 平衡字符串中,‘L’ 和 ‘R’ 字符的数量是相同的。给你一个平衡字符串 s,请你将它分割成尽可能多的平衡字符串。注意:分割得到的每个字符串都必须是平衡字符串,且分割得到的平衡字符串是原平衡字符串的连续子串。返回可以通过分割得到的平衡字符串的最大数量 。class Solution { public int balancedStringSplit(String s) { int res=0,cnt=0; for(int i=0;i<s.leng

2022-03-17 20:18:55 587

数字形态学 腐蚀与膨胀.docx

数字形态学 腐蚀与膨胀.docx

2021-09-08

手写数字识别MATLAB实现.zip

基于深度学习做手写数字识别,用的MATLAB,附实验报告

2021-05-30

空空如也

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

TA关注的人

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