n位数,去除m位,获得最大的值
来源:互联网 发布:柏原崇 知乎 编辑:程序博客网 时间:2024/05/20 22:40
/*
这道题是2017年某游戏公司测试开发工程师笔试的题目,当是在考场上并没有做出来。
特意在网上找到了相应的解答,在这里记录下;
n位整数,去除m位后,返回的最大值:贪心算法:每一次寻找局部最优,最后达到全局最优
思路:
1.首先要明白,在一串数中,我们如果要去掉之中n位后还剩下m位,那么剩余的最大数
的最高位的位置就不可能在倒数的第m-1位到最后一位里面,不然就凑不齐m位整数,与
题意矛盾;
2.按这个思路,我们寻找剩余m位中的某一位时,都像第一步那样单独考虑,并且,寻找的
位置不再是从0开始,而是上一次找到最大值的下一个位置开始寻找;
3.题目要求顺序输出,一种方案是找到了就直接输出,另一种方案用临时数组做标记
*/
#include<iostream>
#include<string>
using namespace std;
int main()
{
char arr[100];
int m, i, j, max = 0, maxj = -1;
cin >> m;
cin >> arr;
for (i=0; i<(strlen(arr)-m); i++)
{
max = 0;
for (j=maxj+1; j<=(m+i); j++)//最大值的下一位
{
if (arr[j]>max)
{
max = arr[j];
maxj = j;//保存最大值的位置;
}
}
cout << arr[maxj] << endl;
}
system("pause");
return 0;
}
阅读全文
0 0
- n位数,去除m位,获得最大的值
- n位数中取m位的组合
- 一个长整数串去除m位使其最大
- 输入n个数,将前n-m个数往后移动m位,最后m位数作为前m个数
- M位取N位求最大最小值
- m个工厂分的n个资源,使获得利润最大(动态规划)
- 输出1到最大的N位数
- 输出1到最大的N位数
- 输出1到最大的N位数
- 输出1到最大的N位数
- 输出1到最大的N位数
- 打印1到最大的n位数
- 输出1到最大的N位数
- 输出1到最大的N位数
- 输出1到最大的N位数
- 输出1到最大的N位数
- 输出0到最大的n位数
- 输出一到最大的N位数
- Android 关于selector中state_pressed="true"的位置顺序
- hdu 2057 A + B Again
- UE4 安卓打包
- 动态加载布局
- 保留一份数据源的配置druid
- n位数,去除m位,获得最大的值
- Codeforces Round #434 (Div. 1, based on Technocup 2018 Elimination Round 1) A-C题解
- 深入java 定义正则表达式
- 互联网协议入门(二)
- Spring整合Mybatis实现动态数据源切换教程配置
- Android Studio 项目中,忽略文件不提交
- TCP和UDP的区别
- 素数计数函数
- Tensorflow学习之卷积神经网络实现(六)