動態規劃題
2140. 解決智力問題https://leetcode.cn/problems/solving-questions-with-brainpower/
給你一個下標從?0?開始的二維整數數組?questions
?,其中?questions[i] = [pointsi, brainpoweri]
?。
這個數組表示一場考試里的一系列題目,你需要?按順序?(也就是從問題?0
?開始依次解決),針對每個問題選擇?解決?或者?跳過?操作。解決問題?i
?將讓你?獲得??pointsi
?的分數,但是你將?無法?解決接下來的?brainpoweri
?個問題(即只能跳過接下來的?brainpoweri
?個問題)。如果你跳過問題?i
?,你可以對下一個問題決定使用哪種操作。
-
比方說,給你?
questions = [[3, 2], [4, 3], [4, 4], [2, 5]]
?:-
如果問題?
0
?被解決了, 那么你可以獲得?3
?分,但你不能解決問題?1
?和?2
?。 -
如果你跳過問題?
0
?,且解決問題?1
?,你將獲得?4
?分但是不能解決問題?2
?和?3
?。
-
提示:
-
1 <= questions.length <= 10^5
-
questions[i].length == 2
-
1 <= pointsi, brainpoweri <= 10^5
對了12/54的代碼:?
#define max(a,b) (((a)>(b))?(a):(b))
long long mostPoints(int** questions, int questionsSize, int* questionsColSize) {long long record[questionsSize];for(int i=0;i<questionsSize;i++) {record[i] = 0;}for(int i=0;i<questionsSize;i++) {record[i]=max(record[i],record[i]+questions[i][0]);const int temp=i+1+questions[i][1];if (temp<questionsSize) {record[temp]=max(record[temp],record[i]);}}return record[questionsSize-1];
}
?正則表達式
正則表達式(Regular Expression,簡稱 regex 或 regexp)是一種用于匹配字符串的模式。
1. 基本概念
正則表達式由字符和特殊符號組成,用于描述字符串的模式。使用正則表達式,可以檢查某個字符串是否符合特定的格式,或者從字符串中提取符合模式的部分。
2. 常用的正則表達式語法
2.1. 字符類
-
[abc]
:表示匹配?a
、b
?或?c
?中的任意一個字符。 -
[^abc]
:表示匹配任何不是?a
、b
?或?c
?的字符。 -
[a-z]
:表示匹配從?a
?到?z
?的所有小寫字母。 -
[A-Z]
:表示匹配從?A
?到?Z
?的所有大寫字母。 -
[0-9]
:表示匹配所有數字。
2.2. 預定義字符類
-
\d
:匹配任何一個數字,等同于?[0-9]
。 -
\D
:匹配任何非數字字符,等同于?[^0-9]
。 -
\w
:匹配任何一個字母、數字或下劃線,等同于?[a-zA-Z0-9_]
。 -
\W
:匹配任何非字母、數字或下劃線字符,等同于?[^a-zA-Z0-9_]
。 -
\s
:匹配任何空白字符(如空格、制表符、換行符等)。 -
\S
:匹配任何非空白字符。
2.3. 元字符
-
.
:匹配除換行符以外的任何單個字符。 -
^
:匹配輸入字符串的開始。 -
$
:匹配輸入字符串的結尾。 -
*
:表示匹配前一個元素零次或多次。 -
+
:表示匹配前一個元素一次或多次。 -
?
:表示匹配前一個元素零次或一次。 -
{n}
:匹配前一個元素恰好 n 次。 -
{n,}
:匹配前一個元素至少 n 次。 -
{n,m}
:匹配前一個元素至少 n 次,但不超過 m 次。
2.4. 分組和捕獲
-
(...)
:用于分組,記住匹配的子表達式。可以通過編號或名稱捕獲組。-
例:
(abc)
?將匹配?abc
?并將其作為組 1。
-
-
|
:表示“或”的關系。-
例:
abc|def
?可以匹配?abc
?或?def
。
-
3. 特殊的轉義字符
當需要匹配的字符具有特殊含義時,可以使用反斜杠?\
?進行轉義。例如:
-
\.
:匹配字面意思的句點?.
。 -
\*
:匹配字面意思的星號?*
。
?