![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Leetcode刷题
安青学习之路
这个作者很懒,什么都没留下…
展开
-
Leetcod每日一题_1894. 找到需要补充粉笔的学生编号
1894. 找到需要补充粉笔的学生编号题目链接思路:直接模拟即可,K可以减去多少组学生总和,取余,再拿余数依次对每一个学生比较大小。代码实现:class Solution {public: int chalkReplacer(vector<int>& chalk, int k) { long long sum = 0;//注意溢出 for(int x:chalk) sum += x; int remain = k%sum;原创 2021-09-15 17:01:39 · 93 阅读 · 0 评论 -
Leetcode每日一题_162. 寻找峰值
162. 寻找峰值题目链接思路:最直接的想法是直接遍历一遍,找到符合nums[i-1] < nums[i] > num[i+1],但是时间复杂度过高,题目说明必须使用 O(logn) 时间复杂度的算法,很自然地想到了二分,但是平常接触的二分都是在数组已经有序的情况下进行,回到我们需要找到 nums[i] 需要符合的条件:当 nums[i] < nums[i+1] 时说明第 i 位一定小于第 i+1 位,不确定是否大于第 i-1 位,这足以说明第 i 位不是峰值,而峰值应该在i+1原创 2021-09-15 16:59:00 · 112 阅读 · 0 评论 -
Leetcode每日一题_68. 文本左右对齐
Leetcode每日一题题目链接思路:模拟,怎么模拟,首先可以确定的是,我们需要先判断一行最多放几个单词,单词之间的空格至少有一个,根据这个思路,我们可以得到每一行的单词分别是哪些,接下来需要处理的就是单词之间的空格数量,当只有一个单词时,那么所有空格全部添加到一个单词后面即可,如果有多个单词,根据题目条件,如果某一行单词间的空格不能均匀分配,则左侧放置的空格数要多于右侧的空格数。无法整除那么意味着无法平均分配,我们将得到的余数作为左边单词的个数,每添加一个那么多添加一个空格即可。代码实现:c原创 2021-09-09 16:56:31 · 91 阅读 · 0 评论 -
Leetcod(每日一题)_1221. 分割平衡字符串
1221. 分割平衡字符串题目链接思路:(贪心) 划分最小子平衡字符串平衡字符串意味着只需要满足子字符串中L和R的数量相同,我们在遍历字符串的时候,记录L和R的数量,当两者数量相同时即为平衡字符串。代码实现:class Solution {public: int balancedStringSplit(string s) { int n = s.size(),cntr = 0,cntl = 0,res = 0; for(int i = 0;i < n原创 2021-09-07 14:04:41 · 70 阅读 · 0 评论 -
Leetcode(数组系列)
盛最多水的容器(Container With Most Water)Leetcode题目地址Leetcode数组系列第2题解题思路:怎么知道接的水最多,那么除了将每种情况都遍历一遍以外,是不是还有可以优化的地方,怎么样可以跳过某些情况?双指针思路:每次选定围成水槽两板高度 h[i],h[j] 中的短板,向中间收窄 1 格计算S(i,j)=min(h[i],h[j])×(j−i),直至达到最优解。对比一下暴力思路和双指针思路,可以发现若不指定移动规则,所有移动出现的 S(i,j)的状态数原创 2021-07-16 15:38:24 · 33 阅读 · 0 评论 -
Leetcode(数组系列)
两数之和(Two Sum)Leetcode题目地址Leetcode数组系列第1题解题思路:[1,2,3] [2] 使用map,边读入边寻找当前读入的数字与其之前的数相加是否为target存在一个问题,是先将数字及其位置放入hashtable,还是先判断是否在hashtable中存在一个数与当前数字可以组成target,如果是先将数字及其位置放入hashtable,那么如果target= 2 * nums[0],将会返回{0,0}显然是不被允许的,先将数字及其位置放入hashtable,那原创 2021-07-15 16:31:29 · 48 阅读 · 0 评论