<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[人工智障1025号的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/bulo1025</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; bulo1025]]></copyright><item><title><![CDATA[LeetCode刷题记录——第643题（子数组最大平均数）]]></title><link>https://blog.youkuaiyun.com/bulo1025/article/details/87856103</link><guid>https://blog.youkuaiyun.com/bulo1025/article/details/87856103</guid><author>bulo1025</author><pubDate>Thu, 21 Feb 2019 10:26:24 +0800</pubDate><description><![CDATA[题目描述
给定 n 个整数，找出平均数最大且长度为 k 的连续子数组，并输出该最大平均数。
示例 1:

输入: [1,12,-5,-6,50,3], k = 4
输出: 12.75
解释: 最大平均数 (12-5-6+50)/4 = 51/4 = 12.75

思路分析

本题考察的就是一个固定窗口求和，然后窗口的移动
关键步骤为： res = res - nums[i] + nums[i+k]...]]></description><category></category></item><item><title><![CDATA[LeetCode刷题记录——第633题（平方数之和）]]></title><link>https://blog.youkuaiyun.com/bulo1025/article/details/87774513</link><guid>https://blog.youkuaiyun.com/bulo1025/article/details/87774513</guid><author>bulo1025</author><pubDate>Wed, 20 Feb 2019 09:27:23 +0800</pubDate><description><![CDATA[题目描述
给定一个非负整数 c ，你要判断是否存在两个整数 a 和 b，使得 a2 + b2 = c。
示例1:

输入: 5
输出: True
解释: 1 * 1 + 2 * 2 = 5

示例2:

输入: 3
输出: False

思路分析

如果输入的 c 能够直接分解为一个整数的平方，返回 True
如果不行，很正常的想法就是用到二分法来找到需要的数，如果两个数平方的和大于 c，将hig...]]></description><category></category></item><item><title><![CDATA[LeetCode刷题记录——第628题（三个数的最大乘积）]]></title><link>https://blog.youkuaiyun.com/bulo1025/article/details/87773967</link><guid>https://blog.youkuaiyun.com/bulo1025/article/details/87773967</guid><author>bulo1025</author><pubDate>Wed, 20 Feb 2019 09:18:51 +0800</pubDate><description><![CDATA[题目描述
给定一个整型数组，在数组中找出由三个数组成的最大乘积，并输出这个乘积。
示例 1:

输入: [1,2,3]
输出: 6

示例 2:

输入: [1,2,3,4]
输出: 24

注意:
给定的整型数组长度范围是[3,104]，数组中所有的元素范围是[-1000, 1000]。
输入的数组中任意三个数的乘积不会超出32位有符号整数的范围。
思路分析

先对列表进行排序
最大的可能是 n...]]></description><category></category></item><item><title><![CDATA[LeetCode刷题记录——第620题（有趣的电影）]]></title><link>https://blog.youkuaiyun.com/bulo1025/article/details/87688835</link><guid>https://blog.youkuaiyun.com/bulo1025/article/details/87688835</guid><author>bulo1025</author><pubDate>Tue, 19 Feb 2019 09:45:46 +0800</pubDate><description><![CDATA[题目描述
某城市开了一家新的电影院，吸引了很多人过来看电影。该电影院特别注意用户体验，专门有个 LED显示板做电影推荐，上面公布着影评和相关电影描述。
作为该电影院的信息部主管，您需要编写一个 SQL查询，找出所有影片描述为非 boring (不无聊) 的并且 id 为奇数 的影片，结果请按等级 rating 排列。
例如，下表 cinema:
±--------±----------±-----...]]></description><category></category></item><item><title><![CDATA[LeetCode刷题记录——第605题（种花问题）]]></title><link>https://blog.youkuaiyun.com/bulo1025/article/details/87688075</link><guid>https://blog.youkuaiyun.com/bulo1025/article/details/87688075</guid><author>bulo1025</author><pubDate>Tue, 19 Feb 2019 09:34:01 +0800</pubDate><description><![CDATA[题目描述
假设你有一个很长的花坛，一部分地块种植了花，另一部分却没有。可是，花卉不能种植在相邻的地块上，它们会争夺水源，两者都会死去。
给定一个花坛（表示为一个数组包含0和1，其中0表示没种植花，1表示种植了花），和一个数 n 。能否在不打破种植规则的情况下种入 n 朵花？能则返回True，不能则返回False。
示例 1:

输入: flowerbed = [1,0,0,0,1], n = 1
...]]></description><category></category></item><item><title><![CDATA[LeetCode刷题记录——第599题（两个列表的最小索引总和）]]></title><link>https://blog.youkuaiyun.com/bulo1025/article/details/87605199</link><guid>https://blog.youkuaiyun.com/bulo1025/article/details/87605199</guid><author>bulo1025</author><pubDate>Mon, 18 Feb 2019 10:57:42 +0800</pubDate><description><![CDATA[题目描述
假设Andy和Doris想在晚餐时选择一家餐厅，并且他们都有一个表示最喜爱餐厅的列表，每个餐厅的名字用字符串表示。
你需要帮助他们用最少的索引和找出他们共同喜爱的餐厅。 如果答案不止一个，则输出所有答案并且不考虑顺序。 你可以假设总是存在一个答案。
示例 1:

输入:
[“Shogun”, “Tapioca Express”, “Burger King”, “KFC”]
[“Piatt...]]></description><category></category></item><item><title><![CDATA[LeetCode刷题记录——第598题（范围求和）]]></title><link>https://blog.youkuaiyun.com/bulo1025/article/details/87603332</link><guid>https://blog.youkuaiyun.com/bulo1025/article/details/87603332</guid><author>bulo1025</author><pubDate>Mon, 18 Feb 2019 10:31:11 +0800</pubDate><description><![CDATA[题目描述
给定一个初始元素全部为 0，大小为 m*n 的矩阵 M 以及在 M 上的一系列更新操作。
操作用二维数组表示，其中的每个操作用一个含有两个正整数 a 和 b 的数组表示，含义是将所有符合 0 &amp;lt;= i &amp;lt; a 以及 0 &amp;lt;= j &amp;lt; b 的元素 M[i][j] 的值都增加 1。
在执行给定的一系列操作后，你需要返回矩阵中含有最大整数的元素个数。
示例 1:

输入...]]></description><category></category></item><item><title><![CDATA[LeetCode刷题记录——第596题（超过5名学生的课）]]></title><link>https://blog.youkuaiyun.com/bulo1025/article/details/87535453</link><guid>https://blog.youkuaiyun.com/bulo1025/article/details/87535453</guid><author>bulo1025</author><pubDate>Sun, 17 Feb 2019 15:17:35 +0800</pubDate><description><![CDATA[题目描述
有一个courses 表 ，有: student (学生) 和 class (课程)。
请列出所有超过或等于5名学生的课。
例如,表:
±--------±-----------+
| student | class      |
±--------±-----------+
| A       | Math       |
| B       | English    |
| C   ...]]></description><category></category></item><item><title><![CDATA[LeetCode刷题记录——第595题（大的国家）]]></title><link>https://blog.youkuaiyun.com/bulo1025/article/details/87451144</link><guid>https://blog.youkuaiyun.com/bulo1025/article/details/87451144</guid><author>bulo1025</author><pubDate>Sat, 16 Feb 2019 15:09:27 +0800</pubDate><description><![CDATA[这里有张 World 表

±----------------±-----------±-----------±-------------±--------------+
| name            | continent  | area       | population   | gdp           |
±----------------±-----------±-------...]]></description><category></category></item><item><title><![CDATA[LeetCode刷题记录——第594题（最长和谐子序列）]]></title><link>https://blog.youkuaiyun.com/bulo1025/article/details/87450448</link><guid>https://blog.youkuaiyun.com/bulo1025/article/details/87450448</guid><author>bulo1025</author><pubDate>Sat, 16 Feb 2019 14:59:16 +0800</pubDate><description><![CDATA[题目描述
和谐数组是指一个数组里元素的最大值和最小值之间的差别正好是1。
现在，给定一个整数数组，你需要在所有可能的子序列中找到最长的和谐子序列的长度。
示例 1:

输入: [1,3,2,2,5,2,3,7]
输出: 5
原因: 最长的和谐数组是：[3,2,2,2,3].

思路分析

利用collections.Counter,将列表统计建立字典，key为列表中的值，value为相应的值出现的...]]></description><category></category></item><item><title><![CDATA[LeetCode刷题记录——第575题（分糖果）]]></title><link>https://blog.youkuaiyun.com/bulo1025/article/details/87371331</link><guid>https://blog.youkuaiyun.com/bulo1025/article/details/87371331</guid><author>bulo1025</author><pubDate>Fri, 15 Feb 2019 16:57:07 +0800</pubDate><description><![CDATA[题目描述
给定一个偶数长度的数组，其中不同的数字代表着不同种类的糖果，每一个数字代表一个糖果。你需要把这些糖果平均分给一个弟弟和一个妹妹。返回妹妹可以获得的最大糖果的种类数。
示例 1:

输入: candies = [1,1,2,2,3,3]
输出: 3
解析: 一共有三种种类的糖果，每一种都有两个。
最优分配方案：妹妹获得[1,2,3],弟弟也获得[1,2,3]。这样使妹妹获得糖果的种类数最多...]]></description><category></category></item><item><title><![CDATA[LeetCode刷题记录——第566题（重塑矩阵）]]></title><link>https://blog.youkuaiyun.com/bulo1025/article/details/87368631</link><guid>https://blog.youkuaiyun.com/bulo1025/article/details/87368631</guid><author>bulo1025</author><pubDate>Fri, 15 Feb 2019 16:20:42 +0800</pubDate><description><![CDATA[题目描述
在MATLAB中，有一个非常有用的函数 reshape，它可以将一个矩阵重塑为另一个大小不同的新矩阵，但保留其原始数据。
给出一个由二维数组表示的矩阵，以及两个正整数r和c，分别表示想要的重构的矩阵的行数和列数。
重构后的矩阵需要将原始矩阵的所有元素以相同的行遍历顺序填充。
如果具有给定参数的reshape操作是可行且合理的，则输出新的重塑矩阵；否则，输出原始矩阵。
示例 1:

输入:...]]></description><category></category></item><item><title><![CDATA[LeetCode刷题记录——第561题（数组拆分Ⅰ）]]></title><link>https://blog.youkuaiyun.com/bulo1025/article/details/87196999</link><guid>https://blog.youkuaiyun.com/bulo1025/article/details/87196999</guid><author>bulo1025</author><pubDate>Wed, 13 Feb 2019 18:24:29 +0800</pubDate><description><![CDATA[题目描述
给定长度为 2n 的数组, 你的任务是将这些数分成 n 对, 例如 (a1, b1), (a2, b2), …, (an, bn) ，使得从1 到 n 的 min(ai, bi) 总和最大。
示例 1:

输入: [1,4,3,2]
输出: 4
解释: n 等于 2, 最大总和为 4 = min(1, 2) + min(3, 4).

思路分析

用res记录最终结果
将nums原地排序...]]></description><category></category></item><item><title><![CDATA[LeetCode刷题记录——第557题（反转字符串中的单词Ⅲ）]]></title><link>https://blog.youkuaiyun.com/bulo1025/article/details/87190890</link><guid>https://blog.youkuaiyun.com/bulo1025/article/details/87190890</guid><author>bulo1025</author><pubDate>Wed, 13 Feb 2019 16:57:30 +0800</pubDate><description><![CDATA[题目描述
给定一个字符串，你需要反转字符串中每个单词的字符顺序，同时仍保留空格和单词的初始顺序。
示例 1:

输入: “Let’s take LeetCode contest”
输出: “s’teL ekat edoCteeL tsetnoc”
注意：在字符串中，每个单词由单个空格分隔，并且字符串中不会有任何额外的空格。

思路分析

用inter记录将s字符串分分割，形成一个列表。
遍历int...]]></description><category></category></item><item><title><![CDATA[LeetCode刷题记录——第551题（学生出勤记录Ⅰ）]]></title><link>https://blog.youkuaiyun.com/bulo1025/article/details/87026714</link><guid>https://blog.youkuaiyun.com/bulo1025/article/details/87026714</guid><author>bulo1025</author><pubDate>Mon, 11 Feb 2019 22:03:53 +0800</pubDate><description><![CDATA[题目描述
给定一个字符串来代表一个学生的出勤记录，这个记录仅包含以下三个字符：

‘A’ : Absent，缺勤
‘L’ : Late，迟到
‘P’ : Present，到场
如果一个学生的出勤记录中不超过一个’A’(缺勤)并且不超过两个连续的’L’(迟到),那么这个学生会被奖赏。

你需要根据这个学生的出勤记录判断他是否会被奖赏。
示例 1:

输入: “PPALLP”
输出: True

示例...]]></description><category></category></item><item><title><![CDATA[LeetCode刷题记录——第541题（反转字符串Ⅱ）]]></title><link>https://blog.youkuaiyun.com/bulo1025/article/details/87026508</link><guid>https://blog.youkuaiyun.com/bulo1025/article/details/87026508</guid><author>bulo1025</author><pubDate>Mon, 11 Feb 2019 22:00:52 +0800</pubDate><description><![CDATA[题目描述
给定一个字符串和一个整数 k，你需要对从字符串开头算起的每个 2k 个字符的前k个字符进行反转。如果剩余少于 k 个字符，则将剩余的所有全部反转。如果有小于 2k 但大于或等于 k 个字符，则反转前 k 个字符，并将剩余的字符保持原样。
示例:

输入: s = “abcdefg”, k = 2
输出: “bacdfeg”

思路分析

如果字符串s长度小于k，那么直接反转整个字符串
如...]]></description><category></category></item><item><title><![CDATA[LeetCode刷题记录——第532题（数组中的K-diff数对）]]></title><link>https://blog.youkuaiyun.com/bulo1025/article/details/86932277</link><guid>https://blog.youkuaiyun.com/bulo1025/article/details/86932277</guid><author>bulo1025</author><pubDate>Sun, 10 Feb 2019 21:24:52 +0800</pubDate><description><![CDATA[题目描述
给定一个整数数组和一个整数 k, 你需要在数组里找到不同的 k-diff 数对。这里将 k-diff 数对定义为一个整数对 (i, j), 其中 i 和 j 都是数组中的数字，且两数之差的绝对值是 k.
示例 1:

输入: [3, 1, 4, 1, 5], k = 2
输出: 2
解释: 数组中有两个 2-diff 数对, (1, 3) 和 (3, 5)。
尽管数组中有两个1，但我们只...]]></description><category></category></item><item><title><![CDATA[LeetCode刷题记录——第521题（最长特殊序列Ⅰ）]]></title><link>https://blog.youkuaiyun.com/bulo1025/article/details/86930463</link><guid>https://blog.youkuaiyun.com/bulo1025/article/details/86930463</guid><author>bulo1025</author><pubDate>Sun, 10 Feb 2019 20:57:01 +0800</pubDate><description><![CDATA[题目描述
给定两个字符串，你需要从这两个字符串中找出最长的特殊序列。最长特殊序列定义如下：该序列为某字符串独有的最长子序列（即不能是其他字符串的子序列）。
子序列可以通过删去字符串中的某些字符实现，但不能改变剩余字符的相对顺序。空序列为所有字符串的子序列，任何字符串为其自身的子序列。
输入为两个字符串，输出最长特殊序列的长度。如果不存在，则返回 -1。
示例 :

输入: “aba”, “cdc”...]]></description><category></category></item><item><title><![CDATA[LeetCode刷题记录——第520题（检测大写字母）]]></title><link>https://blog.youkuaiyun.com/bulo1025/article/details/86845394</link><guid>https://blog.youkuaiyun.com/bulo1025/article/details/86845394</guid><author>bulo1025</author><pubDate>Sat, 09 Feb 2019 22:56:42 +0800</pubDate><description><![CDATA[题目描述
给定一个单词，你需要判断单词的大写使用是否正确。
我们定义，在以下情况时，单词的大写用法是正确的：
全部字母都是大写，比如&quot;USA&quot;。
单词中所有字母都不是大写，比如&quot;leetcode&quot;。
如果单词不只含有一个字母，只有首字母大写， 比如 “Google”。
否则，我们定义这个单词没有正确使用大写字母。
示例 1:

输入: “USA”
输出: True

示例 2:

输入: “Fla...]]></description><category></category></item><item><title><![CDATA[LeetCode刷题记录——第509题（斐波那契数）]]></title><link>https://blog.youkuaiyun.com/bulo1025/article/details/86845161</link><guid>https://blog.youkuaiyun.com/bulo1025/article/details/86845161</guid><author>bulo1025</author><pubDate>Sat, 09 Feb 2019 22:53:08 +0800</pubDate><description><![CDATA[题目秒数
斐波那契数，通常用 F(n) 表示，形成的序列称为斐波那契数列。该数列由 0 和 1 开始，后面的每一项数字都是前面两项数字的和。也就是：

F(0) = 0,   F(1) = 1
F(N) = F(N - 1) + F(N - 2), 其中 N &amp;gt; 1.
给定 N，计算 F(N)。

示例 1：

输入：2
输出：1
解释：F(2) = F(1) + F(0) = 1 + 0 ...]]></description><category></category></item></channel></rss>