笔试题目——回文数组
发布时间
阅读量:
阅读量
针对一个给定的正整数序列a[],若其逆序后与原序列完全一致,则该序列被称为回文数组。现需输入一个正整数序列,并在其中插入若干数字,使其转化为回文数组,同时确保所有元素之和达到最小值。最终输出插入后的数组总和。例如:[1,2,3,1,2]通过添加两个1,可变为[1,2,1,3,1,2,1],其总和为11。
输入说明:
输入数据由两部分构成:第一部分为一个整数L,用于表示数组的长度;第二部分为具体的数组元素。
输出说明:
输出一个整数,代表经过插入操作后形成的正整数回文数组的总和。
示例输入:
8
51 23 52 97 97 76 23 51
示例输出:
598
更新代码:(动态规划)
import java.util.Scanner;
/** * 回文数组
* 一个数组,插入数字,使其成为回文数组,尽量使插入的数组和最小,输出和
* * if a[i]==a[j] f[i][j] = 2*a[i]+f[i+1][j-1]:i++,j--
* if a[i]!=a[j] f[i][j] = min(f[i+1][j]+2*a[i],f[i][j-1]+2*a[j])
* i++ j--
*/
全部评论 (0)
还没有任何评论哟~
