貪心演算法是求解最優解的一類問題,在貪心演算法中,每一步求解的都是最優解,但是整體來說不一定是最優的。
在求解貪心演算法時,首先要通過題目總結出貪心準則,利用貪心準則進行求解。
前兩天看了牛客網,準備通過考研複習空閒時間學習一下演算法,提高程式設計能力,不至於手生。
下面是一道貪心演算法的題:
時間限制:1秒 空間限制:
32768k 熱度指數
:55464
題目描述
設有n個正整數,將他們連線成一排,組成乙個最大的多位整數。
如:n=3時,3個整數13,312,343,連成的最大整數為34331213。
如:n=4時,4個整數7,13,4,246連線成的最大整數為7424613。
輸入描述:
有多組測試樣例,每組測試樣例包含兩行,第一行為乙個整數n(n<=100),第二行包含n個數(每個數不超過1000,空格分開)。
輸出描述:
每組資料輸出乙個表示最大的整數。
示例1 輸入
212 123
47 13 4 246 輸出
12312
7424613
c++**:
#include
#include
using namespace std;
int main(void)
for(i=0;i}}
for(i=0;i}}
分析:首先想到的方法是對字串進行排序,把字串大的排在前面,小的排在後面,在牛客網上提交時,發現出錯,後來想了一下這種做法是錯的,例如:12和121,排序12112,但實際上最大值是12121,索引在排序時,應該是a+b與b+a進行比較,如果a+b
貪心演算法1
一 基本概念 所謂貪心演算法是指,在對問題求解時,總是做出在 當前看來是最好的選擇。也就是說,不從整體最優上加以考慮,他所做出的僅是在某種意義上的 區域性最優解。貪心演算法沒有固定的演算法框架,演算法設計的關鍵是貪心策略的選擇。必須注意的是,貪心演算法不是對所有問題都能得到整體最優解,選擇的貪心策略...
貪心演算法1
1 學前須知 這是一種求最優解的方法。它是按照某種最優策略,將複雜問題層層分解成子問題 每次一般只有乙個 並由子問題的最優解 回溯 出整個問題的最優解。貪心演算法不是從整體上考慮問題,它所做出的選擇只是在某種意義上的區域性最優解,而由問題自身的特性決定了該題運用貪心演算法可以得到最優解。如果乙個問題...
貪心演算法(1) 雙指標貪心演算法
leetcode例題 給定乙個字串 s 和乙個字元模式 p 實現乙個支援 和 的萬用字元匹配。可以匹配任何單個字元。可以匹配任意字串 包括空字串 兩個字串完全匹配才算匹配成功。說明 s 可能為空,且只包含從 a z 的小寫字母。p 可能為空,且只包含從 a z 的小寫字母,以及字元 和 示例 1 輸...