自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 1823. 找出游戏的获胜者

1823. 找出游戏的获胜者思路:用向量存储成员编号进入循环,只剩一位成员时,break根据题意每次移除一个人上一次的坐标加上每次移动个数减去1(上一次结束时的下一个坐标是这一次的开始)模剩的人的数量需要考虑 mod = -1的场景移除失败者代码:class Solution {public: int findTheWinner(int n, int k) { vector<int> friends(n); for(i

2022-05-04 23:51:48 915

原创 591. 标签验证器

591. 标签验证器思路:这道题参考了大佬的写法,涉及到了两个函数substr(),find(“代查找字符串”, 起始位置),我认为大佬的substr()函数的提示有点问题,又查了一下果然是起始位置加上拷贝的字符串长度.substr(size_type _Off = 0,size_type _Count = npos)一种构造string的方法形式 : s.substr(pos, len)返回值: string,包含s中从pos开始的len个字符的拷贝(pos的默认值是0,len的默认值是s

2022-05-02 22:34:32 99

原创 第九天《递归》

文章目录文章目录文章目录今日知识总结题目分析今日收获:今日疑问:资料链接博客链接今日知识总结递归:函数自己调用自己实现一个函数,函数会自己调用自己,每次调用传参不同一定要有递归出口,满足什么条件后return,不然就会死递归,造成栈溢出的问题根据递推式补充递归调用内容递归调用阶乘阶乘定义:n!=n∗(n−1)∗(n−2)∗(n−3)...∗3∗2∗1n! = n * (n - 1) * (n - 2) *(n -3)...*3 * 2 * 1n!=n∗(n−1)∗(n−2)∗

2022-05-01 22:24:35 89

原创 第八天《二级指针》

文章目录文章目录文章目录今日知识总结题目分析今日收获:今日疑问:资料链接博客链接今日知识总结二级指针:一个指针引向另一个指针int x = 1;int *p = &x;int **q = &p;解引用:二级指针经过一次解引用,变成一级指针,一级指针再进行解引用,变成二级指针力扣中的二级指针:int ** func(int ** matrix, int matrixSize, int* matrixColSize, int * returnSize, int *

2022-05-01 22:23:30 105

原创 第七天《二维数组》

文章目录文章目录文章目录今日知识总结题目分析今日收获:今日疑问:资料链接博客链接今日知识总结矩阵:定义int a[3][4];int a[3][4] = { {5, 0, 2, 4}, {1, 3, 2, 7}, {4, 0, 0, 9},}int a[ ][4] = { {5, 0, 2, 4}, {1, 3, 2, 7}, {4, 0, 0, 9},}int a[100][4] = { {5, 0, 2, 4},

2022-05-01 22:22:31 164

原创 第六天《贪心》

文章目录文章目录文章目录今日知识总结题目分析今日收获:今日疑问:资料链接博客链接今日知识总结贪心的思想:总是作出当前看来最好的选择,不从整体上的最优进行考虑,局部最优解例子:对于一个全是正整数的数组,求两数相乘的最大乘积,那么一定是最大的和次大的乘积题目分析题目描述题目链接:https://leetcode-cn.com/problems/maximum-product-difference-between-two-pairs/思路:最大的两个数的乘积,减去最小的两个数的乘积

2022-05-01 22:21:19 146

原创 第五天《排序API》

文章目录文章目录文章目录今日知识总结题目分析今日收获:今日疑问:资料链接博客链接今日知识总结void qsort(void *base, size_t nitems,int (compare)(const void*,const void *)参数:base:指向排序数组的第一个指针nitems:由base指向的数组中的元素个数size:数组中的每个元素的大小,以字节为单位。compare :用来比较两个元素的函数,即函数指针(比较算法的回调函数)例子:int a[5]

2022-05-01 22:20:08 62

原创 第四天《指针》

文章目录文章目录文章目录今日知识总结题目分析今日收获:今日疑问:资料链接博客链接今日知识总结32位整型 int 占据4个字节,long long 占据8个字节,char占用1个字节指针:地址,最小地址:0,最大地址:0XFFFFFFFF指针的定义 datatype *p 取地址 int *p = &x(取地址符取x的地址), 即变量->地址数组的地址,数组的地址是连续的,所以第一个元素的地址可以用指针表示解引用:通过地址获取值, p代表地址,*p代表a的

2022-05-01 22:19:11 152

原创 94.二叉树的中序遍历

94. 二叉树的中序遍历题目链接:https://leetcode-cn.com/problems/binary-tree-inorder-traversal/思路:按照左节点 -> 根节点 -> 右节点的顺序遍历代码:/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; *

2022-05-01 22:17:25 37

原创 1305两颗二叉搜索树中的所有元素

1305. 两棵二叉搜索树中的所有元素题目链接:https://leetcode-cn.com/problems/all-elements-in-two-binary-search-trees/思路:知识点:中序遍历:先遍历左节点,在遍历根节点,最后遍历右节点知识点:二叉搜索树:当前结点的左子树的树小于当前节点数当前节点的右子树的树大于当前节点数左子树右子树自身也是二叉搜索树将两棵树进行中序遍历,两棵树的数组就都是从大到小有序的再将两个数组的结点进行比较加入答案数组

2022-05-01 22:09:27 504

原创 905. 按奇偶排序数组

905. 按奇偶排序数组题目链接:https://leetcode-cn.com/problems/sort-array-by-parity/思路:数组两头遍历,如果 nums[left] 和 nums[right]符合题目条件不符合条件就交换代码:class Solution {public: vector<int> sortArrayByParity(vector<int>& nums) { int left = 0,

2022-04-28 10:00:06 41

原创 417.太平洋大西洋水流问题

417. 太平洋大西洋水流问题题目链接:https://leetcode-cn.com/problems/pacific-atlantic-water-flow/思路:用深搜先找到能流入太平洋的位置,用一个数组储存用深搜先找到能流入大西洋的位置,用一个数组储存比较两个数组,找到既能流入太平洋又能流入大西洋的位置代码:static const int dirs[4][2] = {{-1, 0}, {1, 0}, {0, -1}, {0, 1}};class Solution

2022-04-28 09:58:13 74

原创 833三位形体投影面积

883. 三维形体投影面积题目链接:https://leetcode-cn.com/problems/projection-area-of-3d-shapes/思路:因为题目给的是n * n的网格,感觉还能简单一点俯视:计算存在方块位置的数量up,分两种情况,这个视角与方块数量无关,网格位置上只要有方块,up++侧视:这个位置是求x相同,每个x中y的最大值正视:这个位置是求y相同,每个y中x的最大值class Solution {public: int projecti

2022-04-27 09:31:25 52

原创 398随机数索引

398. 随机数索引​ 题目链接:https://leetcode-cn.com/problems/random-pick-index/​ 思路:用unordered_map寻出数组的下标,返回下标数组的随机值​ 代码:class Solution {public: unordered_map<int, vector<int>> m; Solution(vector<int>& nums) { for(int i = 0;

2022-04-26 10:10:01 35

原创 2.两数相加

2. 两数相加题目链接:https://leetcode-cn.com/problems/add-two-numbers/思路:创建一个新链表ans用于储存和,遍历l1,l2加和用 cnt判断进位,遍历ans链表,如果val >= 10则 cnt = true,val %= 10;上一步的最后一步是进行判断链表的最后一个节点能否仅进位,但是他没有下一个节点进行进位操作,所以我们需要加入一个新的节点,进行进位代码:/** * Definition for singly-l

2022-04-23 09:34:26 172

原创 824山羊拉丁文

824. 山羊拉丁文题目链接:https://leetcode-cn.com/problems/goat-latin/思路:用一个字符串数组储存每一个单词对每一个单词进行模拟操作代码:class Solution {public: string toGoatLatin(string sentence) { vector<string> s(150); string ans; int cnt = 0;

2022-04-21 23:31:35 41

原创 九日集训第三天《一维数组》

文章目录文章目录文章目录今日知识总结题目分析[33. 搜索旋转排序数组](https://leetcode-cn.com/problems/search-in-rotated-sorted-array/)[剑指 Offer II 069. 山峰数组的顶部](https://leetcode-cn.com/problems/B1IidL/)今日收获今日疑问:资料链接博客链接今日知识总结定义一维数组方式int a[7];//只是开辟出了空间int a[7] = {0, 1, 2, 3, 4, 5,

2022-04-20 21:54:56 110

原创 九日集训第二天《循环》

文章目录文章目录文章目录今日知识总结题目分析num[剑指 Offer 64. 求1+2+…+n](https://leetcode-cn.com/problems/qiu-12n-lcof/)今日收获:今日疑问:资料链接博客链接今日知识总结循环:循环初始表达式,循环条件表达式,循环执行表达式初始表达式:初始化表达式外置,初始化表达式内置条件表达式:表明结束循环的条件执行表达式:让循环逐渐不成立,可以省略,代码块里本身也可以加上此功能题目分析num剑指 Offer 64. 求1+2+…

2022-04-20 21:53:35 60

原创 821文件的最长路径

388. 文件的最长绝对路径题目链接:https://leetcode-cn.com/problems/longest-absolute-file-path/思路:据题意,文件夹或者文件用 \n来分割,文件的层次用 \t来分割用 \t来模拟这道题,用数组 f[100005]来记录层次,第0 层为0遍历字符串的每一个字符,用 o 记录当前层次,用len记录这一层次的长度,当 input[l] == '\t'时o++;每遍历一个字符l++,当 input[l] == '\n'表示当前文件夹或

2022-04-20 21:52:05 150

原创 821字符串最小距离

821. 字符的最短距离题目链接:https://leetcode-cn.com/problems/shortest-distance-to-a-character/思路:用数组target记录目标字符的位置答案数组进行初始化,方便记录最小值遍历target,与ans比较最小距离代码:class Solution {public: int abs(int i, int j){ return i > j ? i - j : j - i; }

2022-04-19 21:42:03 40

原创 [1672. 最富有客户的资产总量]

1672. 最富有客户的资产总量难度简单97给你一个 m x n 的整数网格 accounts ,其中 accounts[i][j] 是第 i 位客户在第 j 家银行托管的资产数量。返回最富有客户所拥有的 资产总量 。客户的 资产总量 就是他们在各家银行托管的资产数量之和。最富有客户就是 资产总量 最大的客户。示例 1:输入:accounts = [[1,2,3],[3,2,1]]输出:6解释:第 1 位客户的资产总量 = 1 + 2 + 3 = 6第 2 位客户的资产总量 = 3 + 2

2022-04-14 22:59:26 37

原创 第二天《数列》

文章目录文章目录文章目录今日知识总结题目分析今日收获:今日疑问:今日知识总结数列:逻辑形式为数组经典数列:等差数列:相邻两个数的差相等公差:d首项:a0公式:an = {a0i=0an−1+di>0(例子1)a_n\ =\ \begin{cases} a_0&i = 0 \\ a_{n - 1} + d & i>0\\ \end{cases} \tag{例子1} an​ = {a0​an−1​+d​i=0i>0​

2022-04-14 22:54:00 58

原创 第一天《幂》

文章目录文章目录文章目录今日知识总结题目分析今日收获:今日疑问:资料链接博客链接今日知识总结幂:nmn^mnm叫做n的m次幂m为正整数时表示m个n相乘m为小数时,m可以写成a/ba/ba/b ,此时nm=a(n)bn^m = ^a\sqrt(n)^bnm=a(​n)b对数:对幂的逆运算,T=nmT = n^mT=nm那么m=lognTm = log_nTm=logn​T,n叫对数的底数,T叫做真数换底公式:logab=logcb/logcalog_ab = log_cb / log_

2022-04-14 22:52:06 47

原创 O(1) 时间插入、删除和获取随机元素

380. O(1) 时间插入、删除和获取随机元素题目链接:https://leetcode-cn.com/problems/insert-delete-getrandom-o1/思路:要完成O(1)O(1)O(1)的查找第一时间就可以想到哈希表,但是由于哈希表只能添加O(1)O(1)O(1)添加,删除和查找,由于无法确定哈希的长度,还需要用一个变长数组来辅助储存,哈希表用来储存每个val的位置,vector用来存储val的值代码:class RandomizedSet { uno

2022-04-14 10:37:14 225

原创 寻找比目标字母大的最小字母

num744. 寻找比目标字母大的最小字母链接:https://leetcode-cn.com/problems/find-smallest-letter-greater-than-target/思路:根据题意,我们需要找到比目标字符大且最近的一位,很轻易地就可以想到用两个字符相减就可以获得两个数的相对位置,我们用 min来记录如果 letters[i] - target > 0 && letters[i] - target < min,我们就更新字符和最小值注意:t

2022-04-03 21:23:23 249

原创 九日集训第一天《函数》学习报告

九日集训第一天《函数》学习报告一 ,今日知识总结:把大任务分解成小任务调用函数完成代码的复用,减小代码量一个逻辑不写多遍,函数可以减少维护成本函数尽量简短一个函数尽量只负责一个功能二,今日做题记录num371. 两整数之和链接:https://leetcode-cn.com/problems/sum-of-two-integers/思路:加法分为两个部分,无进位加法和进位加法不考虑进位的时候很简单,只需要 a ^ b 就可以了在考虑进位的时候,需要不断进行 a & b

2022-04-03 20:41:28 369

原创 【二倍数对数组】

num[954. 二倍数对数组]链接:二倍数对数组.思路:把数字放进哈希表里,记录每个数字出现的顺序遍历arr数组的每一个数字如果arr[i] > 0,就去哈希表里找m.count(arr[i] * 2),没有就return false,然后减去arr[i]出现的次数如果arr[i] < 0,就去哈希表里找m.count(arr[i] /2),没有就return false,然后减去arr[i]出现的次数arr[i]在哈希表中出现的为负数,也return false之前不理解

2022-04-02 23:10:26 203

原创 【auto关键字笔记】

auto关键字笔记在力扣的题解中看到auto关键字,之前并没有接触过,了解了一下并把可能会经常用的用法记了个笔记原文在这里用法:在变量声明时根据初始化表达式自动推断该类型的类型声明函数时作为函数的返回值的占位符简单的例子#include<iostream>#include<vector>using namespace std;template<class T, class U>void add(T t, U u){ auto s = t + u

2022-04-01 21:58:56 212

原创 【找到处理最多请求的服务器】

num1606. 找到处理最多请求的服务器题目链接:找到处理最多请求的服务器思路:模拟列出空闲的服务器,和正在忙碌的服务器请求服务进来后,先更新忙碌的服务器,如果 arrival[i - 1] + load[i] < arrival[i]就把他丢给空闲的服务器里如果当前没有空闲的服务器,则抛弃请求进行查找空闲的服务器里的节点,考虑到如果 i % k找不到。就把请求丢给空闲里的第一个,把找到的服务器从空闲服务器丢到忙碌服务器里,接着把这个服务器处理请求的次数加1就行最后找请求次数里最多

2022-03-31 18:33:16 30

原创 【自除数】

num728. 自除数链接: 自除数.思路:模拟情况即可首先小于10的数一定是在答案里用 mid控制循环次数,用于求出每一个数位上的数字mod保存个各数位的数字并进行 i % mod的计算,如果 i % mod != 0就让标签为0,直接跳出循环如果标签为1,就加入答案数组中代码class Solution {public: vector<int> selfDividingNumbers(int left, int right) { vector&l

2022-03-31 14:39:08 51

原创 【图片平滑器】

num661图片平滑器思路:枚举每一个数的前后左右相加然后取平均值,这道题比较费心思的部分在于如何把外围的数量和和算出来但是数组又不能越界,采取了官方的做法,设置了局部变量p,q然后从p-1,q-1开始而枚举,盘然后判断是否越界在赋值,代码如下class Solution {public: vector<vector<int>> imageSmoother(vector<vector<int>>& img) { int n

2022-03-30 05:30:59 277

原创 【交替位二进制数】

num693. 交替位二进制数思路:列出每一个位置的的二进制数字,从第二个开始每一个与前一个进行比较就可以得到,但是这样空间占用比较大用一个数来进行记录前一个二进制数位上的数,用这个数与当下的来进行判断,如果有相同的直接返回false,比较节省空间直接使用位运算代码:<第一种>class Solution {public: bool hasAlternatingBits(int n) { bool judge = true; vector

2022-03-30 05:28:08 103

原创 数组中两元素的最大乘积

num1464. 数组中两元素的最大乘积思路:简单排个序直接求最后两个数减1的乘积就行了代码:class Solution {public: int maxProduct(vector<int>& nums) { int mul = 0; sort(nums.begin(), nums.end()); mul = (nums[nums.size() - 1] - 1) * (nums[nums.size() - 2]

2022-03-30 05:26:52 121

原创 考试的最大困扰度

num2024. 考试的最大困扰度思路:第一时间感觉很像滑动窗口的思路,就是直觉,感觉没什么道理那怎样确认窗口的长度呢只改变K次,就可以求到最大连续的T或者F,那就只要求出窗口里相较少的字符个数,并保证他的个数等于K的时候窗口的最大长度就可以了用i,j来控制窗口的长度,如果窗口里较少字符的个数大于K,i++,判断原来i位置上的是T还是F,然后把它的个数减1,最后在每一次循环中维护窗口长度的最大值就可以了时间复杂度O(n)class Solution {public: int ma

2022-03-30 05:24:54 29

原创 最大连续 1 的个数

num485. 最大连续 1 的个数思路:这道题和上面的那道考试的最大困扰度很像,比那道简单因为只涉及到0,1两个数字,求最多的1,那就只需要设置一个temp,用来记录当前状态最最长1的数量,定义一个cnt用来记录整个数组中最长1的数量,不断更新cnt就行了时间复杂度O(n)代码class Solution {public: int maxProduct(vector<int>& nums) { int mul = 0; sort

2022-03-30 05:20:32 219

原创 num[153. 寻找旋转排序数组中的最小值]

num153. 寻找旋转排序数组中的最小值思路:咱就是说,这道题本身是可以水过的,直接for一遍就过了,咳咳,附上第一个思路代码因为题目要求是O(logn)解决,我感觉应该是二分查找,一看题解果然是,附上代码因为当前是由递增数组经过几次旋转变成的,所以可以找到以下规律当左值< 中值,中值< 右值,左值< 右值,中值位置变成右边界 右 中左当左值<中值,中值>右值,左值>右值,中值位置变成左边界 中左 右当左值&gt

2022-03-29 22:12:03 321

原创 OpenJudge [num8170]

OpenJudgenum8170我试着用strcmp这个函数,出现了报错[Error] cannot convert ‘std::string {aka std::basic_string}’ to ‘const char*’ for argument ‘1’ to ‘int strcmp(const char*, const char*)’报错,所以换成了compare()#include<iostream>#include<string>using namespac

2022-02-13 20:11:17 65

空空如也

空空如也

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

TA关注的人

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