题目链接
英文链接:https://leetcode.com/problems/longest-valid-parentheses/
中文链接:https://leetcode-cn.com/problems/longest-valid-parentheses/
题目详述
给定一个只包含 ‘(‘ 和 ‘)’ 的字符串,找出最长的包含有效括号的子串的长度。
示例 1:
1 | 输入: "(()" |
示例 2:
1 | 输入: ")()())" |
英文链接:https://leetcode.com/problems/longest-valid-parentheses/
中文链接:https://leetcode-cn.com/problems/longest-valid-parentheses/
给定一个只包含 ‘(‘ 和 ‘)’ 的字符串,找出最长的包含有效括号的子串的长度。
示例 1:
1 | 输入: "(()" |
示例 2:
1 | 输入: ")()())" |
英文链接:https://leetcode.com/problems/coin-change-2/
中文链接:https://leetcode-cn.com/problems/coin-change-2/
给定不同面额的硬币和一个总金额。写出函数来计算可以凑成总金额的硬币组合数。假设每一种面额的硬币有无限个。
示例 1:
1 | 输入: amount = 5, coins = [1, 2, 5] |
示例 2:
1 | 输入: amount = 3, coins = [2] |
示例 3:
1 | 输入: amount = 10, coins = [10] |
注意:
你可以假设:
英文链接:https://leetcode.com/problems/excel-sheet-column-number/
中文链接:https://leetcode-cn.com/problems/excel-sheet-column-number/
给定一个Excel表格中的列名称,返回其相应的列序号。
例如,
A -> 1
B -> 2
C -> 3
...
Z -> 26
AA -> 27
AB -> 28
...
示例 1:
1 | 输入: "A" |
示例 2:
1 | 输入: "AB" |
示例 3:
1 | 输入: "ZY" |
英文链接:https://leetcode.com/problems/excel-sheet-column-title/
中文链接:https://leetcode-cn.com/problems/excel-sheet-column-title/
给定一个正整数,返回它在 Excel 表中相对应的列名称。
例如,
1 -> A
2 -> B
3 -> C
...
26 -> Z
27 -> AA
28 -> AB
...
示例 1:
1 | 输入: 1 |
示例 2:
1 | 输入: 28 |
示例 3:
1 | 输入: 701 |
英文链接:https://leetcode.com/problems/longest-chunked-palindrome-decomposition/
中文链接:https://leetcode-cn.com/problems/longest-chunked-palindrome-decomposition/
段式回文 其实与 一般回文 类似,只不过是最小的单位是 一段字符 而不是 单个字母。
举个例子,对于一般回文 “abcba” 是回文,而 “volvo” 不是,但如果我们把 “volvo” 分为 “vo”、”l”、”vo” 三段,则可以认为 “(vo)(l)(vo)” 是段式回文(分为 3 段)。
给你一个字符串 text,在确保它满足段式回文的前提下,请你返回 段 的 最大数量 k。
如果段的最大数量为 k,那么存在满足以下条件的 a_1, a_2, …, a_k:
每个 a_i 都是一个非空字符串;
将这些字符串首位相连的结果 a_1 + a_2 + … + a_k 和原始字符串 text 相同;
对于所有1 <= i <= k,都有 a_i = a_{k+1 - i}。
示例 1:
1 | 输入:text = "ghiabcdefhelloadamhelloabcdefghi" |
示例 2:
1 | 输入:text = "merchant" |
示例 3:
1 | 输入:text = "antaprezatepzapreanta" |
示例 4:
1 | 输入:text = "aaa" |
提示:
英文链接:https://leetcode.com/problems/decrease-elements-to-make-array-zigzag/
中文链接:https://leetcode-cn.com/problems/decrease-elements-to-make-array-zigzag/
给你一个整数数组 nums,每次 操作 会从中选择一个元素并 将该元素的值减少 1。
如果符合下列情况之一,则数组 A 就是 锯齿数组:
每个偶数索引对应的元素都大于相邻的元素,即 A[0] > A[1] < A[2] > A[3] < A[4] > …
或者,每个奇数索引对应的元素都大于相邻的元素,即 A[0] < A[1] > A[2] < A[3] > A[4] < …
返回将数组 nums 转换为锯齿数组所需的最小操作次数。
示例 1:
1 | 输入:nums = [1,2,3] |
示例 2:
1 | 输入:nums = [9,6,1,6,2] |
提示:
英文链接:https://leetcode.com/problems/stone-game-ii/
中文链接:https://leetcode-cn.com/problems/stone-game-ii/
亚历克斯和李继续他们的石子游戏。许多堆石子 排成一行,每堆都有正整数颗石子 piles[i]。游戏以谁手中的石子最多来决出胜负。
亚历克斯和李轮流进行,亚历克斯先开始。最初,M = 1。
在每个玩家的回合中,该玩家可以拿走剩下的 前 X 堆的所有石子,其中 1 <= X <= 2M。然后,令 M = max(M, X)。
游戏一直持续到所有石子都被拿走。
假设亚历克斯和李都发挥出最佳水平,返回亚历克斯可以得到的最大数量的石头。
示例:
1 | 输入:piles = [2,7,9,4,4] |
提示:
ArrayList 的底层是数组队列,相当于动态数组。与 Java 中的数组相比,它的容量能动态增长。在添加大量元素前,应用程序可以使用 ensureCapacity
操作来增加 ArrayList 实例的容量。这可以减少递增式再分配的数量。
继承于 AbstractList,实现了 List, RandomAccess, Cloneable, java.io.Serializable 这些接口。
ArrayList 继承了AbstractList,实现了List。它是一个数组队列,提供了相关的添加、删除、修改、遍历等功能。
ArrayList 实现了RandomAccess 接口, RandomAccess 是一个标志接口,表明实现这个这个接口的 List 集合是支持快速随机访问的。在 ArrayList 中,我们即可以通过元素的序号快速获取元素对象,这就是快速随机访问。
ArrayList 实现了Cloneable 接口,即覆盖了函数 clone(),能被克隆。
ArrayList 实现java.io.Serializable 接口,这意味着ArrayList支持序列化,能通过序列化去传输。
和 Vector 不同,ArrayList 中的操作不是线程安全的!所以,建议在单线程中才使用 ArrayList,而在多线程中可以选择 Vector 或者 CopyOnWriteArrayList。