zoukankan      html  css  js  c++  java
  • 网易2017秋招--1、回文序列

    题目描述:
    如果一个数字序列逆置之后跟原序列是一样的就称这样的数字序列为回文序列。例如:
    {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),以空格分隔。
     
     
    输出描述:
    输出一个数,表示最少需要的转换次数
     
    输入例子:
    4 1 1 1 3
     
    输出例子:
    2
    思路:首尾指针跟踪,两个数不相等就进行加法:小的数加上相邻的值;相等进行下一位置判断
     1 #include <iostream>
     2 using namespace std;
     3  
     4 int main()
     5 {
     6     int n;
     7     int result = 0;
     8     int count = 0;
     9     while(cin>>n)
    10     {
    11         int tmp[n];
    12         for(int i=0;i<n;i++)
    13         {
    14             cin>>tmp[i];
    15         }
    16         int start = 0;
    17         int end = n-1;
    18         while(n>=2 && start<end)
    19         {
    20             //左边值小于右侧,左侧相邻相加放入左侧当前的下一位置
    21             if(tmp[start]< tmp[end])
    22             {
    23                 result = tmp[start] +tmp[start+1];
    24                 start++;
    25                 tmp[start] = result;
    26                 count++;
    27             }
    28             //左边值大于右侧,右侧相邻相加放入右侧当前的前一位置
    29             else if(tmp[start]> tmp[end])
    30             {
    31                 result = tmp[end] +tmp[end-1];
    32                 end--;
    33                 tmp[end] = result;
    34                 count++;
    35             }
    36             else//相等,进行下一位置判断
    37             {
    38                 start++;
    39                 end--;
    40             }
    41         }
    42         //出循环不用加额外判断原因,2种情况,一种左右相同归为最中间位置
    43        //第二种情况,中间变为一个数或者最后只剩下一位数也可称之为回文
    44         cout<<count<<endl;
    45     }
    46     return 0;
    47 }
  • 相关阅读:
    Windows Server 2012 R2 密钥
    C# 将List转成树的两种方式(递归、循环)
    C# 实现PPT、Word、Excel文件转为图片
    Net JavaScript:跨域问题(No 'Access-Control-Allow-Origin')
    IIS WebApi: 文件上传,大小限制,提示413 (Request Entity Too Large)
    layui动态表格数据选择添加穿梭框代码
    MySQL + Keepalived 双主热备高可用解决方案
    PHP高并发问题处理思路
    xhprof性能分析工具安装与使用
    uni-app在小程序中v-show指令失效
  • 原文地址:https://www.cnblogs.com/qqky/p/6795952.html
Copyright © 2011-2022 走看看