2017年搜狗校招Java研发笔试编程题
来源:互联网 发布:手机淘宝图片保存位置 编辑:程序博客网 时间:2024/06/10 03:24
最终收敛值
时间限制:C/C++语言 2000MS;其他语言 4000MS
内存限制:C/C++语言 65536KB;其他语言 589824KB
题目描述:
假设a[n]是一个有n个元素的整型数组,定义该数组上的一个操作f(a[n],r),f把a[n]按步长r映射到另外一个数组b[n],映射规则如下:b[i]=MED(a[i],a[(i+1)mod n],a[(i+2)mod n],...a[(i+r-1)mod n])。MED指中位数,即获得r个元素中从小到大排在中间的元素(如果r是偶数,取中间两个元素较大的那个)。mod n是指模n的加法,相当于a[n]是一个循环数组。
现输入一个数组a[n],和步长初始值r(1<=r<=n),用f对数组a[n]进行反复的迭代映射(映射结果写回a[n]),每迭代一轮步长r增加1,直到最后一轮r=n之后迭代结束。此时数组a[n]中每一个元素必然完全相同,请把这个元素输出。
提示:
除了对性能和正确性的要求,我们还将重点考察代码书写风格。
输入
第一行是数组的长度n,第二行是r的初始值,之后n行每行是一个整数,对应a[n]中一个元素。
输出
最终收敛值。
样例输入
7
5
1
2
3
4
5
6
7
样例输出
AC了20%。。。。
时间限制:C/C++语言 2000MS;其他语言 4000MS
内存限制:C/C++语言 65536KB;其他语言 589824KB
题目描述:
假设a[n]是一个有n个元素的整型数组,定义该数组上的一个操作f(a[n],r),f把a[n]按步长r映射到另外一个数组b[n],映射规则如下:b[i]=MED(a[i],a[(i+1)mod n],a[(i+2)mod n],...a[(i+r-1)mod n])。MED指中位数,即获得r个元素中从小到大排在中间的元素(如果r是偶数,取中间两个元素较大的那个)。mod n是指模n的加法,相当于a[n]是一个循环数组。
现输入一个数组a[n],和步长初始值r(1<=r<=n),用f对数组a[n]进行反复的迭代映射(映射结果写回a[n]),每迭代一轮步长r增加1,直到最后一轮r=n之后迭代结束。此时数组a[n]中每一个元素必然完全相同,请把这个元素输出。
提示:
除了对性能和正确性的要求,我们还将重点考察代码书写风格。
输入
第一行是数组的长度n,第二行是r的初始值,之后n行每行是一个整数,对应a[n]中一个元素。
输出
最终收敛值。
样例输入
7
5
1
2
3
4
5
6
7
样例输出
5
import java.util.ArrayList;import java.util.Collections;import java.util.List;import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner in = new Scanner(System.in);while (in.hasNextInt()) {int n = in.nextInt();int r = in.nextInt();int[] a = new int[n];for (int i = 0; i < n; i++) {a[i] = in.nextInt();}while (r <= n) {a = doSomething(a, r, n);r++;}System.out.println(a[0]);}}public static int[] doSomething(int[] a, int r, int n) {int[] b = new int[n];for (int i = 0; i < n; i++) {List<Integer> list = new ArrayList<Integer>();int k = i;for (int j = 0; j < r; j++) {list.add(a[k % n]);k++;}Collections.sort(list);b[i] = list.get(r / 2);}return b;}}
AC了20%。。。。
0 0
- 2017年搜狗校招Java研发笔试编程题
- 2017年京东校招Java研发笔试编程第1题
- 2017年360公司校招Java研发笔试编程第一题
- 2017年携程旅游校招Java研发笔试编程题(3个)
- 2017年爱奇艺校招Java研发笔试编程题(2个)
- 2017美团秋招笔试编程题——后台研发
- 阿里巴巴2016java研发笔试附加题
- 《去哪儿》JAVA研发笔试题
- 群硕20170515Java研发实习生笔试题
- Java研发笔试基础
- 2015年阿里巴巴实习生招聘笔试题详细解析(研发大类:Java研发/C++研发)
- 校园招聘-2017网易互联网研发内推笔试编程题1
- 校园招聘-2017阿里C/C++研发工程师内推笔试编程题
- 校园招聘-2017滴滴研发工程师内推笔试编程题
- 美团2015校招研发笔试题--编程
- 搜狐笔试编程题(2016研发岗)
- 阿里2018校招客户端研发笔试之编程题
- 2018小红书校招软件研发在线笔试编程第二题
- Android面试题——Activity
- Count Numbers with Unique Digits
- Android面试题——Service
- 使用ViewPager和Fragment同时实现点击底部Tab切换和手势滑动切换Fragment
- linux服务器搭建solr服务
- 2017年搜狗校招Java研发笔试编程题
- 在Ubuntu Server 16.04 LTS下安装VMware Tools
- Xamarin android CardView的使用详解
- php 给cookie赋值之setcookie()用法
- csdn待改进点之38------>csdn登录系统的bug
- DIV布局有关属性和定位
- 操作系统:银行家算法(避免死锁)
- LeetCode 102. Binary Tree Level Order Traversal 题解
- 重拾Python 七