字典序最大子序列

题目描述

对于字符串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. java.util.zip

    使用java自带的类 java.util.zip进行文件/目录的压缩的话,有一点不足,不支持中文的名件/目录命名,如果有中文名,那么打包就会失败.本人经过一段时间的摸索和实践,发现在一般的Ant.ja ...

  2. 解决Hash碰撞冲突方法总结

    Hash碰撞冲突 我们知道,对象Hash的前提是实现equals()和hashCode()两个方法,那么HashCode()的作用就是保证对象返回唯一hash值,但当两个对象计算值一样时,这就发生了碰 ...

  3. 极光征文 | 写写文章就能赢 Filco,岂不美滋滋

    由极光社区举办的第二届征文大赛 --「我和极光的那些事儿」又来啦! 在简书平台发布文章并投稿至「我和极光的那些事」专题,只要参与就能 100% 获得京东购物卡,更有机会赢取象征信仰的 Filco 机械 ...

  4. Leetcode 27——Remove Element

    Given an array and a value, remove all instances of that value in-place and return the new length. D ...

  5. 记录python接口自动化测试--unittest框架基本应用(第二目)

    在第一目里写了几个简单demo,并把调用get和post请求的方法封装到了一个类里,这次结合python自带的unittest框架,用之前封装的方法来写一个接口测试demo 1.unittest简单用 ...

  6. 利用拷贝data目录文件的方式迁移mysql数据库

    其实迁移数据库,一般用sql文件就行,把A服务器数据库的表结构和数据等等导出,然后导入到B服务器数据库, 但是这次数据文件过大,大约有40个G,使用命令行导入,效果不是很好,经常在执行过程中报错.卡死 ...

  7. Linux下进程间通信--共享内存:最快的进程间通信方式

    共享内存: 一.概念: 共享内存可以说是最有用的进程间通信方式,也是最快的IPC形式.两个不同进程A.B共享内存的意思是,同一块物理内存被映射到进程A.B各自的进程地址空间. 进程A可以即时看到进程B ...

  8. Numpy - 多维数组(上)

    一.实验说明 numpy 包为 Python 提供了高性能的向量,矩阵以及高阶数据结构.由于它们是由 C 和 Fortran 实现的,所以在操作向量与矩阵时性能非常优越. 1. 环境登录 无需密码自动 ...

  9. android 检查软件是否有更新版本

    import java.net.HttpURLConnection; import java.net.URL; import java.util.HashMap; import com.yuxin.m ...

  10. Python之旅.第三章.函数4.01/4.02

    一.三元表达式 #普通的判断大小函数def max2(x,y): if x > y: return x else: return yres=max2(10,11)print(res)x=12y= ...