把一個數(shù)組構(gòu)建成一個回文數(shù)組的最小代價

Q:把一個數(shù)組通過插入值的方式構(gòu)造成一個回文數(shù)組,代價就是這個回文數(shù)組的所有元素的和,求最小代價是多少盯仪。
A:回文數(shù)組和回文字符串一般都是從兩邊往中間疟暖,例如開頭(索引為start)的數(shù)字為4卡儒,結(jié)尾(索引為end)的數(shù)字為5。
那么一定會經(jīng)歷這么一步俐巴,插入一個新的4在5的后面骨望,然后使start+1位置到end位置為回文數(shù)組,或者插入一個新的5在4的前面欣舵,使start位置到end-1位置為回文數(shù)組擎鸠。
這樣就得到了一個遞歸的過程,每次都能把大的問題變成一個更小的問題缘圈,一直到最基本的情況劣光。

import java.util.Scanner;

public class 構(gòu)造回文數(shù)組最小代價 {
    //構(gòu)建memory,緩存中間結(jié)果糟把,防止重復(fù)計算
    public static int[][] matrix;
    public static void main(String[] args) {
        Scanner in =new Scanner(System.in );
        int L =in.nextInt();
        int[] arr = new int[L];
        for(int i=0;i<L;i++){
            arr[i]=in.nextInt();
        }
        matrix=new int[arr.length][arr.length];
        int num = he(arr,0,arr.length-1);
        System.out.println(num);
    }
    public static int he(int[]a,int start,int end){
        if (matrix[start][end]!=0)
        {
            return matrix[start][end];
        }
        //兩種基本情況
        if(start==end) return a[end];
        else if(start+1==end && a[start] == a[end]) return 2*a[end];
        //相等的話直接計算下一個小的問題
        else if(a[start] == a[end]) 
        {
            matrix[start+1][end-1]=he(a,start+1,end-1);
            return matrix[start+1][end-1]+ 2*a[start];
        }
        //不相等的話要做一下比較
        else{
            matrix[start+1][end]= he(a,start+1,end);
            int left = matrix[start+1][end]+ 2*a[start];
            matrix[start][end-1]= he(a,start,end-1);
            int right = matrix[start][end-1]+ 2*a[end];
            return left>right?right:left;
        }
    }
}

有了遞歸很容易改為DP绢涡,懶得改了。但是遞歸的思路真的很巧妙遣疯。如左神所說雄可,不能要求到見到一個題就知道怎么做,要學(xué)會去試,試出遞歸關(guān)系滞项,然后一步一步優(yōu)化狭归,直到DP。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末文判,一起剝皮案震驚了整個濱河市过椎,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌戏仓,老刑警劉巖疚宇,帶你破解...
    沈念sama閱讀 217,826評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異赏殃,居然都是意外死亡敷待,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,968評論 3 395
  • 文/潘曉璐 我一進(jìn)店門仁热,熙熙樓的掌柜王于貴愁眉苦臉地迎上來榜揖,“玉大人,你說我怎么就攤上這事抗蠢【儆矗” “怎么了?”我有些...
    開封第一講書人閱讀 164,234評論 0 354
  • 文/不壞的土叔 我叫張陵迅矛,是天一觀的道長妨猩。 經(jīng)常有香客問我,道長秽褒,這世上最難降的妖魔是什么壶硅? 我笑而不...
    開封第一講書人閱讀 58,562評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮销斟,結(jié)果婚禮上庐椒,老公的妹妹穿的比我還像新娘。我一直安慰自己蚂踊,他們只是感情好扼睬,可當(dāng)我...
    茶點故事閱讀 67,611評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著悴势,像睡著了一般窗宇。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上特纤,一...
    開封第一講書人閱讀 51,482評論 1 302
  • 那天军俊,我揣著相機(jī)與錄音,去河邊找鬼捧存。 笑死粪躬,一個胖子當(dāng)著我的面吹牛担败,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播镰官,決...
    沈念sama閱讀 40,271評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼提前,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了泳唠?” 一聲冷哼從身側(cè)響起狈网,我...
    開封第一講書人閱讀 39,166評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎笨腥,沒想到半個月后拓哺,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,608評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡脖母,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,814評論 3 336
  • 正文 我和宋清朗相戀三年士鸥,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片谆级。...
    茶點故事閱讀 39,926評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡烤礁,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出肥照,到底是詐尸還是另有隱情脚仔,我是刑警寧澤,帶...
    沈念sama閱讀 35,644評論 5 346
  • 正文 年R本政府宣布建峭,位于F島的核電站玻侥,受9級特大地震影響决摧,放射性物質(zhì)發(fā)生泄漏亿蒸。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,249評論 3 329
  • 文/蒙蒙 一掌桩、第九天 我趴在偏房一處隱蔽的房頂上張望边锁。 院中可真熱鬧,春花似錦波岛、人聲如沸茅坛。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,866評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽贡蓖。三九已至,卻和暖如春煌茬,著一層夾襖步出監(jiān)牢的瞬間斥铺,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,991評論 1 269
  • 我被黑心中介騙來泰國打工坛善, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留晾蜘,地道東北人邻眷。 一個月前我還...
    沈念sama閱讀 48,063評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像剔交,于是被迫代替她去往敵國和親肆饶。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,871評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 背景 一年多以前我在知乎上答了有關(guān)LeetCode的問題, 分享了一些自己做題目的經(jīng)驗岖常。 張土汪:刷leetcod...
    土汪閱讀 12,744評論 0 33
  • LeetCode 刷題隨手記 - 第一部分 前 256 題(非會員)驯镊,僅算法題,的吐槽 https://leetc...
    蕾娜漢默閱讀 17,778評論 2 36
  • 目錄 1. 棧和隊列1.用兩個隊列實現(xiàn)棧2.用兩個棧實現(xiàn)隊列3.實現(xiàn)一個棧腥椒,可以用常數(shù)級時間找出棧中的最小值4.判...
    MigrationUK閱讀 3,033評論 4 20
  • ¥開啟¥ 【iAPP實現(xiàn)進(jìn)入界面執(zhí)行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開一個線程阿宅,因...
    小菜c閱讀 6,409評論 0 17
  • 再濃烈的愛情滨砍,也不敵時間的淡漠往湿,七年,我們一路轉(zhuǎn)轉(zhuǎn)折折惋戏,歷經(jīng)磨難领追,好在都堅持住了,我一直以為我們會一輩子走下去响逢,卻...
    公子琴卿閱讀 273評論 0 0