今日头条-软件研发笔试题-(2017-04-18)

总共4道编程题

先把题目列下,解析等不忙的时候更新

欢迎讨论思路


 

1. 查找A,B两个数组中一样的元素,并且按照元素在B数组中的位置输出

 


 

2. 

时间限制:C/C++语言 2000MS;其他语言 4000MS
内存限制:C/C++语言 32768KB;其他语言 557056KB
题目描述:
日活跃用户数 (DAU) 是衡量一个产品表现的重要指标。
需要编写程序,根据给定的某一天的 N 条访问记录,对当天的用户总数 M 进行统计。
每个用户可能访问多次。
为了方便,我们用数字 (uid) 唯一标识每个用户。

input

每一行包含一个 uid,遇到 0 时认为输入结束。
输入共包含 N+1 行,可认为是无序的。

output
一个数字:去重后 uid 的数量 M。

样例输入

12933
111111
59220
69433
59220
111111
0

样例输出
4

感觉自己写的没问题,而且自测也ok,但是平台显示结果不正确,比较郁闷


3. 

形式化算式
时间限制:C/C++语言 1000MS;其他语言 3000MS
内存限制:C/C++语言 65536KB;其他语言 589824KB
题目描述:
我们有如下形式化的数字
  *    ***   ***   * *   ***   ***   ***   ***   ***   ***
  *      *     *   * *   *     *       *   * *   * *   * *
  *    ***   ***   ***   ***   ***     *   ***   ***   * *
  *    *       *     *     *   * *     *   * *     *   * *
  *    ***   ***     *   ***   ***     *   ***   ***   ***
(* 下附图片供参考)

分别表示 1 2 3 4 5 6 7 8 9 0
有如下形式化的符号:
   *        * *    *   ****
  ***  ***   *    *
   *        * *  *     ****   **
                              **
​(* 下附图片供参考)

分别表示 + - * / = 小数点
输入
现在 将输入一个算式
输出
你要将该算式计算之后按照上述形式化的方式输出
各个数字和符号之间空两格
无法整除则保留两位小数

样例输入
10 + 31
样例输出
*  ***       ***  *        * *  *
*  * *   *     *  *  ****  * *  *
*  * *  ***  ***  *        ***  *
*  * *   *     *  *  ****    *  *
*  ***       ***  *          *  *
​(* 下附图片供参考)

Hint
样例输入2:  
2 / 5
样例输出2:
***       ***        ***      * *
  *    *  *    ****  * *      * *
***   *   ***        * *      ***
*    *      *  ****  * *  **    *
***       ***        ***  **    *
​(* 下附图片供参考)

数据范围:
20%的数据 输入的数字和运算结果都是个位数
100%的数据保证 输入数字和答案都小于10000
100%的数据保证 输入数字不会出现小数
80%的数据保证 运算结果不会出现小数


4. 

任务执行策略
时间限制:C/C++语言 1000MS;其他语言 3000MS
内存限制:C/C++语言 65536KB;其他语言 589824KB
题目描述:
我们有一批任务在 mesos 当中。这批任务要么不依赖其它任务,要么一定恰好依赖于两个任务,并且整个依赖关系会构成一个三角模型:
 
Job(1, 1)
Job(2, 1)    Job(2, 2)
Job(3, 1)    Job(3, 2)    Job(3, 3)
……
Job(n, 1)    Job(n, 2)        ……        Job(n, n)
 
如上图,Job(1, 1) 依赖于 Job(2, 1) 和 Job(2, 2);Job(2, 2) 依赖于 Job(3, 2) 和 Job(3, 3);对于任意 1 <= i < n, 1 <= j <= n,Job(i, j) 依赖于 Job(i + 1, j) 和 Job(i + 1, j + 1)。最后一行的任务没有任务依赖。
这批任务有一个特点,每个任务都需要配合它所依赖的任务来执行。也就是说,一个任务某次运行是有效的,当且仅当至少满足下列一个条件:
1. 该任务不依赖其它任务;
2. 该任务依赖的两个任务都是有效的。
每个任务都预先设定了一个权重 weight(i, j)。现在由于资源上的限制,我们只能挑选其中的 k 个任务来运行。我们希望所有被运行的任务都是有效的,并使得所有运行过的任务的权重之和最大。

输入
第一行是两个整数 n 和 k。
接下来 n 行,其中第 i 行 (1 <= i <= n) 包含 i 个整数,给出各个任务的权重。这个三角形也同时描述了任务的依赖关系。
输出
输出仅包含一个整数,即所求的最大权重和。

样例输入
3 4
1
2 3
1 1 1
样例输出
6

Hint
对于 30% 的数据,1 <= n, k <= 50;
对于 100% 的数据,1 <= n <= 100,1 <= m <= C(n + 1, 2),1 <= weight(i, j) <= 1000。

 

转载于:https://www.cnblogs.com/haileyzhang/p/6734144.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值