自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

木土木土木土的日常

迷茫的时候,要选择难走的那条路。(评论私信不能及时回可联系654947091)

  • 博客(149)
  • 收藏
  • 关注

原创 近期随笔,迎接毕业,拥抱工作

选调

2023-02-01 15:24:31 206

原创 【9月打卡~Leetcode每日一题】437. 路径总和 III(难度:中等)

437. 路径总和 III树的前缀和 时间复杂度O(N)/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), left(nullptr), right(nullptr) {} * TreeNode(int x) : val(x), left

2021-09-28 10:29:03 214

原创 【9月打卡~Leetcode每日一题】502.IPO(难度:困难)

这道题不用考虑负收益问题,根据大根堆,每次取出收益最大的项目即可在上条操作的前提是,手头资金足够,因此可以不用一次性造出大根堆,每次根据手上的资金,将目前可接手的项目加入大根堆。时间复杂度O(nlogn + klogn)class Solution {public: int findMaximizedCapital(int k, int w, vector<int>& profits, vector<int>& capital) { .

2021-09-08 15:17:12 229

原创 【9月打卡~Leetcode每日一题】面试题 17.14. 最小K个数(难度:中等)

面试题 17.14. 最小K个数设计一个算法,找出数组中最小的k个数。以任意顺序返回这k个数均可。方法一:快排取前k时间复杂度O(nlogn)方法二:遍历+二分查找+维护一个有序小数组【超时】时间复杂度O(nklogk)class Solution {public: vector<int> smallestK(vector<int>& arr, int k) { vector ret(arr.begin(), arr.begin() +

2021-09-03 10:42:18 135

原创 【7月打卡~Leetcode每日一题】剑指 Offer 52. 两个链表的第一个公共节点(难度:简单)

思路:假设A链表的独立长度为a,公共长度为c(c可能为0)B链表的独立长度为b,公共长度为c如果两链表有公共节点,则一定满足 a+c+b = b+c+a若无公共节点,则一定满足 a+b = b+a在遍历时可以令两个指针分别遍历A链表和B链表,如果没碰到公共节点就交换遍历,如果两者同时遍历到nullptr,则说明是 a+b = b+a这个情况,如果同时遍历到一个公共节点,则说明是 a+c+b = b+c+a这个情况,同时要注意的是,还有一种情况是a = b,此时在 a+c+b = b+c+a 这个公.

2021-07-21 10:10:01 88

原创 C++一些库函数

cstring库#include <cstring>// stoi函数,可以将srting字符串,以_Base基准,转换为十进制数// 需要注意的是,如果碰到了以_Base无法判断的字符,则会终止int main(){ string s1 = "10001015"; int a = stoi(s1,nullptr,2); //_Base = 10,这里的2指的是二进制 cout << a << endl; return.

2021-06-05 20:42:58 77

原创 python和c++的一些运算的区别(小细节)

python 的 // 除法是向下取整例如: 1//10 = 0 -1 //10 = -1而C、JAVA、C++ 的 / 除法是向0取整上例:二式皆为0

2021-05-03 09:10:53 248

原创 关于新笔记本到手至正式使用前的一点建议(以Lenovo air14plus为例)

关于新笔记本到手至正式使用前的一点建议(以Lenovo air14plus为例)1. 开箱2. 机器开机激活(一般情况下在最后一步激活,见下文)3. 机器硬件检测3点5. GPU驱动安装4. 联网激活5. 更新驱动(可更可不更)6. 预装软件卸载7. 系统分盘8. 桌面图标添加以及桌面文件夹迁移9. 新软件安装以及对应的缓存存放10.杂七杂八的设置其他的,想起来再更今天新到手了一款笔记本,看网上很多小白问了很多问题,在这里做出一些解答;除此之外,前段时间帮同学看毕设(也没帮上什么忙)的时候看到他们的电脑都

2021-05-02 17:27:31 4128 2

原创 “Microsoft Visual C++ 14.0 is required.”(包含安装包丢失或损坏的解决方法)

可以先下载 Microsoft Visual C++ Build Tools按照Microsoft Visual C++ 14.0 is required 的亲测最全解决方案(包括安装包丢失或损坏解决方法)来解决但是我按照其方法无法解决,干脆直接下载Microsoft Build Tools for Visual Studio 2019.Build Tools中选择C++桌面开发,右边只选MSVC v142 和 Windows 10 SDK(前两项)即可解决...

2021-04-22 16:14:08 9793 56

原创 cannot import name ‘amp‘ from “apex“ / from apex import amp

网上介绍的apex-amp导入方式:不要pip install apex使用$ git clone https://github.com/NVIDIA/apex$ cd apex$ pip install -v --no-cache-dir --global-option="–pyprof" --global-option="–cpp_ext" --global-option="–cuda_ext" ./安装,但是我安装完之后在apex文件夹可以/>> python3/>

2021-03-20 13:39:38 7381 3

原创 【3月打卡~Leetcode每日一题】115. 不同的子序列(难度:困难)

115. 不同的子序列给定一个字符串 s 和一个字符串 t ,计算在 s 的子序列中 t 出现的个数。字符串的一个 子序列 是指,通过删除一些(也可以不删除)字符且不干扰剩余字符相对位置所组成的新字符串。(例如,“ACE” 是 “ABCDE” 的一个子序列,而 “AEC” 不是)题目数据保证答案符合 32 位带符号整数范围。思路:一维动态规划dp[i]表示从t字符串i位置往后能形成的子串数量class Solution: def numDistinct(self, s: str, t:

2021-03-17 10:19:44 92

原创 【Leetcode第232场周赛】score:17 Time: 1:14:47 Rank:394 / 4801

5701. 仅执行一次字符串交换能否使两个字符串相等(3分,通过率:3610/8247)给你长度相等的两个字符串 s1 和 s2 。一次 字符串交换 操作的步骤如下:选出某个字符串中的两个下标(不必不同),并交换这两个下标所对应的字符。如果对 其中一个字符串 执行 最多一次字符串交换 就可以使两个字符串相等,返回 true ;否则,返回 false 。思路:遍历,如果不同的位数不为0或2,则返回false,如果有两位不同,再判断是否两个交换后可以使字符串相等class Solution:

2021-03-14 13:55:45 185 1

原创 【3月打卡~Leetcode每日一题】331. 验证二叉树的前序序列化(难度:中等)

331. 验证二叉树的前序序列化思路:等价代换的想法,考虑叶子节点和其父节点,如果表述正确,则可以用一个叶子节点代替,即:图例中的右下角,6 # # 可以用 #代替,又由于是前序遍历,所以如果可以序列化的话,则可以用 数字 # #一直替换,到最后只剩一个根节点的 #,同理如果是中序遍历,则是 # 数字 # ,后序遍历则是 # # 数字使用堆栈进行消消乐即可class Solution: def isValidSerialization(self, preorder: str) -> b

2021-03-12 10:13:08 81

原创 【3月打卡~Leetcode每日一题】227. 基本计算器 II(难度:中等)

227. 基本计算器 II给你一个字符串表达式 s ,请你实现一个基本计算器来计算并返回它的值。整数除法仅保留整数部分。s 由整数和算符 (’+’, ‘-’, ‘*’, ‘/’) 组成,中间由一些空格隔开同昨天,用栈的思想,不同的是,在处理连续的乘除时需要特判class Solution: def calculate(self, s: str) -> int: num,res,sign = 0,0,1 stack = [] for

2021-03-11 16:15:47 104

原创 【3月打卡~Leetcode每日一题】224. 基本计算器(难度:困难)

224. 基本计算器给你一个字符串表达式 s ,请你实现一个基本计算器来计算并返回它的值。s 由数字、’+’、’-’、’(’、’)’、和 ’ ’ 组成用栈的思想,如果遇到括号,优先处理括号内的内容,将之前处理的内容储存到栈中class Solution: def calculate(self, s: str) -> int: res,num,sign = 0,0,1 stack = [] for c in s:

2021-03-11 16:10:38 233

原创 【2月打卡~Leetcode每日一题】424. 替换后的最长重复字符(难度:中等)

424. 替换后的最长重复字符给你一个仅由大写英文字母组成的字符串,你可以将任意位置上的字符替换成另外的字符,总共可最多替换 k 次。在执行上述操作后,找到包含重复字母的最长子串的长度。注意:字符串长度 和 k 不会超过 104。思路:双指针,维护两个数组,一个统计当前区域的字母频率,一个维护之前遍历过的区域的变化点,如果当前区域的字母频率不满足题意,则将左指针添加至第二个数组中维护的第一个变化点,直至右指针到末尾class Solution: def characterReplacem

2021-02-02 18:10:49 113

原创 【Leetcode第226场周赛】score:18 Time: 2:04:05 Rank:461 / 4033

5654. 盒子中小球的最大数量(3分,通过率:2830/4026)你在一家生产小球的玩具厂工作,有 n 个小球,编号从 lowLimit 开始,到 highLimit 结束(包括 lowLimit 和 highLimit ,即 n == highLimit - lowLimit + 1)。另有无限数量的盒子,编号从 1 到 infinity 。你的工作是将每个小球放入盒子中,其中盒子的编号应当等于小球编号上每位数字的和。例如,编号 321 的小球应当放入编号 3 + 2 + 1 = 6 的盒子,而编

2021-01-31 15:48:56 102

原创 【1月打卡~Leetcode每日一题】778. 水位上升的泳池中游泳(难度:困难)

778. 水位上升的泳池中游泳在一个 N x N 的坐标方格 grid 中,每一个方格的值 grid[i][j] 表示在位置 (i,j) 的平台高度。现在开始下雨了。当时间为 t 时,此时雨水导致水池中任意位置的水位为 t 。你可以从一个平台游向四周相邻的任意一个平台,但是前提是此时水位必须同时淹没这两个平台。假定你可以瞬间移动无限距离,也就是默认在方格内部游动是不耗时的。当然,在你游泳的时候你必须待在坐标方格里面。你从坐标方格的左上平台 (0,0) 出发。最少耗时多久你才能到达坐标方格的右下平台

2021-01-30 12:01:51 233

原创 【1月打卡~Leetcode每日一题】1579. 保证图可完全遍历(难度:困难)

1579. 保证图可完全遍历Alice 和 Bob 共有一个无向图,其中包含 n 个节点和 3 种类型的边:类型 1:只能由 Alice 遍历。类型 2:只能由 Bob 遍历。类型 3:Alice 和 Bob 都可以遍历。给你一个数组 edges ,其中 edges[i] = [typei, ui, vi] 表示节点 ui 和 vi 之间存在类型为 typei 的双向边。请你在保证图仍能够被 Alice和 Bob 完全遍历的前提下,找出可以删除的最大边数。如果从任何节点开始,Alice 和 B

2021-01-27 12:03:37 124

原创 【Jupyter Notebook】关于Jupyter Notebook字体和高亮特效的css文件更改

更改前:默认格式更改后:首先找到路径C:\Users\x\.jupyterx为你电脑的用户名我的路径是:C:\Users\Dinosaurcity\.jupyter在这个路径下新建一个文件夹custom(如果有,则不必新建)然后进入custom文件夹,新建txt文件然后更名为custom.css(如果有,则不必新建)ps:记得选中图中改位置,不然可能无法更改成css文件【如果没点√,然后把txt文件命名为custom.css那么,你的文件其实是custom.css.txt,本质上是

2021-01-24 17:49:59 1355 3

原创 【Leetcode第225场周赛】score:18 Time: 1:28:26 Rank:167/3851

5661. 替换隐藏数字得到的最晚时间(3分,通过率:2885/7650)给你一个字符串 time ,格式为 hh:mm(小时:分钟),其中某几位数字被隐藏(用 ? 表示)。有效的时间为 00:00 到 23:59 之间的所有时间,包括 00:00 和 23:59 。替换 time 中隐藏的数字,返回你可以得到的最晚有效时间。分类讨论即可,要注意的是隐藏数字的位置与取得的最大数有关class Solution: def maximumTime(self, time: str) -&gt

2021-01-24 17:37:45 181

原创 【1月打卡~Leetcode每日一题】1319. 连通网络的操作次数(难度:中等)

1319. 连通网络的操作次数用以太网线缆将 n 台计算机连接成一个网络,计算机的编号从 0 到 n-1。线缆用 connections 表示,其中 connections[i] = [a, b] 连接了计算机 a 和 b。网络中的任何一台计算机都可以通过网络直接或者间接访问同一个网络中其他任意一台计算机。给你这个计算机网络的初始布线 connections,你可以拔开任意两台直连计算机之间的线缆,并用它连接一对未直连的计算机。请你计算并返回使所有计算机都连通所需的最少操作次数。如果不可能,则返回

2021-01-23 20:33:33 76

原创 【1月打卡~Leetcode每日一题】721. 账户合并(难度:中等)

721. 账户合并给定一个列表 accounts,每个元素 accounts[i] 是一个字符串列表,其中第一个元素 accounts[i][0] 是 名称 (name),其余元素是 emails 表示该账户的邮箱地址。现在,我们想合并这些账户。如果两个账户都有一些共同的邮箱地址,则两个账户必定属于同一个人。请注意,即使两个账户具有相同的名称,它们也可能属于不同的人,因为人们可能具有相同的名称。一个人最初可以拥有任意数量的账户,但其所有账户都具有相同的名称。合并账户后,按以下格式返回账户:每个账户的

2021-01-18 23:57:40 118 1

原创 【1月打卡~Leetcode每日一题】947. 移除最多的同行或同列石头(难度:中等)

947. 移除最多的同行或同列石头n 块石头放置在二维平面中的一些整数坐标点上。每个坐标点上最多只能有一块石头。如果一块石头的 同行或者同列 上有其他石头存在,那么就可以移除这块石头。给你一个长度为 n 的数组 stones ,其中 stones[i] = [xi, yi] 表示第 i 块石头的位置,返回 可以移除的石子 的最大数量。思路:使用并查集或DFS找连通域,同一个连通域最终肯定可以只剩下1个顶点,因此结果为n-连通域的个数class Solution: def removeS

2021-01-15 12:53:15 94

原创 【1月打卡~Leetcode每日一题】123. 买卖股票的最佳时机 III(难度:困难)

123. 买卖股票的最佳时机 III给定一个数组,它的第 i 个元素是一支给定的股票在第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你最多可以完成 两笔 交易。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。思路:使用一个三维数组,存储在i天买卖n次且手中是否存有股票的情况下的最大收益dp[i][j][k] ,其中i指天数,j指手中是否存有股票(存有为1,无为0),k指已经完成了k次交易(可取0、1、2)具体思路可参考之前的代码【重拾算法~Leetcode每日

2021-01-09 10:04:07 82

原创 【1月打卡~Leetcode每日一题】547. 省份数量(难度:中等)

547. 省份数量有 n 个城市,其中一些彼此相连,另一些没有相连。如果城市 a 与城市 b 直接相连,且城市 b 与城市 c 直接相连,那么城市 a 与城市 c 间接相连。省份 是一组直接或间接相连的城市,组内不含其他没有相连的城市。给你一个 n x n 的矩阵 isConnected ,其中 isConnected[i][j] = 1 表示第 i 个城市和第 j 个城市直接相连,而 isConnected[i][j] = 0 表示二者不直接相连。返回矩阵中 省份 的数量。方法一:DFSc

2021-01-07 13:49:14 507

原创 【1月打卡~Leetcode每日一题】86. 分隔链表(难度:中等)

86. 分隔链表给你一个链表和一个特定值 x ,请你对链表进行分隔,使得所有小于 x 的节点都出现在大于或等于 x 的节点之前。你应当保留两个分区中每个节点的初始相对位置。思路:遍历注意事项:链表题,一定一定自己画一下图,不然很容易出错# Definition for singly-linked list.# class ListNode:# def __init__(self, x):# self.val = x# self.next = No

2021-01-03 19:07:48 114

原创 【12月打卡~Leetcode每日一题】330. 按要求补齐数组(难度:困难)

330. 按要求补齐数组给定一个已排序的正整数数组 nums,和一个正整数 n 。从 [1, n] 区间内选取任意个数字补充到 nums 中,使得 [1, n] 区间内的任何数字都可以用 nums 中某几个数字的和来表示。请输出满足上述要求的最少需要补充的数字个数。思路:将nums中所有数字可组合成的数字表示出来,然后从1到n遍历,如果无法表示,则ans+1,随后将所有已可表示的数字+当前的数字(全部可以表示)class Solution: def minPatches(self, num

2020-12-29 17:01:09 115

原创 【Leetcode第221场周赛】score:12 Time: 1:17:30 Rank:434/3397

5637. 判断字符串的两半是否相似(3分,通过率:2668/3268)给你一个偶数长度的字符串 s 。将其拆分成长度相同的两半,前一半为 a ,后一半为 b 。两个字符串 相似 的前提是它们都含有相同数目的元音(‘a’,‘e’,‘i’,‘o’,‘u’,‘A’,‘E’,‘I’,‘O’,‘U’)。注意,s 可能同时含有大写和小写字母。如果 a 和 b 相似,返回 true ;否则,返回 false 。class Solution: def halvesAreAlike(self, s: s

2020-12-27 17:05:21 153

原创 【12月打卡~Leetcode每日一题】85. 最大矩形(难度:困难)

85. 最大矩形给定一个仅包含 0 和 1 、大小为 rows x cols 的二维二进制矩阵,找出只包含 1 的最大矩形,并返回其面积.思路:该题思路其实是84题的升级版,只需将每行做处理,传递到84题的api即可,代码参考【12月打卡~Leetcode每日一题前置知识点】84. 柱状图中最大的矩形(难度:困难)class Solution: def maximalRectangle(self, matrix: List[List[str]]) -> int: de

2020-12-26 13:17:28 211

原创 【12月打卡~Leetcode每日一题前置知识点】84. 柱状图中最大的矩形(难度:困难)

84. 柱状图中最大的矩形给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。求在该柱状图中,能够勾勒出来的矩形的最大面积。例如:思路:两次遍历,使用单调栈得出该高度的左右边界,然后求最大面积class Solution: def largestRectangleArea(self, heights: List[int]) -> int: if not heights: return 0

2020-12-26 12:05:52 168 2

原创 【12月打卡~Leetcode每日一题】135. 分发糖果(难度:困难)

135. 分发糖果老师想给孩子们分发糖果,有 N 个孩子站成了一条直线,老师会根据每个孩子的表现,预先给他们评分。你需要按照以下要求,帮助老师给这些孩子分发糖果:1.每个孩子至少分配到 1 个糖果。2.相邻的孩子中,评分高的孩子必须获得更多的糖果。那么这样下来,老师至少需要准备多少颗糖果呢首先每个孩子给1个糖果,即可满足条件1,对于条件2,执行两次遍历即可思路:顺序遍历,满足该孩子比左边孩子拿到的多(如果评分高),逆序遍历,在满足前者的基础上,满足该孩子比右边的孩子拿到的多(如果评分高)

2020-12-24 10:42:12 149

原创 【12月打卡~Leetcode每日一题】103. 二叉树的锯齿形层序遍历(难度:中等)

103. 二叉树的锯齿形层序遍历给定一个二叉树,返回其节点值的锯齿形层序遍历。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。本质上还是中序遍历,只要在遍历的时候使用标记位翻转子数组即可# Definition for a binary tree node.# class TreeNode:# def __init__(self, x):# self.val = x# self.left = None# s

2020-12-22 09:38:20 119

原创 【Leetcode第220场周赛】score:12 Time: 2:00:51 Rank:710/3690

5629. 重新格式化电话号码(3分,通过率:2550/3868)class Solution: def reformatNumber(self, number: str) -> str: ans = "" count = 0 for i in number: if i==" " or i=="-": continue else:

2020-12-20 14:58:44 88

原创 【12月打卡~Leetcode每日一题】389. 找不同(难度:简单)

389. 找不同给定两个字符串 s 和 t,它们只包含小写字母。字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。请找出在 t 中被添加的字母。这道题虽然是个简单题,但是有个很有意思的解法,我第一次做是用的hash表存储,然后遍历hash表的values值,找到为奇数的那个,题解给了个更好的做法,那就是异或异或:· a异或a = 0· 0异或a = a他主要用到了上述两点class Solution: def findTheDifference(self, s

2020-12-18 11:54:10 134

原创 【12月打卡~Leetcode每日一题】738. 单调递增的数字(难度:中等)

738. 单调递增的数字给定一个非负整数 N,找出小于或等于 N 的最大的整数,同时这个整数需要满足其各个位数上的数字是单调递增。(当且仅当每个相邻位数上的数字 x 和 y 满足 x <= y 时,我们称这个整数是单调递增的。)思路:从右往左扫描,如果当前位置的数比前一位小,则将前一位数减一,后面的数全部置9class Solution: def monotoneIncreasingDigits(self, N: int) -> int: st = str(N

2020-12-15 12:27:09 103

原创 【12月打卡~Leetcode每日一题】49. 字母异位词分组(难度:中等)

49. 字母异位词分组给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。思路:异位词在排序后的结果一定是一致的,因此可以根据排序结果存入hash表,遍历hash表得到结果class Solution: def groupAnagrams(self, strs: List[str]) -> List[List[str]]: dic = collections.defaultdict(list) for st in s

2020-12-14 15:07:56 121

原创 【12月打卡~Leetcode每日一题】376. 摆动序列(难度:中等)

376. 摆动序列思路:模拟遇到不是摆动的数对,直接跳到下一个数对即可。需要注意的是,特判一下数对中两值相同时的情况class Solution: def wiggleMaxLength(self, nums: List[int]) -> int: n = len(nums) if n<2 : return n ans,k = 2,-1 for i in range(n-1): if nu

2020-12-12 09:39:49 104

原创 【12月打卡~Leetcode每日一题】649. Dota2 参议院(难度:中等)

649. Dota2 参议院思路:循环队列模拟,当某一阵营人数为0截止class Solution: def predictPartyVictory(self, senate: str) -> str: counter = collections.Counter(senate) r,d = counter["R"],counter["D"] queue = collections.deque(senate) while(r

2020-12-11 11:10:16 103

原创 【12月打卡~Leetcode每日一题】861. 翻转矩阵后的得分(难度:中等)

861. 翻转矩阵后的得分有一个二维矩阵 A 其中每个元素的值为 0 或 1 。移动是指选择任一行或列,并转换该行或列中的每一个值:将所有 0 都更改为 1,将所有 1 都更改为 0。在做出任意次数的移动后,将该矩阵的每一行都按照二进制数来解释,矩阵的得分就是这些数字的总和。返回尽可能高的分数。思路:贪心思想,分两步①:利用行翻转保证每行的首个数字为1②:利用列翻转(从第二列开始)保证每列的1比0多时间复杂度O(mn)空间复杂度O(1)class Solution: def

2020-12-07 09:50:28 88 1

空空如也

空空如也

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

TA关注的人

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