1
0
mirror of https://gitee.com/coder-xiaomo/leetcode-problemset synced 2025-10-19 12:06:48 +08:00
Code Issues Projects Releases Wiki Activity GitHub Gitee
This commit is contained in:
2022-09-04 10:46:24 +08:00
parent d928fedff8
commit e9f28d863c
25 changed files with 13809 additions and 11945 deletions

View File

@@ -0,0 +1,33 @@
<p>如果一个整数 <code>n</code>&nbsp;<code>b</code>&nbsp;进制下(<code>b</code>&nbsp;<code>2</code>&nbsp;<code>n - 2</code>&nbsp;之间的所有整数)对应的字符串&nbsp;<strong>全部</strong>&nbsp;都是 <strong>回文的</strong>&nbsp;,那么我们称这个数&nbsp;<code>n</code>&nbsp;<strong>严格回文</strong>&nbsp;的。</p>
<p>给你一个整数&nbsp;<code>n</code>&nbsp;,如果 <code>n</code>&nbsp;<strong>严格回文</strong>&nbsp;的,请返回&nbsp;<code>true</code> ,否则返回<em>&nbsp;</em><code>false</code>&nbsp;</p>
<p>如果一个字符串从前往后读和从后往前读完全相同,那么这个字符串是 <strong>回文的</strong>&nbsp;</p>
<p>&nbsp;</p>
<p><strong>示例 1</strong></p>
<pre><b>输入:</b>n = 9
<b>输出:</b>false
<b>解释:</b>在 2 进制下9 = 1001 ,是回文的。
在 3 进制下9 = 100 ,不是回文的。
所以9 不是严格回文数字,我们返回 false 。
注意在 4, 5, 6 和 7 进制下n = 9 都不是回文的。
</pre>
<p><strong>示例 2</strong></p>
<pre><b>输入:</b>n = 4
<b>输出:</b>false
<b>解释:</b>我们只考虑 2 进制4 = 100 ,不是回文的。
所以我们返回 false 。
</pre>
<p>&nbsp;</p>
<p><strong>提示:</strong></p>
<ul>
<li><code>4 &lt;= n &lt;= 10<sup>5</sup></code></li>
</ul>

View File

@@ -0,0 +1,38 @@
<p>给你一个下标从 <strong>0</strong>&nbsp;开始的整数数组&nbsp;<code>nums</code>&nbsp;,判断是否存在&nbsp;<strong>两个</strong>&nbsp;长度为&nbsp;<code>2</code>&nbsp;的子数组且它们的&nbsp;<strong></strong>&nbsp;相等。注意,这两个子数组起始位置的下标必须&nbsp;<strong>不相同</strong>&nbsp;</p>
<p>如果这样的子数组存在,请返回&nbsp;<code>true</code>,否则返回&nbsp;<code>false</code><em>&nbsp;</em></p>
<p><strong>子数组</strong> 是一个数组中一段连续非空的元素组成的序列。</p>
<p>&nbsp;</p>
<p><strong>示例 1</strong></p>
<pre><b>输入:</b>nums = [4,2,4]
<b>输出:</b>true
<b>解释:</b>元素为 [4,2] 和 [2,4] 的子数组有相同的和 6 。
</pre>
<p><strong>示例 2</strong></p>
<pre><b>输入:</b>nums = [1,2,3,4,5]
<b>输出:</b>false
<b>解释:</b>没有长度为 2 的两个子数组和相等。
</pre>
<p><strong>示例 3</strong></p>
<pre><b>输入:</b>nums = [0,0,0]
<b>输出:</b>true
<b>解释:</b>子数组 [nums[0],nums[1]] 和 [nums[1],nums[2]] 的和相等,都为 0 。
注意即使子数组的元素相同,这两个子数组也视为不相同的子数组,因为它们在原数组中的起始位置不同。
</pre>
<p>&nbsp;</p>
<p><strong>提示:</strong></p>
<ul>
<li><code>2 &lt;= nums.length &lt;= 1000</code></li>
<li><code>-10<sup>9</sup> &lt;= nums[i] &lt;= 10<sup>9</sup></code></li>
</ul>

View File

@@ -0,0 +1,34 @@
<p>实现&nbsp;<a href="https://baike.baidu.com/item/strstr/811469" target="_blank">strStr()</a>&nbsp;函数。</p>
<p>给你两个字符串&nbsp;<code>haystack</code><code>needle</code> ,请你在 <code>haystack</code> 字符串中找出 <code>needle</code> 字符串出现的第一个位置(下标从 0 开始)。如果不存在,则返回&nbsp; <code>-1</code><strong> </strong></p>
<p><strong>说明:</strong></p>
<p>&nbsp;<code>needle</code>&nbsp;是空字符串时,我们应当返回什么值呢?这是一个在面试中很好的问题。</p>
<p>对于本题而言,当&nbsp;<code>needle</code>&nbsp;是空字符串时我们应当返回 0 。这与 C 语言的&nbsp;<a href="https://baike.baidu.com/item/strstr/811469" target="_blank">strstr()</a>&nbsp;以及 Java 的&nbsp;<a href="https://docs.oracle.com/javase/7/docs/api/java/lang/String.html#indexOf(java.lang.String)" target="_blank">indexOf()</a>&nbsp;定义相符。</p>
<p>&nbsp;</p>
<p><strong>示例 1</strong></p>
<pre>
<strong>输入:</strong>haystack = "hello", needle = "ll"
<strong>输出:</strong>2
</pre>
<p><strong>示例 2</strong></p>
<pre>
<strong>输入:</strong>haystack = "aaaaa", needle = "bba"
<strong>输出:</strong>-1
</pre>
<p>&nbsp;</p>
<p><strong>提示:</strong></p>
<ul>
<li><code>1 &lt;= haystack.length, needle.length &lt;= 10<sup>4</sup></code></li>
<li><code>haystack</code><code>needle</code> 仅由小写英文字符组成</li>
</ul>

View File

@@ -0,0 +1,41 @@
<p>给你一个下标从 <strong>0</strong>&nbsp;开始的&nbsp;<code>m x n</code>&nbsp;二进制矩阵&nbsp;<code>mat</code>&nbsp;和一个整数&nbsp;<code>cols</code>&nbsp;,表示你需要选出的列数。</p>
<p>如果一行中,所有的 <code>1</code> 都被你选中的列所覆盖,那么我们称这一行 <strong>被覆盖</strong>&nbsp;了。</p>
<p>请你返回在选择 <code>cols</code>&nbsp;列的情况下,<strong>被覆盖</strong>&nbsp;的行数 <strong>最大</strong>&nbsp;为多少。</p>
<p>&nbsp;</p>
<p><strong>示例 1</strong></p>
<p><strong><img alt="" src="https://assets.leetcode.com/uploads/2022/07/14/rowscovered.png" style="width: 250px; height: 417px;"></strong></p>
<pre><b>输入:</b>mat = [[0,0,0],[1,0,1],[0,1,1],[0,0,1]], cols = 2
<b>输出:</b>3
<strong>解释:</strong>
如上图所示,覆盖 3 行的一种可行办法是选择第 0 和第 2 列。
可以看出,不存在大于 3 行被覆盖的方案,所以我们返回 3 。
</pre>
<p><strong>示例 2</strong></p>
<p><strong><img alt="" src="https://assets.leetcode.com/uploads/2022/07/14/rowscovered2.png" style="width: 83px; height: 247px;"></strong></p>
<pre><b>输入:</b>mat = [[1],[0]], cols = 1
<b>输出:</b>2
<strong>解释:</strong>
选择唯一的一列,两行都被覆盖了,原因是整个矩阵都被覆盖了。
所以我们返回 2 。
</pre>
<p>&nbsp;</p>
<p><strong>提示:</strong></p>
<ul>
<li><code>m == mat.length</code></li>
<li><code>n == mat[i].length</code></li>
<li><code>1 &lt;= m, n &lt;= 12</code></li>
<li><code>mat[i][j]</code>&nbsp;要么是&nbsp;<code>0</code>&nbsp;要么是&nbsp;<code>1</code>&nbsp;</li>
<li><code>1 &lt;= cols &lt;= n</code></li>
</ul>

View File

@@ -0,0 +1,37 @@
<p>你有&nbsp;<code>n</code>&nbsp;个机器人,给你两个下标从 <strong>0</strong>&nbsp;开始的整数数组&nbsp;<code>chargeTimes</code>&nbsp;<code>runningCosts</code>&nbsp;,两者长度都为&nbsp;<code>n</code>&nbsp;。第&nbsp;<code>i</code>&nbsp;个机器人充电时间为&nbsp;<code>chargeTimes[i]</code>&nbsp;单位时间,花费&nbsp;<code>runningCosts[i]</code>&nbsp;单位时间运行。再给你一个整数&nbsp;<code>budget</code>&nbsp;</p>
<p>运行&nbsp;<code>k</code>&nbsp;个机器人 <strong>总开销</strong>&nbsp;&nbsp;<code>max(chargeTimes) + k * sum(runningCosts)</code>&nbsp;,其中&nbsp;<code>max(chargeTimes)</code>&nbsp;是这&nbsp;<code>k</code>&nbsp;个机器人中最大充电时间,<code>sum(runningCosts)</code>&nbsp;是这 <code>k</code>&nbsp;个机器人的运行时间之和。</p>
<p>请你返回在 <strong>不超过</strong>&nbsp;<code>budget</code>&nbsp;的前提下,你 <strong>最多</strong>&nbsp;可以 <strong>连续</strong>&nbsp;运行的机器人数目为多少。</p>
<p>&nbsp;</p>
<p><strong>示例 1</strong></p>
<pre>
<b>输入:</b>chargeTimes = [3,6,1,3,4], runningCosts = [2,1,3,4,5], budget = 25
<b>输出:</b>3
<b>解释:</b>
可以在 budget 以内运行所有单个机器人或者连续运行 2 个机器人。
选择前 3 个机器人,可以得到答案最大值 3 。总开销是 max(3,6,1) + 3 * sum(2,1,3) = 6 + 3 * 6 = 24 ,小于 25 。
可以看出无法在 budget 以内连续运行超过 3 个机器人,所以我们返回 3 。
</pre>
<p><strong>示例 2</strong></p>
<pre>
<b>输入:</b>chargeTimes = [11,12,19], runningCosts = [10,8,7], budget = 19
<b>输出:</b>0
<b>解释:</b>即使运行任何一个单个机器人,还是会超出 budget所以我们返回 0 。
</pre>
<p>&nbsp;</p>
<p><strong>提示:</strong></p>
<ul>
<li><code>chargeTimes.length == runningCosts.length == n</code></li>
<li><code>1 &lt;= n &lt;= 5 * 10<sup>4</sup></code></li>
<li><code>1 &lt;= chargeTimes[i], runningCosts[i] &lt;= 10<sup>5</sup></code></li>
<li><code>1 &lt;= budget &lt;= 10<sup>15</sup></code></li>
</ul>