IT公司100题-6-根据上排给出十个数,在其下排填出对应的十个数
问题描述:
要求下排每个数都是先前上排那十个数在下排出现的次数。
上排的十个数如下:
【0,1,2,3,4,5,6,7,8,9】
数值: 0,1,2,3,4,5,6,7,8,9
分配: 6,2,1,0,0,0,1,0,0,0
0在下排出现了6次,1在下排出现了2次,
2在下排出现了1次,3在下排出现了0次….
以此类推..
下排数组B:0,1,2,3,4,5,6,7,8,9
从上牌数组Index = 0开始,A[0] = 0,0在下排数组中的个数为1,那么下排数组B此时就要更新为:1,1,2,3,4,5,6,7,8,9
// 6.cc
#include <iostream>
using namespace std;
#define MAX_LEN 10 class Object {
private:
int A[MAX_LEN];
int B[MAX_LEN];
bool m_success; public:
Object();
~Object() {} public:
int* get_B();
void set_next_B();
int get_frequency(int value);
}; Object::Object() {
m_success = false; // initiate A
for (int i = ; i < MAX_LEN; i++)
A[i] = B[i] = i;
} int* Object::get_B() {
int i = ;
while (!m_success) {
i++;
set_next_B();
} return B;
} // 设置B中的值
void Object::set_next_B() {
bool flag = true; for(int i = ; i < MAX_LEN; i++) {
int f = get_frequency(i);
if(B[i] != f) {
B[i] = f;
flag = false;
}
}
m_success = flag;
} // 统计value在B中出现的次数
int Object::get_frequency(int value) {
int count = ;
for(int i = ; i < MAX_LEN; i++) {
if(B[i] == value)
count++;
} return count;
} int main() {
Object obj;
int* res = obj.get_B(); for (int i = ; i < MAX_LEN; i++)
cout << i << " ";
cout << endl; for(int i = ; i < MAX_LEN; i++)
cout << res[i] << " ";
cout << endl; return ;
}
牛逼的解题思路:
转载自源代码
IT公司100题-6-根据上排给出十个数,在其下排填出对应的十个数的更多相关文章
- IT公司100题-35- 求一个矩阵中最大的二维矩阵(元素和最大)
问题描述: 求一个矩阵中最大的二维矩阵(元素和最大).如: 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 中最大的是: 4 5 9 10 分析: 2*2子数组的最大和.遍历求和,时 ...
- IT公司100题-32-交换元素,使数组差最小
问题描述: 有两个整数序列a, b,大小都为n, 序列元素的值任意整数,无序. 要求:通过交换a, b 中的元素,使得sum(a)-sum(b),差最小. 例如: var a=[80, 40, 60, ...
- IT公司100题-28-整数的二进制表示中1的个数
问题描述: 输入一个整数n,求n的二进制表示中,一共有多少个1.例如n=8,二进制表示为00001000,二进制表示中有1个1. 分析: 如果一个数n不为0,那么n-1的二进制表示,与n的二进 ...
- IT公司100题-27-跳台阶问题
问题描述: 一个台阶总共有n阶,一次可以跳1级或者2级.求总共有多少种跳法. 分析: 用f(n)表示n阶台阶总共有多少种跳法.n阶台阶,第一可以选择跳1阶或者2阶,则f(n) = f(n-1) + ...
- IT公司100题-tencent-打印所有高度为2的路径
问题描述: 打印所有到叶子节点长度为2的路径 10 / \ 6 16 / \ / \ 4 8 14 18 / \ / \ \ 2 5 12 15 20 / 11 ...
- IT公司100题-26-左旋转字符串
问题描述: 给定字符串和左旋的字符数,写程序实现字符串的左旋操作.例如对于字符串”12345678″, 左旋转4个字符后,变成”56781234″.要求时间复杂度为O(n),空间复杂度O(1). ...
- IT公司100题-25-求字符串中的最长数字串
问题描述: 实现一个函数,求出字符串中的连续最长数字串.例如输入”12345cbf3456″,输出”12345″. 函数原型为: void conti_num_max( const char * sr ...
- IT公司100题-21-输入n和m,和等于m
问题描述: 输入两个整数n 和m,从数列1,2,3,…,n 中随意取几个数, 使其和等于m,将所有可能的组合都打印出来. 分析: 利用递归的思路,对于1,2,3,…,n 中的任意一个数,要么选,要 ...
- IT公司100题-19-求Fibonacci数列
问题描述: 定义Fibonacci数列的定义如下: / 0 n=0f(n)= 1 ...
随机推荐
- android模拟器中文乱码
问题:在xml文件中设置的中文能正确输出,但是在java文件中设置的中文会在模拟器上呈现乱码 解决方案:在build.gradle文件中添加一行代码 android {compileOptions.e ...
- SqlServer扩展存储过程
1. 扩展存储过程xp_cmdshell用法: --1.启用 SP_CONFIGURE RECONFIGURE GO SP_CONFIGURE RECONFIGURE GO --2.用法 master ...
- Peer Code Reviews Made Easy with Eclipse Plug-In
欢迎关注我的社交账号: 博客园地址: http://www.cnblogs.com/jiangxinnju/p/4781259.html GitHub地址: https://github.com/ji ...
- linux笔记:关机重启命令shutdown,系统运行级别init,退出登录logout
命令名称:shutdown功能:关机或重启用法:shutdown [选项] [时间]选项参数:-c 取消前一个关机命令-h 关机-r 重启时间格式:now 现在时:分 20:30其他:会正常关闭正在启 ...
- Linux下如何查看自己的服务器有没有无线网卡
还是实验室那台破服务器,连不上网.有没有界面,所以想着如何用一些命令来链接上热点. 当然,在linux下链接wifi没有win下那么一点就好了! 首先我们需要的基本条件就是: 服务器上有无线网卡.[r ...
- iOS机器学习-TensorFlow
人工智能.机器学习都已走进了我们的日常,尤其是愈演愈热的大数据更是跟我们的生活息息相关,做 人工智能.数据挖掘的人在其他人眼中感觉是很高大上的,总有一种遥不可及的感觉,在我司也经常会听到数据科学部的同 ...
- android:exported
这个属性用于指示该服务是否能够被其他应用程序组件调用或跟它交互.如果设置为true,则能够被调用或交互,否则不能.设置为false时,只有同一个应用程序的组件或带有相同用户ID的应用程序才能启动或绑定 ...
- 一个.net mvc的例子
控制器 ( Controller) Product 下面功能主要根据多条件搜索产品的列表的功能 public ActionResult ProductList(string cityID, strin ...
- JAVA 正则 Pattern 和 Matcher
java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包. 1.简介: java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包. ...
- URL链接中文参数乱码的若干处理方法
JAVA 中URL链接中文参数乱码的若干处理方法,现在整理收录如下: 方法一: (1) JS中,在URL参数中确保用UTF-8编码,用js函数encodeURI()编码,例如 url:"xx ...