亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

序列相關的趣題 之三

系統 1686 0

(6) 給定1-n的一個排列,每次操作定義為把一個數放到序列的末尾,請問把它排好順序,至少要操作多少次?

這個題好像是tc某個題的變種,也是google的面試題。tc原來的問題略微復雜一點,比方是給定一個序列,至少多少次操作轉換成另外一個序列。可是又一次編號之后等價于如上問題——google面試題好像就是上面那個描寫敘述,也可能是放到序列開頭,可是方法是一樣的。

首先,至多n次操作是能夠做到的,我們按順序把1,2,3,4……n放到末尾就能夠了。

其次,我們為什么要移動1? 假設其它數都移動好了,1不動不就完了么?

再次,假設我們某部操作把x放到了末尾,那么以后的操作肯定是把(x + 1)放到末尾,把(x + 2)放到末尾……把n放到末尾,所以要動x,比x大的那些所有都要動,一個都不能少。

于是,我們實質是求盡可能大的一個x,把x..n都移動了。那么沒移動的那些數,必須是按順序的,也就是1..x - 1必須是按順序出如今原始序列里的,僅僅有這樣,我們動了>=x的才干形成一個排好順序的序列。

問題簡單了O(n)解決……

      int solution(vector<int> &a) {
int n = a.size(), want = 1;
	for (int i = 0; i < n; ++i) {
		if (a[i] == want) {
			++want;
		}
	}	
	// want .. n must be moved
	return n - want + 1;
}

    

(7)?給定1-n的一個排列,每次操作定義為把一個數放到序列的末尾或開頭,請問把它排好順序,至少要操作多少次?

我印象中這個題是摩根比賽的一個題的變種。與(6)很相近,可是操作種類很多其它了。延續上一個題的思路,我們終于肯定是把1..y移動倒開頭(倒序),把x..n 移動倒末尾(順序)中間的不動。問題就是中間那部分怎樣盡可能長? 採用dp的思路。

dp[x]表示從往后能夠“連接的長度”,即x,x + 1, ...x + dp[x] - 1按順序出現。 那假設我們倒著循環i,有 dp[a[i]] = dp[a[i] + 1] + 1 ,然后終于結果是n - max(dp[x]), (注意右邊沒出現的設置為0,+1后自己主動變為1,符合我們的定義)?


      int solution(vector<int> &a) {
int n = a.size(), m = 0;
vector<int> dp(n + 2, 0);  //使用1..n + 1 注意下標范圍
	for (int i = n - 1; i >= 0; --i) {
		m = max(m, dp[a[i]] = dp[a[i] + 1] + 1);
		
	}
	return n - m;
}
    



序列相關的趣題 之三


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 久久精品视频免费播放 | 国产91在线 | 日本 | 久久影院在线观看 | 久久在线免费观看视频 | 日韩精品欧美高清区 | 久久99国产视频 | 色噜噜狠狠狠狠色综合久一 | 日韩欧美中文字幕在线视频 | 久久综合狠狠综合久久97色 | 国产在线视频精品视频免费看 | 国产精品123区 | 亚洲区一二三四区2021 | 日韩亚洲欧美性感视频影片免费看 | 日本爱爱免费视频 | 久久国产热视频 | 一本色道久久综合亚洲精品 | 亚洲欧美一区二区三区在线 | 国产欧美精品一区二区三区 | 91色综合综合热五月激情 | 欧美亚洲图区 | 久久se精品一区二区影院 | 欧美一级毛片免费看高清 | 国产精品线在线精品国语 | 高清视频一区 | 2020国产成人精品免费视频 | 四虎海外在线永久免费看 | 欧美成人高清免费大片观看 | 亚洲欧美一级久久精品 | 新四虎影院 | 九九免费观看全部免费视频 | 六色视频| 亚洲欧美精品网站在线观看 | 无码免费一区二区三区免费播放 | 欧美激情高清免费不卡 | 国产一区二区三区免费 | 欧美日韩国产58香蕉在线视频 | 天天做天天爱天天综合网 | 亚洲视频二区 | 7777精品伊人久久久大香线蕉 | 亚洲天堂二区 | 高清中文字幕免费观在线 |