自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 trie字典树

字典树关键每个节点包含整个字母表,空间占用浪费很多。trie的形状和插入顺序无关,相同字符串集的trie树是相同的参考:Trie Tree 的实现 (适合初学者)🌳

2022-06-27 09:46:31 107 1

原创 leetcode_hot100 数组专题

leetcode - hot100 数组专题

2022-06-12 11:23:45 132

原创 vs code c++ 插件及快捷键配置(同步jetbrains快捷键习惯)

vs code c++插件及快捷键配置

2022-06-07 15:03:42 652

原创 环境变量配置问题

.bash_profile和.zshrc区别.bash_profile 中修改环境变量只对当前窗口有效,而且需要 source ~/.bash_profile才能使用.zshrc 则相当于 windows 的开机启动的环境变量参考Mac 每次都要执行source ~/.bash_profile 配置的环境变量才生效???Zsh和Bash的区别是什么?...

2022-05-04 17:15:20 743

原创 旋转数组专题

二分的核心思想就是干掉一半的解空间153. 寻找旋转排序数组中的最小值// 二分的核心思想就是干掉一半的解空间class Solution {public: int findMin(vector<int>& nums) { int len = nums.size(); int l = 0, r = len - 1; while (l < r) { int mid = l + (r - l) .

2022-03-01 18:39:01 54

原创 146. LRU 缓存

146. LRU 缓存单向链表不遍历无法直接删除给定的节点双向链表因为:哈希表给出待操作的节点指针,需要delete或者moveToHead操作,单向链表无法获取该node的前向节点,删除该节点链表节点需要key是因为:deleteTail之后,需要把哈希表中对应的key也给删了// hashTable.begin()返回的是pair<int, Node*>,得用p->first和p->second访问// 导致"heap-use-after-free"大概率是链表

2022-02-21 10:01:20 417

原创 剑指 Offer 27. 二叉树的镜像

class Solution {public: TreeNode* mirrorTree(TreeNode* root) { if (root == nullptr) return nullptr; if (root->left == nullptr && root->right == nullptr) return root; // 1. root->right = mirrorTree(root->left

2022-02-17 11:37:10 220

原创 剑指 Offer 34. 二叉树中和为某一值的路径

!!!修改全局变量的宗旨,当前节点对全局变量的修改要持续到子节点,但要在进入兄弟节点前取消掉class Solution {private: vector<vector<int>> res; vector<int> path; int tmpSum = 0;public: vector<vector<int>> pathSum(TreeNode* root, int target) { i.

2022-02-17 11:13:12 220

转载 hacker news排名算法学习

hacker news网站使用的,基于用户投票的排名算法

2022-02-05 16:56:49 933

原创 146. LRU 缓存

146. LRU 缓存超时的思路class Node {public: int val; int key; Node * pre, * next; Node(int k,int v):val(v), key(k), pre(NULL), next(NULL){} Node():pre(NULL), next(NULL){}};class LRUCache {private: // 5.bug. 类的成员变量必须初始化,因为是放在栈中的,siz

2022-02-03 19:22:58 269

原创 排序(严蔚敏版)

排序算法

2022-02-01 16:24:52 1359

原创 leetcode hot100刷题记录

树96 不同的二叉搜索树栈32 最长有效括号出现不匹配的右括号知道计数可以重新开始了但遇见左括号,无法确定未来是否会匹配,未来匹配不上计数应当重新开始,能匹配上计数应该继续()((),这个左括号就无法判断是否应该把第一对的2继续加上最后一对的2数组,串之类的题,最暴力的可以枚举两个边界...

2022-01-18 20:43:27 171

原创 剑指 Offer 16. 数值的整数次方

剑指 Offer 16. 数值的整数次方收获:对于输入要考虑它什么值都能取到,是否会有异常情况,异常情况可以用全局变量/返回值/error报出,可以和面试官讨论用哪种int的范围,-2147483648~+2147483647,负数比正数多一个(计算机中的正负数表示:正负号由第一位表示,例如8byte的数字,2^8=256可以表示256个数,正数最大01111111=127,以为0的正负都一样,没必要占用正负两种表示,所以10000000没有意义,因此设置了一种巧妙的表示负数的方法:补码:=负数对

2022-01-18 20:37:54 217

原创 软件架构基础

软件架构届的DDIAhttps://book.douban.com/subject/35306892/

2021-12-04 16:38:56 80

转载 golang 的 操作符号“<-“是什么

https://bbs.csdn.net/topics/391922084goroutine是golang中在语言级别实现的轻量级线程,仅仅利用 go 就能立刻起一个新线程。多线程会引入线程之间的同步问题,在golang中可以使用channel作为同步的工具。 通过channel可以实现两个goroutine之间的通信。 创建一个channel, make(chan TYPE {, NUM}) , TYPE指的是channel中传输的数据类型,第二个参数是可选的,指的是channel的容量大小。 向cha

2021-11-18 15:10:50 4577

原创 配置iterm 2快速打开网页

修改~/.zshrc中的配置, alias key='noglob open 网址'注:给命令添加前缀noglob,解决报错zsh:no matches found: xxxxxxsource ~/.zshrc使命令生效

2021-10-18 18:29:11 391

转载 解决MAC电脑Sequel Pro encountered an unexpected error 问题

sequel pro mac上崩溃使用test build版本, https://sequelpro.com/test-builds

2021-07-20 17:01:15 435

原创 goland中报错: Unresolved reference 错误解决

今天新下载了一个项目,go get后,相应的包已经下载下来了。但代码中对应的引用都飘红了解决方案https://blog.csdn.net/weixin_42012911/article/details/106916443

2021-07-13 11:31:35 228

原创 RocketMQ-事务消息实现原理

### 应用场景目前大多数企业采用基于分布式、微服务的设计理念,将核心系统功能拆分为多个微服务。这样就会存在一条业务链路中部分请求成功,部分请求失败的问题,那么如何在分布式场景下,如何保证消息发送与业务的一致性是RocketMQ需要解决的重要问题。 相关概念 分布式系统:分布式系统是一个硬件或软件组件分布在不同的网络计算机上,彼此之间仅仅通过消息传递进行通信和协调的系统。 微服务:微服务是一种用于构建应用的架构方案。微服务架构有别于更为传统的单体式方案,可将应用拆分成多个

2021-06-23 22:28:36 700

转载 【洛谷日报#13】浅谈二分的边界问题

Part1:二分的中心思想这是一个杯具,当你将二分的l+1<r写成l<r时,相信很多人都讨厌二分的边界,每次都弄不清楚二分的l和r要等于mid,还是mid-1,又或者是mid+1,这导致了很多人因此失分,那么,到底要怎么做才能区分二分的边界呢?二分的思想主要分三种:l和r代表的“成本值”均可行,且有一个ans变量记录当前的最优 l和r代表的“成本值”均可行,最后的答案是l或r l代表的“成本值”可行,r不可行,最后的答案是l下面我们将依次讲解1、2两种,第三种不推荐使用,比较容

2021-01-10 11:01:25 302

转载 JTabel数据刷新

https://blog.csdn.net/ecjtusbs/article/details/75136715

2019-11-30 21:14:48 129

转载 eclipse打包成exe

mark这个链接 https://www.cnblogs.com/icewee/articles/2073203.html

2019-11-21 14:47:32 122

原创 mysql出现root密码导致的问题,建库失败;Access denied for user 'root '@'localhost' (using password: NO)等

解决方法,有空再整理,基本原理就是跳过输入用户名密码步骤,改变user表中root密码即可结合下面两个链接的博客应该就可以解决https://blog.csdn.net/mazuyu408/article/details/86741551https://blog.csdn.net/tuenbotuenbo/article/details/38921775/...

2019-11-05 15:43:48 98

转载 listView的自定义使用

1) 定义一个实体类 Fruit,作为 ListView 适配器的适配类型。2) 为 ListView 的子项指定一个我们自定义的布局 fruit_item.xml。3) 创建一个自定义的适配器 FruitAdapter,这个适配器继承自 ArrayAdapter。重写构造方法和 getView 方法。4)在MainActivity中编写,初始化水果数据原博文 :https://w...

2019-10-16 12:09:14 152

原创 android studio安装步骤

android studio安装过n次了,每次都忘怎么装,必须要记录一下了1.官网下载SDK和IDE2.安装SDK3.安装IDE https://jingyan.baidu.com/article/ce4366495fccf23773afd382.html4.打开IDE(Android Studio) ,出现 unable 一大串是没有在默认路径上检测到SDK,点击cance...

2019-10-12 20:19:04 114

原创 快速幂

要求a^b 最简单就是把a连×b次,所以复杂度是O(b)也就是O(n)看起来还行哈,但是当然有更好的啦一般人真很难直接想到还有这种操作:快速幂快的原因就是因为它充分利用之前的结果,零碎的东西在最前面先×上,到后面就越来越大ll ksm(ll a,ll b){ ll ans = 1,base = a; while(b) { if(b&1) { an...

2019-09-19 19:45:00 81

原创 最短路径之dijistra

dijistra算法:跑过一边之后就把源点到所有点的最短距离都求出来了。算法思想其实应该属于DP,因为这个问题有着明显的最优子结构d[y]是指源点到y的最短距离,那显而易见:d[y] = min{d[x]+w(x,y)}这个和一般的dp题代码有点区别,因为一般的都是根据下标来推下一个,而这个点之间的连接要靠图来判断最重要的区别是初始化的时候只有一个值是已知的,就是所有源点直接相邻的...

2019-09-18 17:13:14 288

原创 最短路径之弗洛伊德

Floyd算法是大二到大三期间集训时候才算真正接触的,或许只有前一段时间DP的积累现在才算是真正理解这个算法需要充分理解DP的滚动数组思想才能算是真正的掌握Floyd算法又称为插点法算法的目标是要求图中所有两个点的最短距离,就用dis[i][j]来表示但是dis[i][j]是不够设置为状态的,因为这个状态比较粗略,状态之间无法转换这里就加了一个很神奇的限制条件,然后形成了这个状...

2019-09-17 23:44:53 166

原创 图的邻接表存储方式

用链表应该是比较麻烦的,可以用结构+数组实现struct Edge{ int from,to,val,next;}edge[maxn];int edgenum;void addedge(int u,int v,int w){ edge[edgenum].from = u; edge[edgenum].to = v; edge[edgenum].val...

2019-09-16 19:33:19 310

原创 二分+三分

二分理解while(left<=right),答案一定在[left,right]中。 思想有两种通过缩小范围来快速找到目标数的位置(应用1)--- 找到答案终止循环 不断舍弃答案不可能存在的区间来逼近真实答案,若答案为整数,则可以正好找到该答案,若为实数则会找到在某个精度内的答案(应用2,3)--- 把循环全走一边结束STL中给出的函数lower_boundup...

2019-09-14 14:20:03 163

原创 HDU - 1176 免费馅饼(kuangbin专题十二DP)

不以总结为目的刷题就是在耍流氓! 做这个专题的时候,我也一直在思考。如果是随便拿到一道题,那怎样才能判断出是否是DP题?以我现在的经验是首先思考问题规模能否缩小,像馅饼这个题,设馅饼总共掉了t秒,代码#include<cstdio>#include<algorithm>#include<cstring>#define maxn 100005...

2019-09-14 14:19:31 114

原创 KMP总结

应用1.求循环节: 循环节长 = len - Next[len],一定要注意,必须是len - Next[len]  例:没有循环的时候必错,因为比 len 还小的数-Next[len]<len,而结果是 len所以要注意,在求Next[]的时候,循环要(;i<len;)这样才能把Next[len]求到...

2019-09-14 14:19:10 91

原创 DP的状态设定及状态转移方程总结

最长上升子序列:dp[i],以下标i为结尾的最大长度dp[i] = max{ dp[j]+1 | j<i,a[j]<a[i] }最长公共子序列:dp[i][j],串a的前i个和串b的前j个中最大的公共长度if(a[i-1]==b[j-1])  dp[i][j] = dp[i-1][j-1]+1;else   dp[i][j] = max( dp[i-1][j] , d...

2019-09-14 14:18:26 597

原创 素数判定,素数筛

这些零碎的知识点每个都学过N次了,但隔一段时间就会忘,记录下来素数定义:只能被自身和1整除的大于1的正整数通过这个定义,我们就可以得出判断素数的第一种方法:将这个素数除以从 (2,sqrt(n)] 的数,若没有整除的就是素数(这里所用的最大除数是sqrt(n)而不是n-1的原因是:现在正过来想,num1*num2 = n,那当试到num1>sqrt(n)的情况时,num2一定就&l...

2019-09-14 14:14:45 229

原创 BFS总结

注意vis数组,否则循环就不用结束了 使用queue容器前记得清空 check函数记得判断边界必须要先标记访问再入队列!!!不能先入队列等出队时再标记访问,这样节点会重复入队,并且可能会爆内存!!!模板struct node//结构体定义{ int x,step;};queue<node> q;void bfs(){ while...

2019-09-11 09:07:50 250

转载 结构体定义的几种方式--转载

虽然这实在没啥好说的,但时间太久远了,总是忘,记录一下叭。传送门:结构体定义的几种方式只有typedef之后定义变量才能不加struct,但是queue<>这个<>不用typedef,也可以用结构体名另外说一下结构体的初始化 Stu stu = {1,2};就可以...

2019-09-10 19:43:49 101

转载 转载:C++字符串输入(读入整行等)

--------------------- 本文来自 good_luck512233 的CSDN 博客 ,全文地址请点击:原文链接:https://blog.csdn.net/good_luck512233/article/details/52791005关于在C++中字符串的输入整理笔记cincin是C++中最常用的输入语句,当遇到空格或者回车键即停止如:#include #in...

2019-09-05 20:22:17 454

原创 HDU - 1421 搬寝室(经典DP)

Description搬寝室是很累的,xhd深有体会.时间追述2006年7月9号,那天xhd迫于无奈要从27号楼搬到3号楼,因为10号要封楼了.看着寝室里的n件物品,xhd开始发呆,因为n是一个小于2000的整数,实在是太多了,于是xhd决定随便搬2k件过去就行了.但还是会很累,因为2k也不小是一个不大于n的整数.幸运的是xhd根据多年的搬东西的经验发现每搬一次的疲劳度是和左右手的物品的重量差的...

2019-09-01 11:10:36 212

原创 百炼2711 - 合唱队形(最长上升子序列)

DescriptionN位同学站成一排,音乐老师要请其中的(N-K)位同学出列,使得剩下的K位同学不交换位置就能排成合唱队形。合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1, 2, …, K,他们的身高分别为T1, T2, …, TK,则他们的身高满足T1 < T2 < … < Ti , Ti > Ti+1 > … > TK (1 <= i...

2019-08-19 10:45:57 89

原创 ACM的从文件读入

非常简单啦,但总是记不住,记录下函数原型FILE * freopen ( const char * filename, const char * mode, FILE * stream );输入freopen("shuru.txt", "r", stdin);输出freopen("shuchu.txt", "r", stdout);把两个txt文件放在和c++文件...

2019-08-14 18:37:05 295

空空如也

空空如也

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

TA关注的人

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