![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
力扣每日刷题
tuzittttt
这个作者很懒,什么都没留下…
展开
-
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 · 940 阅读 · 0 评论 -
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 · 123 阅读 · 0 评论 -
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 · 42 阅读 · 0 评论 -
1305两颗二叉搜索树中的所有元素
1305. 两棵二叉搜索树中的所有元素题目链接:https://leetcode-cn.com/problems/all-elements-in-two-binary-search-trees/思路:知识点:中序遍历:先遍历左节点,在遍历根节点,最后遍历右节点知识点:二叉搜索树:当前结点的左子树的树小于当前节点数当前节点的右子树的树大于当前节点数左子树右子树自身也是二叉搜索树将两棵树进行中序遍历,两棵树的数组就都是从大到小有序的再将两个数组的结点进行比较加入答案数组原创 2022-05-01 22:09:27 · 531 阅读 · 0 评论 -
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 · 49 阅读 · 0 评论 -
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 · 85 阅读 · 0 评论 -
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 · 60 阅读 · 0 评论 -
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 · 39 阅读 · 0 评论 -
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 · 177 阅读 · 0 评论 -
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 · 48 阅读 · 0 评论 -
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 · 157 阅读 · 0 评论 -
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 · 49 阅读 · 0 评论 -
[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 · 41 阅读 · 0 评论 -
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 · 248 阅读 · 0 评论 -
寻找比目标字母大的最小字母
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 · 254 阅读 · 0 评论 -
【二倍数对数组】
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 · 212 阅读 · 0 评论 -
【找到处理最多请求的服务器】
num1606. 找到处理最多请求的服务器题目链接:找到处理最多请求的服务器思路:模拟列出空闲的服务器,和正在忙碌的服务器请求服务进来后,先更新忙碌的服务器,如果 arrival[i - 1] + load[i] < arrival[i]就把他丢给空闲的服务器里如果当前没有空闲的服务器,则抛弃请求进行查找空闲的服务器里的节点,考虑到如果 i % k找不到。就把请求丢给空闲里的第一个,把找到的服务器从空闲服务器丢到忙碌服务器里,接着把这个服务器处理请求的次数加1就行最后找请求次数里最多原创 2022-03-31 18:33:16 · 37 阅读 · 0 评论 -
【自除数】
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 · 56 阅读 · 0 评论 -
最大连续 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 · 229 阅读 · 0 评论 -
num[153. 寻找旋转排序数组中的最小值]
num153. 寻找旋转排序数组中的最小值思路:咱就是说,这道题本身是可以水过的,直接for一遍就过了,咳咳,附上第一个思路代码因为题目要求是O(logn)解决,我感觉应该是二分查找,一看题解果然是,附上代码因为当前是由递增数组经过几次旋转变成的,所以可以找到以下规律当左值< 中值,中值< 右值,左值< 右值,中值位置变成右边界 右 中左当左值<中值,中值>右值,左值>右值,中值位置变成左边界 中左 右当左值>原创 2022-03-29 22:12:03 · 347 阅读 · 0 评论