国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當前位置: 首頁 > news >正文

wordpress調用分類圖片大小長沙靠譜的關鍵詞優(yōu)化

wordpress調用分類圖片大小,長沙靠譜的關鍵詞優(yōu)化,免費影視logo在線設計,網站建設參考文獻資料目錄 最長連續(xù)序列 解法一:暴力枚舉 復雜度 解法二:優(yōu)化解法一省去二層循環(huán)中不必要的遍歷 復雜度 最大子數(shù)組和 解法一:暴力枚舉 復雜度 解法二:貪心 復雜度 解法三:動態(tài)規(guī)劃 復雜度 最長連續(xù)序列 輸入輸…

目錄

最長連續(xù)序列

解法一:暴力枚舉

復雜度

解法二:優(yōu)化解法一省去二層循環(huán)中不必要的遍歷

復雜度

最大子數(shù)組和

解法一:暴力枚舉

復雜度

解法二:貪心

復雜度

解法三:動態(tài)規(guī)劃

復雜度


最長連續(xù)序列

輸入輸出示例:

解法一:暴力枚舉

兩層循環(huán),第一層循環(huán)是遍歷整個數(shù)組;第二層循環(huán)的目的是得到最長連續(xù)序列時間復雜度極高,效率低下。

1、如果不使用哈希表在枚舉過程中查找nums[i]+1時要通過遍歷整個數(shù)組來進行,因此時間復雜度是O(n^2)

2、使用哈希表枚在舉過程中雖說哈希表查找數(shù)據(jù)的時間復雜度是O(1),但第二次循環(huán)仍然需要執(zhí)行多次,最壞的情況下其時間復雜度也會接近O(n^2)

class Solution {
public:int longestConsecutive(vector<int>& nums) {if(0 == nums.size()) //注意:需要考慮nums為空的情況,此時的最長連續(xù)序列就是0return 0;unordered_set<int> hashtable;int max_length = INT_MIN;for(const auto& e:nums) //使用哈希表去重數(shù)據(jù)hashtable.emplace(e);for(const auto& e:hashtable){int tmp = e;int cnt = 1;while(hashtable.count(++tmp))++cnt;max_length = std::max(max_length,cnt);}return max_length;}
};

復雜度

時間復雜度: O(n^2)

空間復雜度:O(n)

解法二:優(yōu)化解法一省去二層循環(huán)中不必要的遍歷

class Solution {
public:int longestConsecutive(vector<int>& nums) {if(0 == nums.size())return 0;int size = nums.size();int max_length = 0;unordered_set<int> hashtable;for(const auto& e:nums)hashtable.insert(e);for(const auto& e:hashtable){if(!hashtable.count(e-1))//只在哈希表中找連續(xù)序列的第一個數(shù){int cnt = 1;int tmp = e;while(hashtable.count(++tmp))++cnt;max_length = std::max(max_length,cnt);}}return max_length;}
};

復雜度

時間復雜度:O(n)

空間復雜度:O(n)

最大子數(shù)組和

輸入輸出示例

解法一:暴力枚舉

兩層循環(huán),定義一個max_sum變量,第二層循環(huán)中定義一個tmp變量用來記錄第二層循環(huán)中連續(xù)子數(shù)組的和。

lass Solution {
public:int maxSubArray(vector<int>& nums) {int size = nums.size();int max_sum = INT_MIN;for(int i = 0;i<size;++i){int tmp = 0; //用來記錄連續(xù)子數(shù)組的和for(int j = i;j<size;++j){tmp += nums[j];max_sum = std::max(max_sum,tmp);}}return max_sum;}
};

該暴力枚舉會超出時間限制,不適合。

復雜度

時間復雜度:O(n^2)

空間復雜度:O(1)

解法二:貪心

class Solution {
public:int maxSubArray(vector<int>& nums) {int size = nums.size();int max_sum = nums[0]; //考慮到數(shù)組nums只有一個元素的時候,加上題目限制:子數(shù)組中至少包含一個元素int tmp = nums[0];for(int i = 1;i<size;++i){if(tmp > 0)tmp += nums[i];elsetmp = nums[i];max_sum = std::max(max_sum,tmp);}return max_sum;}
};

復雜度

時間復雜度:O(n)

空間復雜度:O(1)

解法三:動態(tài)規(guī)劃

定義一個dp數(shù)組,dp[i]表示以 i 位置結尾的子數(shù)組的最大和,利用已經有的dp[i-1]值求dp[i]。

class Solution {
public:int maxSubArray(vector<int>& nums) {int size = nums.size();vector<int> dp(size);//dp[i]表示以i位置結尾的連續(xù)子數(shù)組的最大和dp[0] = nums[0];int max_sum = dp[0];//當size == 1的時候程序不進入下面循環(huán),直接返回nums[0]for(int i = 1;i<size;++i){if(dp[i-1]>0)dp[i] = dp[i-1] + nums[i];elsedp[i] = nums[i];max_sum = std::max(max_sum,dp[i]);}return max_sum;}
};

復雜度

時間復雜度:O(n)

空間復雜度:O(n)

使用滾動數(shù)組將空間復雜度優(yōu)化為O(1):

class Solution {
public:int maxSubArray(vector<int>& nums) {int size = nums.size();//vector<int> dp(size);//dp[i]表示以i位置結尾的連續(xù)子數(shù)組的最大和int dp1 = nums[0];int dp2 = 0;int max_sum = dp1;for(int i = 1;i<size;++i){if((dp1+nums[i]) > nums[i])dp2 = dp1 + nums[i];elsedp2 = nums[i];max_sum = std::max(max_sum,dp2);dp1 = dp2;//更新dp1}return max_sum;}
};
http://aloenet.com.cn/news/41238.html

相關文章:

  • 海外域名提示風險網站嗎成都網站seo服務
  • 濟南網站建設維護公司關鍵詞挖掘工具網站
  • 哪些調查網站可以做問卷賺錢可以訪問境外的瀏覽器
  • 瑪伊網站做兼職加入要多少錢推廣哪個平臺好
  • b2b商城網站建設百度關鍵詞推廣多少錢
  • 做電影網站怎么掙錢下店拓客團隊
  • 百通互聯(lián)網站建設免費下優(yōu)化大師
  • 網站建設方案應該怎么做網站友鏈
  • 做網站賣假名牌違法嗎網站建設建站在線建站
  • 委托別人做網站 域名所有權2021年新聞摘抄
  • 企業(yè)網站建設基本步驟沈陽網站關鍵字優(yōu)化
  • 找個人做網站還是找企業(yè)做網站自己如何優(yōu)化網站排名
  • 廣西做網站的公司有哪些谷歌關鍵詞工具
  • 網站建設系統(tǒng)哪家便宜些seo廣告平臺
  • 手表到哪個網站買新網站應該怎么做seo
  • 天河做網站哪家好沒干過網絡推廣能干嗎
  • 通遼做網站制作公司一個公司可以做幾個百度推廣
  • 網購app有哪些?長沙seo計費管理
  • 網站設計的總結深圳網站快速排名優(yōu)化
  • 免費建站網站大全長沙網站推廣seo
  • 網站建設后臺是什么推廣聯(lián)盟平臺
  • 購物網站開發(fā)實戰(zhàn)企業(yè)網站優(yōu)化排名
  • 做國際貿易都用什么網站seo優(yōu)化排名是什么
  • 網站建設驗收標準銷售推廣方案
  • 烏魯木齊培訓網站建設網站自然優(yōu)化
  • 黃驊市第三中學關鍵詞優(yōu)化包年推廣
  • 如何寫一個可以做報價計算的網站網絡服務網絡推廣
  • 為什么自己做的網站別的電腦打不開廣州新聞最新消息今天
  • 怎么做游戲自動充值的網站重慶高端網站seo
  • 信息化平臺的功能介紹搜索引擎優(yōu)化 簡歷