回文序列--网易2017秋招模拟考编程题1
来源:互联网 发布:餐饮收银软件排名 编辑:程序博客网 时间:2024/06/01 09:05
时间限制:1秒
空间限制:32768K
如果一个数字序列逆置之后跟原序列是一样的就称这样的数字序列为回文序列。例如:
{1, 2, 1}, {15, 78, 78, 15} , {112} 是回文序列,
{1, 2, 2}, {15, 78, 87, 51} ,{112, 2, 11} 不是回文序列。
现在给出一个数字序列,允许使用一种转换操作:
选择任意两个相邻的数,然后从序列移除这两个数,并用这两个数字的和插入到这两个数之前的位置(只插入一个和)。
现在对于所给序列要求出最少需要多少次操作可以将其变成回文序列。
{1, 2, 1}, {15, 78, 78, 15} , {112} 是回文序列,
{1, 2, 2}, {15, 78, 87, 51} ,{112, 2, 11} 不是回文序列。
现在给出一个数字序列,允许使用一种转换操作:
选择任意两个相邻的数,然后从序列移除这两个数,并用这两个数字的和插入到这两个数之前的位置(只插入一个和)。
现在对于所给序列要求出最少需要多少次操作可以将其变成回文序列。
输入描述:
输入为两行,第一行为序列长度n ( 1 ≤ n ≤ 50)第二行为序列中的n个整数item[i] (1 ≤ iteam[i] ≤ 1000),以空格分隔。
输出描述:
输出一个数,表示最少需要的转换次数
输入例子1:
41 1 1 3
输出例子1:
2
import java.util.ArrayList;import java.util.Scanner;public class Main { public int leastOperateTimes(int[] nums, int num) { ArrayList<Integer> list = new ArrayList<Integer>(); for (int i = 0; i < num; i++) { list.add(nums[i]); } int size, leastTimes = 0; //如果开头比结尾小,则开头的两个元素相加,这样才有可能在替换之后开头和末尾相等 //如果开头比结尾大,则末尾的两个元素相加,这样才有可能在替换之后开头和末尾相等 //如果开头和末尾两个元素相等,则删除开头和末尾元素 while (list.size() > 1) { size = list.size(); if (list.get(0) < list.get(size - 1)) {// list.set(0, list.get(0) + list.get(1));// list.remove(1);//remove之后会重新排序,正确 list.set(1, list.get(0) + list.get(1)); list.remove(0);//remove之后会重新排序,正确 leastTimes++; } else if (list.get(0) > list.get(size - 1)) { list.set(size - 1, list.get(size - 1) + list.get(size - 2)); list.remove(size - 2); leastTimes++; } else { list.remove(0);// list.remove(size - 1);//错误,最后是“33”时, list.remove(0);之后还有一个元素, list.remove(size - 1); = list.remove(1);会报错 list.remove(list.size() - 1); } }//while return leastTimes; }//leastOperateTimes public static void main(String[] args) { Scanner sc = new Scanner(System.in); int num = sc.nextInt(); int[] nums = new int[num]; for (int i = 0; i < num; i++) { nums[i] = sc.nextInt(); } System.out.println(new Main().leastOperateTimes(nums, num)); }//main}
您的代码已保存
答案正确:恭喜!您提交的程序通过了所有的测试用例
参考:http://blog.csdn.net/zjwcdd/article/details/52673355
阅读全文
0 0
- 回文序列--网易2017秋招模拟考编程题1
- 回文序列(网易2017秋招编程题)
- 网易2017秋招编程题----回文序列
- 网易2017秋招编程题:回文序列 [python]
- 网易秋招编程题——回文序列
- 优雅的点--网易2017秋招模拟考编程题2
- 算法题 143:回文序列(网易2017秋招编程题)
- 网易2017秋招编程题1
- 网易2017秋招编程题
- 网易2017秋招编程题
- 网易2017秋招编程题
- 网易2017秋招编程题集合
- 2017网易秋招编程题7
- 网易2017秋招编程题8
- 网易2017秋招编程题2
- 网易2017秋招编程题6
- 网易2017秋招编程题集合
- 网易2017秋招编程题
- C# Post请求json数据
- Hash表
- MySQL 小心3306端口
- java线程
- Lintcode -链表倒数第n个节点
- 回文序列--网易2017秋招模拟考编程题1
- 下拉刷新第三方框架整理
- 一波文学手机电子书分享
- RestTemplate文件上传
- PowerMTA配置多MTA 配置文件
- Could not obtain transaction-synchronized Session for current thread
- 创建新分区,mkfs格式化时提示分区已挂载
- rdynamic参数的用法
- Rikka with Candies