leetcode **679. 24 点游戏(待研究)

【题目】**679. 24 点游戏你有 4 张写有 1 到 9 数字的牌。你需要判断是否能通过 *,/,+,-,(,) 的运算得到 24。示例 1:输入: [4, 1, 8, 7]输出: True解释: (8-4) * (7-1) = 24示例 2:输入: [1, 2, 1, 2]输出: False注意:除法运算符 / 表示实数除法,而不是整数除法。例如 4 / (1 - 2/3) = 12 。每个运算符对两个数进行运算。特别是我们不能用 - 作为一元运算符。例如,[1, 1, 1
分类: 其他 发布时间: 09-12 11:43 阅读次数: 0

leetcode *201. 数字范围按位与

【题目】*201. 数字范围按位与461. 汉明距离*201. 数字范围按位与给定范围 [m, n],其中 0 <= m <= n <= 2147483647,返回此范围内所有数字的按位与(包含 m, n 两端点)。示例 1:输入: [5,7]输出: 4示例 2:输入: [0,1]输出: 0【解题思路1】位移得到公共前缀找规律可以发现,对所有数字执行按位与运算的结果是所有对应二进制字符串的公共前缀再用零补上后面的剩余位。证明:假设对于所有这些二进制串,前 i
分类: 其他 发布时间: 09-12 11:43 阅读次数: 0

leetcode 5495. 圆形赛道上经过次数最多的扇区(周赛203)

【题目】5495. 圆形赛道上经过次数最多的扇区给你一个整数 n 和一个整数数组 rounds 。有一条圆形赛道由 n 个扇区组成,扇区编号从 1 到 n 。现将在这条赛道上举办一场马拉松比赛,该马拉松全程由 m 个阶段组成。其中,第 i 个阶段将会从扇区 rounds[i - 1] 开始,到扇区 rounds[i] 结束。举例来说,第 1 阶段从 rounds[0] 开始,到 rounds[1] 结束。请你以数组形式返回经过次数最多的那几个扇区,按扇区编号 升序 排列。注意,赛道按扇区编号升序逆时针
分类: 其他 发布时间: 09-12 11:43 阅读次数: 0

leetcode *5496. 你可以获得的最大硬币数目(周赛203)

【题目】*5496. 你可以获得的最大硬币数目有 3n 堆数目不一的硬币,你和你的朋友们打算按以下方式分硬币:每一轮中,你将会选出 任意 3 堆硬币(不一定连续)。Alice 将会取走硬币数量最多的那一堆。你将会取走硬币数量第二多的那一堆。Bob 将会取走最后一堆。重复这个过程,直到没有更多硬币。给你一个整数数组 piles ,其中 piles[i] 是第 i 堆中硬币的数目。返回你可以获得的最大硬币数目。示例 1:输入:piles = [2,4,1,2,7,8]输出:9解释:选出
分类: 其他 发布时间: 09-12 11:43 阅读次数: 0

leetcode *5497. 查找大小为 M 的最新分组(周赛203)

【题目】*5497. 查找大小为 M 的最新分组给你一个数组 arr ,该数组表示一个从 1 到 n 的数字排列。有一个长度为 n 的二进制字符串,该字符串上的所有位最初都设置为 0 。在从 1 到 n 的每个步骤 i 中(假设二进制字符串和 arr 都是从 1 开始索引的情况下),二进制字符串上位于位置 arr[i] 的位将会设为 1 。给你一个整数 m ,请你找出二进制字符串上存在长度为 m 的一组 1 的最后步骤。一组 1 是一个连续的、由 1 组成的子串,且左右两边不再有可以延伸的 1 。返
分类: 其他 发布时间: 09-12 11:43 阅读次数: 0

leetcode *491. 递增子序列

【题目】*491. 递增子序列给定一个整型数组, 你的任务是找到所有该数组的递增子序列,递增子序列的长度至少是2。示例:输入: [4, 6, 7, 7]输出: [[4, 6], [4, 7], [4, 6, 7], [4, 6, 7, 7], [6, 7], [6, 7, 7], [7,7], [4,7,7]]说明:给定数组的长度不会超过15。数组中的整数范围是 [-100,100]。给定数组中可能包含重复数字,相等的数字应该被视为递增的一种情况。【解题思路1】递归class Solu
分类: 其他 发布时间: 09-12 11:43 阅读次数: 0

leetcode *17. 电话号码的字母组合

【题目】*17. 电话号码的字母组合给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例:输入:"23"输出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].说明:尽管上面的答案是按字典序排列的,但是你可以任意选择答案输出的顺序。【解题思路1】递归 回溯class Solution { public List<String&
分类: 其他 发布时间: 09-12 11:43 阅读次数: 0

leetcode *332. 重新安排行程(欧拉回路 / 欧拉通路)

【题目】*332. 重新安排行程753. 破解保险箱给定一个机票的字符串二维数组 [from, to],子数组中的两个成员分别表示飞机出发和降落的机场地点,对该行程进行重新规划排序。所有这些机票都属于一个从 JFK(肯尼迪国际机场)出发的先生,所以该行程必须从 JFK 开始。说明:如果存在多种有效的行程,你可以按字符自然排序返回最小的行程组合。例如,行程 [“JFK”, “LGA”] 与 [“JFK”, “LGB”] 相比就更小,排序更靠前所有的机场都用三个大写字母表示(机场代码)。假定所有机票
分类: 其他 发布时间: 09-12 11:43 阅读次数: 0

leetcode **214. 最短回文串

【题目】**214. 最短回文串给定一个字符串 s,你可以通过在字符串前面添加字符将其转换为回文串。找到并返回可以用这种方式转换的最短回文串。示例 1:输入: "aacecaaa"输出: "aaacecaaa"示例 2:输入: "abcd"输出: "dcbabcd"【解题思路1】字符串哈希class Solution { public String shortestPalindrome(String s) { int n = s.length();
分类: 其他 发布时间: 09-12 11:43 阅读次数: 0

leetcode *841. 钥匙和房间

【题目】*841. 钥匙和房间有 N 个房间,开始时你位于 0 号房间。每个房间有不同的号码:0,1,2,…,N-1,并且房间里可能有一些钥匙能使你进入下一个房间。在形式上,对于每个房间 i 都有一个钥匙列表 rooms[i],每个钥匙 rooms[i][j] 由 [0,1,…,N-1] 中的一个整数表示,其中 N = rooms.length。 钥匙 rooms[i][j] = v 可以打开编号为 v 的房间。最初,除 0 号房间外的其余所有房间都被锁住。你可以自由地在房间之间来回走动。如果能进
分类: 其他 发布时间: 09-12 11:43 阅读次数: 0

leetcode *486. 预测赢家

【题目】*486. 预测赢家给定一个表示分数的非负整数数组。 玩家 1 从数组任意一端拿取一个分数,随后玩家 2 继续从剩余数组任意一端拿取分数,然后玩家 1 拿,…… 。每次一个玩家只能拿取一个分数,分数被拿取之后不再可取。直到没有剩余分数可取时游戏结束。最终获得分数总和最多的玩家获胜。给定一个表示分数的数组,预测玩家1是否会成为赢家。你可以假设每个玩家的玩法都会使他的分数最大化。示例 1:输入:[1, 5, 2]输出:False解释:一开始,玩家1可以从1和2中进行选择。如果他选择 2(或
分类: 其他 发布时间: 09-12 11:43 阅读次数: 0

leetcode *877. 石子游戏

【题目】*877. 石子游戏亚历克斯和李用几堆石子在做游戏。偶数堆石子排成一行,每堆都有正整数颗石子 piles[i] 。游戏以谁手中的石子最多来决出胜负。石子的总数是奇数,所以没有平局。亚历克斯和李轮流进行,亚历克斯先开始。 每回合,玩家从行的开始或结束处取走整堆石头。 这种情况一直持续到没有更多的石子堆为止,此时手中石子最多的玩家获胜。假设亚历克斯和李都发挥出最佳水平,当亚历克斯赢得比赛时返回 true ,当李赢得比赛时返回 false 。示例:输入:[5,3,4,5]输出:true解释
分类: 其他 发布时间: 09-12 11:43 阅读次数: 0

leetcode *剑指 Offer 20. 表示数值的字符串(待研究)

【题目】*剑指 Offer 20. 表示数值的字符串请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100"、“5e2”、"-123"、“3.1416”、"-1E-16"、“0123"都表示数值,但"12e”、“1a3.14”、“1.2.3”、"±5"及"12e+5.4"都不是。【解题思路1】确定有限状态自动机class Solution { public boolean isNumber(String s) { Map<State, Map
分类: 其他 发布时间: 09-12 11:43 阅读次数: 0

leetcode **51. N 皇后(待研究)

【题目】**51. N 皇后n 皇后问题研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。上图为 8 皇后问题的一种解法。给定一个整数 n,返回所有不同的 n 皇后问题的解决方案。每一种解法包含一个明确的 n 皇后问题的棋子放置方案,该方案中 ‘Q’ 和 ‘.’ 分别代表了皇后和空位。示例:输入:4输出:[ [".Q..", // 解法 1 "...Q", "Q...", "..Q."], ["..Q.", // 解法 2 "Q..
分类: 其他 发布时间: 09-12 11:43 阅读次数: 0

Sublime配置LaTeXTools + Skim + MacTex(macOS)

主博客里有Sublime的安装以及Sublime其他环境配置文章目录6. Sublime配置LaTeXTools + Skim + MacTex(macOS)6.1 需要安装的软件6.2 Skim自动预览设置6.3 配置中文文档编写环境6.4 测试6.5 Skim正反向定位6. Sublime配置LaTeXTools + Skim + MacTex(macOS)6.1 需要安装的软件使用Package Control安装插件 LaTeXToolsSkim,pdf预览器,Skim官网下载即可Ma
分类: 其他 发布时间: 09-12 11:43 阅读次数: 0

leetcode *60. 第k个排列

【题目】*60. 第k个排列*46. 全排列*60. 第k个排列给出集合 [1,2,3,…,n],其所有元素共有 n! 种排列。按大小顺序列出所有排列情况,并一一标记,当 n = 3 时, 所有排列如下:"123""132""213""231""312""321"给定 n 和 k,返回第 k 个排列。说明:给定 n 的范围是 [1, 9]。给定 k 的范围是[1, n!]。示例 1:输入: n = 3, k = 3输出: "213"示例 2:输入: n = 4,
分类: 其他 发布时间: 09-12 11:43 阅读次数: 0

leetcode *347. 前 K 个高频元素(堆排序)

【题目】*347. 前 K 个高频元素给定一个非空的整数数组,返回其中出现频率前 k 高的元素。示例 1:输入: nums = [1,1,1,2,2,3], k = 2输出: [1,2]示例 2:输入: nums = [1], k = 1输出: [1]提示:你可以假设给定的 k 总是合理的,且 1 ≤ k ≤ 数组中不相同的元素的个数。你的算法的时间复杂度必须优于 O(n log n) , n 是数组的大小。题目数据保证答案唯一,换句话说,数组中前 k 个高频元素的集合是唯一的。
分类: 其他 发布时间: 09-12 11:43 阅读次数: 0

leetcode *77. 组合

【题目】*77. 组合给定两个整数 n 和 k,返回 1 … n 中所有可能的 k 个数的组合。示例:输入: n = 4, k = 2输出:[ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4],]【解题思路1】全排列 - 回溯问题变成从n-1里选k个 的组合,加上从n-1里选k-1的组合考虑剪枝,如果 n = 7, k = 4,从 5 开始搜索就已经没有意义了,这是因为:即使把 5 选上,后面的数只有 6 和 7,一共就 3 个候
分类: 其他 发布时间: 09-12 11:43 阅读次数: 0

leetcode *39. 组合总和

【题目】*39. 组合总和给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的数字可以无限制重复被选取。说明:所有数字(包括 target)都是正整数。解集不能包含重复的组合。示例 1:输入:candidates = [2,3,6,7], target = 7,所求解集为:[ [7], [2,2,3]]示例 2:输入:candidates = [2,3
分类: 其他 发布时间: 09-12 11:43 阅读次数: 0

leetcode *40. 组合总和 II

【题目】*40. 组合总和 II给定一个数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的每个数字在每个组合中只能使用一次。说明:所有数字(包括目标数)都是正整数。解集不能包含重复的组合。示例 1:输入: candidates = [10,1,2,7,6,1,5], target = 8,所求解集为:[ [1, 7], [1, 2, 5], [2, 6], [1, 1,
分类: 其他 发布时间: 09-12 11:43 阅读次数: 0