leetcode-1744-你能在你最喜欢那天迟到你最喜欢的糖果吗?

你能在你最喜欢那天迟到你最喜欢的糖果吗?

题面

leetcode题目

给你一个下标从 \(0\) 开始的正整数数组 \(candiesCount\) ,其中 \(candiesCount[i]\) 表示你拥有的第 \(i\) 类糖果的数目。同时给你一个二维数组 \(queries\) ,其中 \(queries[i] = [favoriteType_i, favoriteDay_i, dailyCap_i]\) 。

你按照如下规则进行一场游戏:

  • 你从第 \(0\) 天开始吃糖果。
  • 你在吃完 所有 第 \(i - 1\) 类糖果之前,不能 吃任何一颗第 \(i\) 类糖果。
  • 在吃完所有糖果之前,你必须每天 至少 吃 一颗 糖果。

请你构建一个布尔型数组 \(answer\) ,满足 \(answer.length == queries.length\)\(answer[i]\) 为 \(true\) 的条件是:在每天吃 不超过 \(dailyCap_i\) 颗糖果的前提下,你可以在第 \(favoriteDay_i\) 天吃到第 \(favoriteType_i\) 类糖果;否则 \(answer[i]\) 为 \(false\) 。注意,只要满足上面 \(3\) 条规则中的第二条规则,你就可以在同一天吃不同类型的糖果。

请你返回得到的数组 \(answer\) 。

example

输入:\(candiesCount = [7,4,5,3,8]\), \(queries = [[0,2,2],[4,2,4],[2,13,1000000000]]\)
输出:\([true,false,true]\)
提示:
1- 在第 \(0\) 天吃 \(2\) 颗糖果(类型 \(0\)),第 \(1\) 天吃 \(2\) 颗糖果(类型 \(0\)),第 \(2\) 天你可以吃到类型 \(0\) 的糖果。
2- 每天你最多吃 \(4\) 颗糖果。即使第 \(0\) 天吃 \(4\) 颗糖果(类型 \(0\)),第 \(1\) 天吃 \(4\) 颗糖果(类型 \(0\) 和类型 \(1\)),你也没办法在第 \(2\) 天吃到类型 \(4\) 的糖果。换言之,你没法在每天吃 \(4\) 颗糖果的限制下在第 \(2\) 天吃到第 \(4\) 类糖果。
3- 如果你每天吃 \(1\) 颗糖果,你可以在第 \(13\) 天吃到类型 \(2\) 的糖果。

阅读更多

leetcode-342-4的幂

4的幂

题面

leetcode题目 给定一个整数,写一个函数来判断它是否是 \(4\) 的幂次方。如果是,返回 \(true\) ;否则,返回 \(false\)

整数 \(n\)\(4\) 的幂次方需满足:存在整数 \(x\) 使得 \(n == 4^x\)

example

输入:n = 16
输出:true

阅读更多

leetcode-1074-元素和为目标值的子矩阵数量

元素和为目标值的子矩阵数量

题面

leetcode题目

给出矩阵 \(matrix\) 和目标值 \(target\),返回元素总和等于目标值的非空子矩阵的数量。

子矩阵 \(x_1, y_1, x_2, y_2\) 是满足 \(x_1\leq x\leq x_2\) 且 \(y_1\leq y\leq y_2\) 的所有单元 \(matrix[x][y]\) 的集合。

如果 \((x_1, y_1, x_2, y_2)\) 和 \((x_1^{'}, y_1^{'}, x_2^{'}, y_2^{'})\) 两个子矩阵中部分坐标不同(如:\(x_1\neq x_1^{'}\)),那么这两个子矩阵也不同。

example

示例

输入:\(matrix = [[0,1,0],[1,1,1],[0,1,0]]\), \(target = 0\)
输出:\(4\)
解释:四个只含 \(0\)\(1\times 1\) 子矩阵。

阅读更多

leetcode-477-汉明距离总和

汉明距离综合

题面

leetcode题目

两个整数的 汉明距离 指的是这两个数字的二进制数对应位不同的数量。

计算一个数组中,任意两个数之间汉明距离的总和。

example

输入: 4, 14, 2

输出: 6

解释: 在二进制表示中,4表示为0100,14表示为1110,2表示为0010。(这样表示是为了体现后四位之间关系)
所以答案为:
\[HammingDistance(4, 14) + HammingDistance(4, 2) + HammingDistance(14, 2) = 2 + 2 + 2 = 6\]

阅读更多

leetcode-1177-构建回文串检测

构建回文串检测

题面

leetcode题目

给你一个字符串 \(s\),请你对 \(s\) 的子串进行检测。

每次检测,待检子串都可以表示为 \(queries[i] = [left, right, k]\)。我们可以 重新排列 子串 \(s[left], \cdots, s[right]\),并从中选择 最多 \(k\) 项替换成任何小写英文字母。  

如果在上述检测过程中,子串可以变成回文形式的字符串,那么检测结果为 true,否则结果为 false。

返回答案数组 \(answer[]\),其中 \(answer[i]\) 是第 i 个待检子串 \(queries[i]\) 的检测结果。

注意:在替换时,子串中的每个字母都必须作为 独立的 项进行计数,也就是说,如果 \(s[left\cdots right] = aaa\) 且\(k = 2\),我们只能替换其中的两个字母。(另外,任何检测都不会修改原始字符串 \(s\),可以认为每次检测都是独立的)

example

输入:s = "abcda", queries = [[3,3,0],[1,2,0],[0,3,1],[0,3,2],[0,4,1]]
输出:[true,false,false,true,true]
解释:
queries[0] : 子串 = "d",回文。
queries[1] : 子串 = "bc",不是回文。
queries[2] : 子串 = "abcd",只替换 1 个字符是变不成回文串的。
queries[3] : 子串 = "abcd",可以变成回文的 "abba"。 也可以变成 "baab",先重新排序变成 "bacd",然后把 "cd" 替换为 "ab"。
queries[4] : 子串 = "abcda",可以变成回文的 "abcba"。

提示

  • \(1 <= s.length, queries.length <= 10^5\)
  • \(0 <= queries[i][0] <= queries[i][1] < s.length\)
  • \(0 <= queries[i][2] <= s.length\)
  • \(s\) 中只有小写英文字母
阅读更多

leetcode-461-汉明距离

汉明距离

题面

leetcode题目

两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。

给出两个整数 x 和 y,计算它们之间的汉明距离。 注意: \(0 \leq x, y\eq 2^31\)

example

输入: x = 1, y = 4

输出: 2

解释

上面的箭头指出了对应二进制位不同的位置。

阅读更多

leetcode-1190-反转每对括号间的子串

反转每对括号间的子串

题面

leetcode题目

给出一个字符串 s(仅含有小写英文字母和括号)。
请你按照从括号内到外的顺序,逐层反转每对匹配括号中的字符串,并返回最终的结果。
注意,您的结果中 不应 包含任何括号。

example

example 1

输入:s = "(abcd)" 输出:"dcba"

example 2

输入:s = "(u(love)i)" 输出:"iloveu"

example 3

输入:s = "(ed(et(oc))el)" 输出:"leetcode"

阅读更多

leetcode-664-奇怪的打印机

奇怪的打印机

题面

leetcode题目

有台奇怪的打印机有以下两个特殊要求:
打印机每次只能打印由 同一个字符 组成的序列。
每次可以在任意起始和结束位置打印新字符,并且会覆盖掉原来已有的字符。
给你一个字符串 s ,你的任务是计算这个打印机打印它需要的最少打印次数。

example

输入:s = "aaabbb"
输出:2
解释:首先打印 "aaa" 然后打印 "bbb"。

阅读更多

leetcode-810-黑板异或游戏

黑板异或游戏

题面

leetcode题目

黑板上写着一个非负整数数组 nums[i] 。Alice 和 Bob 轮流从黑板上擦掉一个数字,Alice 先手。如果擦除一个数字后,剩余的所有数字按位异或运算得出的结果等于 0 的话,当前玩家游戏失败。 (另外,如果只剩一个数字,按位异或运算得到它本身;如果无数字剩余,按位异或运算结果为 0。)

并且,轮到某个玩家时,如果当前黑板上所有数字按位异或运算结果等于 0,这个玩家获胜。
假设两个玩家每步都使用最优解,当且仅当 Alice 获胜时返回 true。

example

输入:nums = [1, 1, 2] 输出:false

阅读更多

leetcode-872-叶子相似的树

叶子相似的树

题面

leetcode题目

请考虑一棵二叉树上所有的叶子,这些叶子的值按从左到右的顺序排列形成一个 叶值序列 。
leetcode-872-problem 举个例子,如上图所示,给定一棵叶值序列为 (6, 7, 4, 9, 8) 的树。
如果有两棵二叉树的叶值序列是相同,那么我们就认为它们是 叶相似 的。
如果给定的两个根结点分别为 root1 和 root2 的树是叶相似的,则返回 true;否则返回 false 。

example

leetcode-872-example 输入:root1 = [3,5,1,6,2,9,8,null,null,7,4], root2 = [3,5,1,6,7,4,2,null,null,null,null,null,null,9,8]
输出:true

阅读更多