貪心演算法(1) 雙指標貪心演算法

2021-10-05 21:43:22 字數 1435 閱讀 8533

/**

* leetcode例題:

* * 給定乙個字串 (s) 和乙個字元模式 (p) ,實現乙個支援 '?' 和 '*' 的萬用字元匹配。

* * '?' 可以匹配任何單個字元。

* '*' 可以匹配任意字串(包括空字串)。

* 兩個字串完全匹配才算匹配成功。

* * 說明:

* * s 可能為空,且只包含從 a-z 的小寫字母。

* p 可能為空,且只包含從 a-z 的小寫字母,以及字元 ? 和 *。

* 示例 1:

* * 輸入:

* s = "aa"

* p = "a"

* 輸出: false

* 解釋: "a" 無法匹配 "aa" 整個字串。

* 示例 2:

* * 輸入:

* s = "aa"

* p = "*"

* 輸出: true

* 解釋: '*' 可以匹配任意字串。

* 示例 3:

* * 輸入:

* s = "cb"

* p = "?a"

* 輸出: false

* 解釋: '?' 可以匹配 'c', 但第二個 'a' 無法匹配 'b'。

* 示例 4:

* * 輸入:

* s = "adceb"

* p = "*a*b"

* 輸出: true

* 解釋: 第乙個 '*' 可以匹配空字串, 第二個 '*' 可以匹配字串 "dce".

* 示例 5:

* * 輸入:

* s = "acdcb"

* p = "a*c?b"

* 輸入: false

* */

public

class

greedyalgorithm

}class

ismatchsolution

else

}int i =0;

int j =0;

int istar =-1

;int jstar =-1

;int slen = s.

length()

;int plen = p.

length()

;while

(i < slen)

else

if(j < plen && p.

charat

(j)==

'*')

else

if(jstar >=0)

else

}while

(j < plen && p.

charat

(j)==

'*')

return j == plen;

}}

**輸出:

true

貪心演算法(1)

貪心演算法是求解最優解的一類問題,在貪心演算法中,每一步求解的都是最優解,但是整體來說不一定是最優的。在求解貪心演算法時,首先要通過題目總結出貪心準則,利用貪心準則進行求解。前兩天看了牛客網,準備通過考研複習空閒時間學習一下演算法,提高程式設計能力,不至於手生。下面是一道貪心演算法的題 時間限制 1...

貪心演算法1

一 基本概念 所謂貪心演算法是指,在對問題求解時,總是做出在 當前看來是最好的選擇。也就是說,不從整體最優上加以考慮,他所做出的僅是在某種意義上的 區域性最優解。貪心演算法沒有固定的演算法框架,演算法設計的關鍵是貪心策略的選擇。必須注意的是,貪心演算法不是對所有問題都能得到整體最優解,選擇的貪心策略...

貪心演算法1

1 學前須知 這是一種求最優解的方法。它是按照某種最優策略,將複雜問題層層分解成子問題 每次一般只有乙個 並由子問題的最優解 回溯 出整個問題的最優解。貪心演算法不是從整體上考慮問題,它所做出的選擇只是在某種意義上的區域性最優解,而由問題自身的特性決定了該題運用貪心演算法可以得到最優解。如果乙個問題...