自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 [VUE]Unhandled error during execution of schedule flush.

在前端开发使用vue和element plus时遇到了这样一个warn:Unhandled error during execution of schedule flush.是由于没有赋初始值导致的,将所有的元素赋值后就可以消除这个warn可能是vue内部构件的bug

2021-12-02 22:48:35 2413

原创 leetcode678有效的括号字符串

678. 有效的括号字符串上过数据结构课的最直观的印象,括号匹配用栈来存储这个题目的变化就是增加了一个*,可以代替左右括号或者视为空,依然可以用栈来解题,设置左括号和星号的栈,保存二者在字符串s中的位置,当遇到右括号时,优先pop左括号栈,左括号栈为空再pop星号栈,如果都空则false,最后通过左括号栈和星号栈中存的位置来判断星号和左括号是否可以匹配class Solution {public: bool checkValidString(string s) { stack

2021-09-12 14:44:51 152

原创 leetcode502.IPO

502.IPO假设 力扣(LeetCode)即将开始IPO 。为了以更高的价格将股票卖给风险投资公司,力扣 希望在 IPO 之前开展一些项目以增加其资本。 由于资源有限,它只能在 IPO 之前完成最多 k 个不同的项目。帮助 力扣 设计完成最多 k 个不同项目后得到最大总资本的方式。给你 n 个项目。对于每个项目 i ,它都有一个纯利润 profits[i] ,和启动该项目需要的最小资本 capital[i] 。最初,你的资本为 w 。当你完成一个项目时,你将获得纯利润,且利润将被添加到你的总资本中。

2021-09-08 16:49:09 173

原创 leetcode523连续的子数组和

523. 连续的子数组和给你一个整数数组 nums 和一个整数 k ,编写一个函数来判断该数组是否含有同时满足下述条件的连续子数组:子数组大小 至少为 2 ,且子数组元素总和为 k 的倍数。如果存在,返回 true ;否则,返回 false 。如果存在一个整数 n ,令整数 x 符合 x = n * k ,则称 x 是 k 的一个倍数。0 始终视为 k 的一个倍数。这道题最开始的想法是暴力求解,但是由于O(n2)的时间复杂度,导致超时使用前缀和,哈希表remain2index中,key为前缀和

2021-09-07 10:19:57 188

原创 Linux复制

cp -r 要复制的路径(当前目录下) ~/path0/path1/…/targetfolder将当前目录下要复制的路径及包含的所有文件复制到目标文件夹cp filename ~/path0/path1/…/targetfolder将当前目录下要复制的文件复制到目标文件夹(复制后的新文件与原文件同名)...

2021-03-09 20:42:45 109

原创 Linux 截取文件a的某几行至文件b

例如:截取a的第八行到b(末尾)sed -n ‘8p’ a >> b如果要覆盖则为 a > b

2021-03-09 20:02:05 412

原创 leetcode338比特位计数

338.比特位计数这道题要求O(n)时间一趟遍历解决,空间复杂度在O(n),返回值的空间为O(n) 因此不能使用额外的空间。要记录0到num每一个数字二进制中1的数目,又要求O(n)时间,也就是说已经“走过”的不能再走,很自然的可以想到奇数的二进制中1的数目是它前一个数的1的数目的多一个,那么偶数呢?在纸上写几个二进制数,写到1100就可以发现规律了class Solution {public: vector<int> countBits(int num) { v

2021-03-03 08:47:11 173

原创 leetcode304二维区域和检索 - 矩阵不可变

304.二维区域和检索 - 矩阵不可变代码是看了大佬的思路写的,leetcode负雪明烛,也不清楚动态规划是什么东西,这个月先做着吧,希望做完之后能会一点class NumMatrix {public: vector<vector<int>> preSum; NumMatrix(vector<vector<int>> &matrix) { int m, n; if (matrix.empty()

2021-03-02 20:49:13 80

原创 leetcode1052爱生气的书店老板

1052.爱生气的书店老板一道普通的滑动窗口题,要注意的点是用temp记录窗口内的数据,max_记录最大的,不能用temp记录最大。。。class Solution {public: int maxSatisfied(vector<int>& customers, vector<int>& grumpy, int X) { int sum_=0; int temp=0; int n=customers.si

2021-02-23 16:46:26 61

原创 leetcode1438绝对差不超过限制的最长连续子数组

1438.绝对差不超过限制的最长连续子数组这道题的思路也很清晰,看到题直接想到滑动窗口,有了模板之后,需要考虑的就是怎么找到窗口中的最大最小值,那么在窗口的变化中,如果是有序的,那头和尾就是最大和最小值,c++中的multiset实现了这一点class Solution {public: int longestSubarray(vector<int>& nums, int limit) { int left=0,right=0; int an

2021-02-21 17:48:44 128

原创 leetcode697数组的度

697.数组的度这道题的算法很容易想到,第一次遍历原数组得到数组的度,这个用哈希表很容易实现,接着要思考的就是怎么把子数组的位置表示出来,我自己想的是在用哈希表求数组的度的同时把每个key左右位置记录在同一个哈希表中,但是没想到怎么操作,就用了三个哈希表,分别为计数,左端和右端官方题解的c++解法是记录在同一个哈希表中,value的值是vector<int>,分别为数量左端和右端,值得学习第二次遍历哈希表cnt,在cnt中key出现的次数(对应的value)等于degree时,表示子数组和

2021-02-20 16:13:58 50

原创 leetcode765情侣牵手

765.情侣牵手终于自己写出来一次了。。。思路就是把一对情侣看作图的一个点,相邻座位的非情侣(不连通)要连通,一趟遍历后,并查集的连通分量的数量是非情侣的数量class UnionFind{public: vector<int> parent; vector<int> size; int n; int setCount;//连通分量数目public: UnionFind(int _n):n(_n),setCount(_n),paren

2021-02-14 10:34:05 58

原创 leetcode119杨辉三角II

把杨辉三角在纸上排列成这样11 11 2 11 3 3 11 4 6 4 1就很容易观察到数组的规律class Solution {public: vector<int> getRow(int rowIndex) { vector<int>row(rowIndex+1); row[0]=1; for(int i=1;i<rowIndex+1;i++){ for(int j=i;j&g

2021-02-12 10:03:24 93

原创 leetcode567字符串的排列

567.字符串的排列因为只有小写字母,所以用长度为26的数组保存各个字母的数量很方便class Solution {public: bool checkInclusion(string s1, string s2) { //滑动窗口,窗口长度为s1的长度 vector<int>cnt1(26),cnt2(26);//保存s1,s2中各个字母的数量 if(s1.size()>s2.size())return false;

2021-02-10 10:53:21 82 1

原创 leetcode665非递减数列

这道题的关键在于最多修改一个数字用cnt计数修改的次数,超过一次则退出4,2,3-1,4,2,32,3,3,2,4我们通过分析上面三个例子可以发现,当我们发现后面的数字小于前面的数字产生冲突后,[1]修改前面较大的数字[2]修改后面较小的数字判断修改那个数字其实跟再前面一个数(i-2)的大小有关系,如果再前面的数不存在(i==0),直接修改前面的数字为当前的数字2即可。而当再前面的数字存在,并且小于当前数时,比如例子2,-1小于2,我们还是需要修改前面的数字4为当前数字2;如果再前面的

2021-02-07 11:23:02 106

原创 leetcode1208尽可能使字符串相等

1208.尽可能使字符串相等一道很简单的滑动窗口问题思路是,先找到|s[i]-t[i]|<=cost的位置,定为初始的起点和终点,然后向后遍历,如果把新的塞进来,则终点位置加一,如果不能则窗口向后滑动,因为要找最大的,因此只考虑窗口扩大class Solution {public: int equalSubstring(string s, string t, int maxCost) { int n=s.size(); if(n==0)return 0;

2021-02-05 08:49:44 116

原创 leetcode839相似字符串组

839.相似字符串组每个字符串看作一个点,两个字符串之间是否相似看作边,则本题转化为图中有多少连通分量//并查集模板class UnionFind{ vector<int>parent; vector<int>size; int n; int setCount;public: UnionFind(int _n):n(_n),setCount(_n),parent(_n),size(_n,1){ iota(parent.b

2021-01-31 12:47:05 87

原创 leetcode778水位上升的泳池中游泳

778.水位上升的泳池中游泳还是并查集的题,不过和昨天的很类似这道题就是用并查集合并点,找到最短的路径中权值最大的点的权class UnionFind{public: vector<int>parent; vector<int>size; int n;//点数 int setCount;//连通分量数public: UnionFind(int _n):n(_n),setCount(_n),parent(_n),size(_n,1){

2021-01-30 11:25:21 125

原创 leetcode397整数替换

class Solution {public: int integerReplacement(int n) { int ans=0; long m = n; while(m!=1) { if((m&1)==0)m>>=1;//偶数 else if(m==3)m-=1;//3特殊减1更快 else if((m&3)==3)m+=1;//其

2020-12-24 16:40:26 115 2

原创 leetcode513找树左下角的值

class Solution {public: int findBottomLeftValue(TreeNode* root) { if(root==nullptr)return -1; queue<TreeNode*>my_queue; my_queue.push(root); TreeNode* p; while(!my_queue.empty()) { p =

2020-12-24 15:34:15 68

原创 面试题08.05递归乘法

面试题08.05递归乘法class Solution {public: int multiply(int A, int B) { if(A==0||B==0)return 0; if(B==1)return A; if(B&1)return A+multiply(A,B-1);//B是奇数 return multiply(A<<1,B>>1);//B是偶数 }};...

2020-12-24 14:51:35 90

原创 leetcode135分发糖果

135.分发糖果class Solution: def candy(self, ratings: List[int]) -> int: n = len(ratings) candynum = [1]*n#每个孩子最少一个糖果 for i in range(1,n):#正序遍历一次 if ratings[i]>ratings[i-1]:#这个孩子比前一个分数高 candynum[i]=

2020-12-24 10:11:38 89

原创 leetcode面试题 08.06. 汉诺塔问题

class Solution {public: void hanota(vector<int>& A, vector<int>& B, vector<int>& C) { move(A.size(),A,B,C); } void move(int n,vector<int>&from,vector<int>&via,vector<int>&to)

2020-12-24 10:09:00 100

原创 leetcode714买卖股票的最佳时机含手续费

class Solution: def maxProfit(self, prices: List[int], fee: int) -> int: f = [0,-prices[0]]#不持股,持股 for i in range(2,len(prices)+1): f[0] = max(f[0],f[1]+prices[i-1]-fee)#不持股的状态:i不持股,i-1买入i卖出 f[1] = max(f[1],f[

2020-12-17 16:47:43 57

原创 leetcode121买卖股票的最佳时机

class Solution: def maxProfit(self, prices: List[int]) -> int: if len(prices)<2: return 0 max_ = prices[1]-prices[0] cur_min = prices[0] for i in range(len(prices)): max_ = max(max_,prices[i

2020-12-17 15:47:00 96

原创 leetcode204计数质数

204.计数质数这道题,第一感觉是暴力求解,,,,然而超时,,,,改成range(2,(n+1)//2)依然超时,,,,range(2,int(math.sqrt(n))+1)依然超时,,,只能看题解了class Solution: def countPrimes(self, n: int) -> int: if n < 3: return 0 is_prime = [1]*n is_prime[0],is_pr

2020-12-03 12:57:55 63

原创 leetcode402移掉k位数字

402.移掉k位数字class Solution: def removeKdigits(self, num: str, k: int) -> str: stack = []# 用来保存数 lenth = len(num) - k# 剩余数的长度 for digit in num: while k>0 and stack and stack[-1]>digit:#要去除的条件:未完成去除,stack不空,末位大

2020-12-02 10:59:39 60

原创 leetcode50.Pow(x,n)

50.Pow(x,n)class Solution: def myPow(self, x: float, n: int) -> float: if not n:# 判断指数为零 return 1 xsign = 1 if x > 0 else -1 nsign = 1 if n > 0 else -1 sign = 1 if xsign > 0 or xsign < 0 and n

2020-12-02 00:11:05 68

原创 leetcode34在排序数组中查找元素的第一个和最后一个位置

34.在排序数组中查找元素的第一个和最后一个位置这个题,看到时间复杂度O(logn)就想到了二分查找,最后因为数组越界卡了半个小时????class Solution: def searchRange(self, nums: List[int], target: int) -> List[int]: if not nums: return [-1,-1] if nums[0] == target and len(nums)==1:

2020-12-01 22:32:42 45

原创 leetcode29两数相除

29.两数相除class Solution: def divide(self, dividend: int, divisor: int) -> int: sign = 1 if dividend>0 and divisor>0 or dividend<0 and divisor<0 else -1#结果的符号 dividend = dividend if dividend > 0 else -dividend di

2020-12-01 22:25:53 90

原创 leetcode35搜索插入位置

35.搜索插入位置class Solution: def searchInsert(self, nums: List[int], target: int) -> int: low,high = 0,len(nums)-1 while low <= high: mid = (low+high)//2 if target==nums[mid]: return mid

2020-12-01 22:23:41 72

空空如也

空空如也

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

TA关注的人

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