![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
letcode中等题
大仙儿智
热爱代码,心怀梦想
https://me.csdn.net/lmj_like_c
之前的博客密码忘记了,欢迎大家参观
展开
-
【leetcode】319.灯泡开关
题目描述: 解题思路: 1.暴力模拟法:通过设置一个01字符串来模拟灯泡的开关,双重循环模拟过程中的开关操作,最后为计算字符串中1的个数为答案。(这个方法会超时) 2.数学法:引用井水的题解思路 在模拟的过程中我们发现: 第1个灯泡会在第:1 轮被操作; 第5个灯泡会在第:1,5 轮被操作; 第9个灯泡会在第:1,3,9 轮被操作; 第20个灯泡会在第:1,2,4,5,10,20轮被操作; … 可总结为:第I个灯泡会在 自己的因数 时被操作,如果因数的个数是奇数则最后状态为开; 题目可转化为求解有奇数个因原创 2020-06-04 11:54:30 · 143 阅读 · 0 评论 -
【let code】647.回文子串
问题描述: 问题分析: 1.回文子串分为奇数位(中心有一个对称点)和偶数位(中间无对称点); 2.以中心点为起始点,向两边逐步扩散,寻求回文的最大长度(过程中相对较小的回文子串顺便计数); 3.遍历数组,以每一个点当作中心点遍历计算。 完整代码: class Solution { public: int getres(string s, int start, int end) ...原创 2020-01-15 09:27:03 · 119 阅读 · 0 评论 -
【let code】967.连续差相同的数字
问题描述: 问题分析: 1.可分三种情况进行讨论: N=1时,不论K为多少,结果都是0,1,2,3,4,5,6,7,8,9; K=0时,不论N为多少, 结果都是(111…)222…)(333…)…(999…); 一般情况; 2.相差为K的数字, 表明每一位有两种选择:前一位加K和前一位减K;(加减后判别是否在数字范围内);3.由于N>1,表明会出现多位,每一位的选择都会带来最终结果的变化,...原创 2020-01-07 10:47:09 · 239 阅读 · 0 评论 -
【let code】442/448 :检测重复字符、检测缺失字符【鸽巢原理】
leetcode 442/448.检测重复字符、检测缺失字符 问题描述: 问题分析: 鸽巢原理(组合数学知识): n个巢, n+1只鸽子,每个鸽子进一个巢,那种总会剩下一个鸽子无家可归; 在此问题中我们假设数字的下标为鸽巢,下标对应的值为鸽子编号。 经过一次遍历让鸽子(回到鸽子编号-1的巢里)回家,最终发现无家可归的鸽子,和没有鸽子的巢。 更详细的讲解请查看: 鸽巢思想解决 完整代码: for...原创 2019-11-14 16:54:30 · 466 阅读 · 0 评论 -
[let code]5.最长回文子串
the question: analysis: you should find the last longest Palindrome like the frist instance “aba”; spilt the string ,and judge the substr; find the pos and longest length; return the right substr; t...原创 2019-01-28 13:01:54 · 120 阅读 · 0 评论 -
[let code]50. 实现pow(x, n)
问题描述: 问题分析: 如果底数和幂都是负数,转换; 处理特殊情况:底数为1, 幂数为1, -1 或0; 处理边界:底数小于1,幂数正无穷大,结果趋近于0,底数大于1,幂数负无穷,结果趋近于0. 处理结果,如果幂数为负,转换为正,计算后在结尾处取分数为结果。 完整代码: 结果展示: ...原创 2019-02-10 23:05:30 · 404 阅读 · 0 评论 -
【let code】807.保持城市天际线
问题描述: 问题分析: 1.题目首先需要算出天际线(不同行列中的最大值); 2.为每个点增高,求最多总共能增高多少,而不改变天际线(不破坏该点所在行列的最大值); 3.在每个点处判断,此行此列的最大值中的较小的那个(如果不考虑这一点,使用行,则列的最大值被破坏,使用列,行的最大值会被破坏); 4.个人感觉这道题应该归于easy,唯一的难点在于读题; 完整代码: class Solution { ...原创 2019-08-26 16:35:43 · 219 阅读 · 1 评论