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

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

高端手機網(wǎng)站 制作公司鄭州百度推廣開戶

高端手機網(wǎng)站 制作公司,鄭州百度推廣開戶,北京家裝設計師排名,wordpress客服機器人這道題本來想直接暴力回溯的,但是想了下還是算了,自己想這個思路完全想不出來,直接去看靈神的題解了,感覺還是很好懂的,強烈推薦去看看他的題解。 我們先討論最一般的情況:對于一組排列,我們要找…


這道題本來想直接暴力回溯的,但是想了下還是算了,自己想這個思路完全想不出來,直接去看靈神的題解了,感覺還是很好懂的,強烈推薦去看看他的題解。
我們先討論最一般的情況:對于一組排列,我們要找到它的下一個排列,就需要從右往左遍歷,找到第一個小于右邊相鄰元素的位置。例如,對于排列[3, 5, 1, 4, 2, 6, 1],我們要找下一個大于當前數(shù)的排列(nums[i] < nums[i + 1]),我們就需要找到元素2的位置i,它是從右往左數(shù),第一個小于右邊相鄰元素的數(shù),此時我們還不能簡單地將26簡單交換位置就草草了事,因為如果輸入是[3, 5, 1, 4, 2, 6, 0],將26交換位置將得到[3, 5, 1, 4, 6, 2, 0],顯然,下一個排列應當為[3, 5, 1, 4, 6, 0, 2]。因此,在找到i之后,我們可以得到如下性質(zhì):從i + 1到數(shù)組的最后一個元素,這段數(shù)字應當是降序排列的,這是因為i是從右往左數(shù)第一個小于右側相鄰元素的值,從i + 1到數(shù)組的倒數(shù)第二個元素,每一個元素都大于等于右邊相鄰的元素,從而形成降序排列。我們還需要尋找一個元素nums[j],使得nums[j]恰好為大于nums[i]的元素中的最小值,從右往左數(shù),第一個大于nums[i]的元素就是nums[j],對于輸入[3, 5, 1, 4, 2, 6, 0]nums[i] == 2nums[j] == 6,我們將其位置交換得到[3, 5, 1, 4, 6, 2, 0]。此時還沒有得到下一個排列,因為[i + 1, end)這個區(qū)間是降序排列的,我們?nèi)孕枰獙ζ溥M行逆轉為升序排列使其變得更小,最終得到下一個排列,因此我們通過reverse(nums.begin() + i + 1, nums.end());來實現(xiàn)反轉,從而得到下一個排列。
下面再來討論特殊情況,當原排列已經(jīng)是最大的排列,不可能得到更大的排列時,我們需要將其轉化為最小的排列,最大的排列一定是從頭到尾都降序排列,我們將其逆轉,得到升序排列,此時一定是最小的排列。
綜上所述,如果我們能找到符合條件的i,那么我們還需要進行第二步操作,找到符合條件的j,進行交換,如果找不到,就直接執(zhí)行第三步操作。第三步,將指定范圍內(nèi)的排列逆序。最終得到下一個排列。

class Solution {
public:void nextPermutation(vector<int>& nums) {int n = nums.size();//1.從右往左尋找第一個小于右側相鄰元素的數(shù)int i = n - 2;while(i >= 0 && nums[i] >= nums[i + 1])i--;//2.如果找到了,那么一定滿足i >= 0,如果不滿足,則跳過第2步//此時從i + 1到末尾一定是單調(diào)遞減的,因為i是從右往左數(shù)第一個小于右側相鄰元素的值if(i >= 0){int j = n - 1;while(nums[j] <= nums[i])j--;swap(nums[i], nums[j]);   //交換i和j的位置,數(shù)值已經(jīng)變大,但是可能不是最接近原數(shù)的下一個排列}//3.如果存在對應的i,則此階段需要進行最后的微調(diào),由于[i + 1, end)這個區(qū)間是降序排列的//我們?nèi)孕枰獙ζ溥M行逆轉為升序排列使其變得更小//如果沒有找到合適的i,則說明原來的排列已經(jīng)是最大值,我們需要將其逆序排列得到最小值reverse(nums.begin() + i + 1, nums.end());}
};
http://m.aloenet.com.cn/news/45175.html

相關文章:

  • 建設網(wǎng)站模板免費百度掃一掃識別圖片在線
  • wordpress登錄漏洞杭州網(wǎng)站排名seo
  • p2p網(wǎng)站建設源碼seo全國最好的公司
  • 長沙網(wǎng)站seo技巧今日足球賽事數(shù)據(jù)
  • 信息類網(wǎng)站制作bt鸚鵡磁力
  • 競價網(wǎng)站做seosem推廣軟件哪家好
  • 北京營銷型網(wǎng)站建設價格什么是sem
  • 高新網(wǎng)站建設多少錢國際國內(nèi)新聞最新消息今天
  • 如何制作企業(yè)的網(wǎng)站瀏覽器里面信息是真是假
  • 給學校做網(wǎng)站合肥百度競價推廣代理公司
  • 廈門百度網(wǎng)站建設優(yōu)化大師下載安裝app
  • wordpress實現(xiàn)pdf瀏覽seo網(wǎng)絡推廣機構
  • 寶安中心做網(wǎng)站網(wǎng)站公司網(wǎng)站建設
  • 《原始傳奇》官方網(wǎng)站seo推廣工具
  • 鐵嶺做網(wǎng)站信息網(wǎng)店推廣的渠道有哪些
  • 長治市人民政府門戶網(wǎng)站簡單的網(wǎng)站制作
  • 網(wǎng)站源碼推薦谷歌sem
  • 汽車網(wǎng)站更新怎么做口碑營銷的例子
  • 鄭州展廳設計制作公司seo綜合查詢什么意思
  • 旅游類網(wǎng)站如何做推廣百度推廣后臺
  • 目錄網(wǎng)站模板php搭建一個簡單的網(wǎng)站
  • iis7建立網(wǎng)站可以看封禁網(wǎng)站的瀏覽器
  • 做網(wǎng)站公司排名電話國際新聞快報
  • 外貿(mào)網(wǎng)站建設模板百度云客服人工電話
  • 企業(yè)網(wǎng)站注冊官網(wǎng)百度搜索結果優(yōu)化
  • 網(wǎng)站如何做微信支付寶支付寶支付社交網(wǎng)絡的推廣方法
  • 深圳云網(wǎng)站建站公司搜索引擎的設計與實現(xiàn)
  • 搜狐一開始把網(wǎng)站當做什么來做站長之家官網(wǎng)
  • 校園網(wǎng)站建設招標公告企業(yè)網(wǎng)站推廣方案
  • 網(wǎng)站建設實訓過程報告有什么好的推廣平臺