字典序最大子序列

题目描述

对于字符串a和b,如果移除字符串a中的一些字母(可以全部移除,也可以一个都不移除)就能够得到字符串b我们就称b是a的子序列。

例如."heo"是"hello"的子序列,而"xl"不是。

对于给定的一个字符串s,请计算出s的字典序最大的子序列。

输入描述:

输入包括一行,一个字符串s,字符串a长度Length(1 <= 1ength <= 50).s中每个字符都是小写字母

输出描述:

输出一个字符串,即a的字典序最大的子序列。

示例

输入

test

输出

tt

代码实现

package aiqiyi.demo1;

import java.util.Scanner;

public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String str = scanner.next();
char[] charArray = str.toCharArray();
int maxPos = 0;
StringBuffer sb = new StringBuffer();
while (maxPos < charArray.length) {
int maxVlue = Integer.MIN_VALUE;
for (int i = maxPos; i < charArray.length; i++) {
if (charArray[i] > maxVlue) {
maxVlue = charArray[i];
maxPos = i;
}
}
sb.append((char) maxVlue);
maxPos++;
}
System.out.println(sb.toString());
}
}

三个整数

题目描述

牛牛有三个整数X, Y, Z.牛牛现在要使用若干次操作让X, Y, Z变为

相等,每次操作牛牛有两种操作类型可选

操作1:从X, Y, Z中选择两个数,都加1

操作2:从X, Y, Z中选择一个数,加2

牛牛已经证明了使用若干次这两种操作一定可以让三个整数变为

相等,请你帮他计算一下最少需要多少次操作.

输入描述:

输入包括三个整数A, B, C(0 < A , B , C <  100)。

输出描述:

输出一个整数,表示最少需要的操作次数.

示例

输入

2 5 4

输出

2

代码实现

package aiqiyi.demo2;

import java.util.Arrays;
import java.util.Scanner; public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int[] arr = new int[3];
for (int i = 0; i < arr.length; i++) {
arr[i] = scanner.nextInt();
}
Arrays.sort(arr);
if ((arr[2] - arr[1] + arr[2] - arr[0]) % 2 == 0) {
System.out.println((arr[2] - arr[1] + arr[2] - arr[0]) / 2);
} else {
System.out.println((arr[2] - arr[1] + arr[2] - arr[0] + 3) / 2);
}
}
}

牛牛配糖果

题目描述

牛牛有n种糖果,每种糖果都有足够多,现在牛牛想用这些糖果组成一些糖果盒.

每个糖果盒内放m个糖果,对于一个糖果盒牛牛希望第种糖果的数量不能少于li颗,也不能多于ri颗.

满足条件的糖果盒组成方案可能会有很多,牛牛希望你帮他计算一共有多少种糖果盒的拼凄方案.

对于两种方案,当有任意一种糖果个数不同,就视为两种不同方案.

输入描述:

输入包括n+1行。
第一行包括两个正整数(1<=n<= 20, 1<=m<= 100),表示糖果的种数和一盒糖果盒的糖果个数。
接下来的n行,每行两个整数li, ri(0< li< ri <= 10),表示第i种糖果的数量限制上下限。

输出描述:

输出一个整数,表示满足限定条件的方案数。保证答案在64位整数范围内。

示例

输入

3 5
0 3
0 3
0 3

输出

12

代码实现

package aiqiyi.demo3;

import java.util.Scanner;

public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();// 颜色种类
int m = scanner.nextInt();// 盒子放置m个糖果
int[] l = new int[n];
int[] r = new int[n];
int least = 0;
int[] rem = new int[n];// 表示每一种颜色剩余可以加的
for (int i = 0; i < r.length; i++) {
l[i] = scanner.nextInt();
r[i] = scanner.nextInt();
least += l[i];
rem[i] = r[i] - l[i];
}
int target = m - least;
long[][] dp = new long[n + 1][target + 1];
for (int i = 0; i < dp.length; i++) {
dp[i][0] = 1;
}
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= target; j++) {
for (int k = 0; k <= rem[i - 1]; k++) {
if (j - k >= 0)
dp[i][j] += dp[i - 1][j - k];
}
}
}
System.out.println(dp[n][target]);
}
}

爱奇艺2018春招Java工程师编程题题解的更多相关文章

  1. 链家2018春招Java工程师编程题题解

    Light 题目描述 在小红家里面,有n组开关,触摸每个开关,可以使得一组灯泡点亮.现在问你,使用这n组开关,最多能够使得多少个灯泡点亮呢? 输入 第一行一个n,表示有n组开关.接下来n行,每行第一个 ...

  2. 京东2019春招Java工程师编程题题解

    生成回文串 题目描述 对于一个字符串,从前开始读和从后开始读是一样的,我们就称这个字符串是回文串. 例如"ABCBA","AA","A"是回 ...

  3. 爱奇艺直播 - 春晚直播业务API架构

    小结: 1.服务熔断策略 在网关服务中经常会对后端不同api接口做服务聚合,比如A服务 -> B服务 -> C服务 ,如果C服务出现问题,那么在调用C服务之前需要做熔断.而在设计熔断器的时 ...

  4. 爱奇艺2017秋招笔试(C++智能设备方向)

    虽然有方向,但是好像题目都是随机题库抽取. 选择题都很基础...挖坑,待更新 编程: 一. 奇异数: 如果一个数字满足以下条件,我们就称它为奇异数: 1.   这个数字至少有两位 2. 这个数的最低两 ...

  5. Java结束线程的三种方法(爱奇艺面试)

    线程属于一次性消耗品,在执行完run()方法之后线程便会正常结束了,线程结束后便会销毁,不能再次start,只能重新建立新的线程对象,但有时run()方法是永远不会结束的.例如在程序中使用线程进行So ...

  6. 爱奇艺技术分享:爱奇艺Android客户端启动速度优化实践总结

    本文由爱奇艺技术团队原创分享,原题<爱奇艺Android客户端启动优化与分析>. 1.引言 互联网领域里有个八秒定律,如果网页打开时间超过8秒,便会有超过70%的用户放弃等待,对Andro ...

  7. 深入理解Java之线程池(爱奇艺面试)

    爱奇艺的面试官问 (1) 线程池是如何关闭的 (2) 如何确定线程池的数量 一.线程池销毁,停止线程池 ThreadPoolExecutor提供了两个方法,用于线程池的关闭,分别是shutdown() ...

  8. 2019上海爱奇艺大数据Java实习生-面试记录

    目录 一轮 电话面试 二轮 代码笔试 三轮 技术面试 总结 附:电话面试问题点解惑 补充:面试未通过 一轮 电话面试 2019.04.28 16:21 [w]:面试官,[m]:我,下面的内容来自电话录 ...

  9. 对爱奇艺PC Web主站来说,良好的SEO能够帮助其获得更多的搜索流量,因而页面上一些非常重要的内容仍然需要依靠服务端进行渲染,由于另外开发一套基于Node的SSR后台成本较高,而乐趣(基于java和velocity模板引擎)平台作为渲染系统已经十分成熟且运行稳定,在充分试验后,我们决定在Uniqy中使用服务端同步与客户端浏览器异步二次渲染相结合的方式,结合Vue2.0提供的 slot插槽机制,很

    https://mp.weixin.qq.com/s/eB20BoqzENO_oNk8eDg4Eg 干货|爱奇艺PC Web新框架实践 原创: 前端研发团队 爱奇艺技术产品团队 昨天      

随机推荐

  1. linux小白成长之路3————更新yum源

    [内容指引] 进入目录:cd 查看目录下的内容:ls 重命名备份:mv 从网络下载:wget yum更新:yum update 第一次运行yum安装软件前,建议更新yum. 1.进入yum源目录 命令 ...

  2. h5移动端屏幕适配

    1.rem <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF ...

  3. python全栈学习--day5

    字典 特点:字典是python中唯一的映射类型,采用键值对(key-value) 的形式存数据. 存储大量的数据,是关系型数据,查询数据快. 字典初始说明: 遍历字典从列表开始,列表是从头便利到尾的. ...

  4. 根据IO流源码深入理解装饰设计模式使用

    一:摘要 通过对java的IO类中我们可以得出:IO源码中使用装饰设计模式频率非常高, 对装饰设计模式而言,他能够避免继承体系的臃肿,同时也可以动态的给一个对象添加一些额外的功能,如果要扩展一个功能, ...

  5. [福大软工] W班 团队第一次作业—团队展示成绩公布

    作业地址 https://edu.cnblogs.com/campus/fzu/FZUSoftwareEngineering1715W/homework/906 作业要求 根据已经组队的队伍组成, 每 ...

  6. C语言-第一次作业

    题目6-1 计算两数的和与差 1.设计思路 (1)主要描述题目算法 第一步:看主函数知道程序输入浮点型变量a,b,通过函数计算输出和与差. 第二步:函数部分将a赋值op1,b赋值op2,&su ...

  7. 如何用tomcat实现类似weblogic那样的热部署方式

    平时weblogic部署程序包时一般是到控制台去部署,不需要重启. 相反之前用tomcat部署应用时,我一般都是把tomcat重启来完成程序包的更新或新包部署.但是这次要部署的应用有点多,大概10几个 ...

  8. RESTful三问

    我觉得学习一个技术,其实就是要弄明白三件事情:是什么(what),为什么(why),怎么用(how).正是所谓的三W方法. 所以打算总结一个"三问"系列.为了自己学习,也分享给别人 ...

  9. Python习题(第一课)

    想了想其他的太简单了,还是不放了,剩三题吧. 一.完美立方 编写一个程序,对任给的正整数N (N≤100),寻找所有的四元组(a, b, c, d),使得a^3= b^3 + c^3 + d^3,其中 ...

  10. 遍历JSON

    第一种: each,不做详细说明,太常用了 第二种:我用来遍历单个组,实现前端界面绑定 for(var item in person){ alert("person中"+item+ ...