自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 问答 (3)
  • 收藏
  • 关注

原创 LeetCode每日一题刷题记录1305.两颗二叉搜索树中的所有元素

这个题学过二叉搜索数的话就很简单,二叉搜索数有这么一个特性,左子树中所有元素小于根节点值,右子树中所有元素大于根节点,因此,对其中序遍历即可得到有序序列,这道题给了两颗树,对其分别中序遍历再将得到的两序列合并即可class Solution {public: vector<int> nums; void preoder(TreeNode* root) { if (root == nullptr) return;

2022-05-01 22:06:59 179

原创 LeetCode每日一题刷题记录908.最小差值I

今天这个题非常简单,看完题目后我的第一想法就是找最大值和最小值它们之间的差值再减去二倍的k,若该值大于0则返回该值否则返回0 。其实这样非常直观的想法是非常合理的,因为数组中的任何数都可以加上[-k, k]中的任何一个数,这样只需要将max减去k,min加上k,再将二者相减得到的一定就是操作后的最小差值class Solution{public: int smallestRangeI(vector<int>& nums, int k) { in

2022-04-30 21:15:33 68

原创 LeetCode每日一题刷题记录417.太平洋大西洋水流问题

今天这个题我是题目都看了老半天才给看明白,要找到能够同时流向太平洋和大西洋的区域,然后我也不知道脑子怎么想的,我就觉得只有左下角和右上角的点能够同时流向太平洋和大西洋,然后我就想那只要找到能够流向这两个点的区域就好了,那我就只需要对这两个点深度优先或者广度优先按照“水往高处流”搜索即可找到所有点,为了防止重复利用一个数组记录搜索过的点即可,写完过后一对答案傻了,如果能够同时通向左上方边缘的点和右下方边缘的点也是可以的呀!不过还好,修改起来倒也不算太难,要用俩数组分别记录到达太平洋和大西洋的点,还有就是要遍历

2022-04-27 20:09:49 92

原创 LeetCode每日一题刷题记录883.三维形体投影面积

今天看完这个题目其实一开始我是懵逼的,有点茫然,但是仔细一想其实也就是找到每一行每一列的最大值,然后我又想,那要是每一行的列数不一致,便利数组时岂不是很容易越界?然后我一看输入范围,好家伙,行数等于列数等于n,这可就太简单辣,那我直接定义三个变量分别记录顶部左部前部投影面积,定义两个变量去记录当前遍历的行和列的最大值,遍历一次求个和不就完事了,代码如下class Solution {public: int projectionArea(vector<vector<int>

2022-04-26 22:03:45 93

原创 LeetCode每日一题刷题记录398.随机数索引

首先看完题目后我首先想到的就是利用哈希表记录每个数对应的索引,然后再通过随机数返回一个随机的下标,非常简单的做法,但是我马上又发现题目警告我 “数组大小可能非常大。 使用太多额外空间的解决方案将不会通过测试。”,害,但是不管了,想都想了先试一下吧,嘿,没想到居然通过了,就是数据惨不忍睹,时间复杂度和空间复杂度都为O(n),好嘛,看下官方题解,没想到官方题解第一种方法也是哈希表,直接看第二种方法,叫鱼塘抽样,...

2022-04-25 20:00:21 60

原创 LeetCode每日一题刷题记录868.二进制间距

简单题,我的思路也非常简单,就是先设定一个记录值cur以及一个答案值ans,然后对给定值不断模2,如果为1则将cur与ans比较,ans记录最大值,然后将cur清空,如果为0则说明该位置为0,对距离cur加一,需要注意的是,该方法一旦遇到0就会对cur加1,如果一开始的值不是1比如说某个数的二进制表示为1010000,则会得到一个错误的解4,因此在开始之前我还需要先定位第一个1的位置再继续遍历,以下为代码实现class Solution {public: int binaryGap(int

2022-04-24 10:51:43 429

原创 LeetCode每日一题刷题记录587.安装栅栏

看完题目毫无思路的一道题,想了想醉后还是看了官方题解,看完过后才发现这原来是个新的知识点,这类问题叫做包凸问题,题解里有三种方法分别是jarvis算法,andrew算法以及graham算法,我太菜了目前只写出来了jarvis算法,先说一下这个算法的大致原理首先我可以先找到这堆树中最左边或者最右边的(最上最下应该也行)树(这里假设选取的是最左边的树),这棵树一定是在栅栏中的,然后我可以想象一根绕在树上的绳子如果想要将所有树都包进去的话,则这根绳子包绕到的下一颗树一定是顺时针方向最左或最右的树如图选取的就是

2022-04-23 20:26:57 1350

原创 LeetCode每日一题刷题记录396.旋转函数

看完题目第一想法是写一个函数用以计算f(i),然后迭代地去计算每一个f(i),ans用以记录最大值,最后返回即可,但是这样的做法时间复杂度为O(n^2),导致“一顿操作猛如虎,一看击败百分五”,然后我便毫不犹豫地点开了官方题解,果然官方不会像我一样傻,其思路是推导f(i)与f(i - 1)的关系,并利用这样的关系去计算后面的f(n), 这样得到的算法时间复杂度就为O(n),按着官方的思路,我自己去推导了这个关系式,提交过后果然好多了。class Solution { int len;

2022-04-22 18:24:11 630

原创 LeeCode每日一题刷题记录824.山羊拉丁文

难得一遇的我看完就有思路的题呀,既然要对每个单词都进行处理的话我就应该先获取每个单词,如何获取每个单词?几天前我做过一道题也是要获取每个单词,其中一个大佬的方法是利用字符串流stringstream获取,简单快捷,我就不用再去一个一个扫描字符进行判断了,而获取所有单词后的操作就简单了,先判断第一个字母是否为元音字母,这个可以利用unordered_set存储所有元音字母(包括大写字母)用以判断,若不是元音字母则要想将第一个字母移到最后的位置再进行统一的加“ma”和“a“的操作,最后再将所有单词链接成句子返回

2022-04-21 18:54:55 59

原创 LeetCode每日一题刷题记录388.文件的最长绝对路径

leetcode388 文件的最长绝对路径 回溯

2022-04-20 22:46:35 56

空空如也

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

TA关注的人

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