2017百度web前端实习生在线笔试题

代码:

 1 import java.util.Scanner;
 2
 3 public class Main {
 4     public static void main(String[] args) {
 5         Scanner sc = new Scanner(System.in);
 6         int n = sc.nextInt();
 7         int num[]=new int[n];//用户输入的数组
 8         int b[]=new int[n];//复制num
 9         int c[]=new int[n];//依次保存最小值下标(第1小、第2小、第3小...)
10
11         for(int i=0;i<n;i++){
12             num[i]=sc.nextInt();
13         }
14         for(int i=0;i<n;i++)
15         {
16             b[i]=num[i];
17         }
18         //num排序 升序
19         int temp;
20         for(int i=0;i<n;i++){
21             for(int j=i;j<n;j++){
22                 if(num[i]>num[j]){
23                     temp=num[j];
24                     num[j]=num[i];
25                     num[i]=temp;
26                 }
27             }
28         }
29         //找到每个最小值下标
30         int i=0,j=0,k=0;
31         while(true){
32             if(num[i]==b[j]){
33                 c[k]=j;
34                 i++;
35                 k++;
36                 j=0;
37             }
38             else{
39                 j++;
40             }
41             if(k==n){
42                 break;
43             }
44         }
45         //计算结果
46         for(int m=0;m<n-1;m++){
47             if(c[m]>c[m+1]){
48                 System.out.println(n-(m+2)+1);
49                 break;
50             }
51         }
52     }
53 }

思路:主要是找规律,我找了好长时间,发现了规律。

假设数组长度n,第x小值位置在第x-1小值位置前面,就开始移动,则最少操作次数为:n-x+1

举例:

(1):数组长度为4 ,值分别是 19 7 8 25。最少操作次数:4-3+1=2

(2):数组长度为6 ,值分别是 19 8 7 9 10 25。最少操作次数:6-2+1=5

第(1)个例子,最小值是7,第二小是8,第三小是19。8在7后面,不移动8,19在8前面,移动19,19是第三小,所以操作次数:4-3+1=2

第(2)个例子,最小值是7,第二小是8。发现8在7前面,开始移动8,8是第二小,所以操作次数:6-2+1=5

总结:只要再给我10秒钟,我这道编程题分数就拿到手了,唉。。。

通过这次在线笔试,发现对于前端的知识了解的太少太少了,要想从事前端,还需要加倍努力,补充知识。

时间: 2024-09-30 06:28:31

2017百度web前端实习生在线笔试题的相关文章

2014阿里巴巴WEB前端实习生在线笔试题

2014年3月31日晚,我怀着略微忐忑的心情(第一次在线笔试^_^!!)进行了笔试,阿里巴巴的笔试题共有10道,几乎包含了Web前端开发的各个方面,有程序题.有叙述题,时间非常紧张,只完成了大概6道题.下面把遇到的题目跟大家分享一下! 1. <pre name="code" class="html"><!doctype html> <html> <head> <style type="text/css&

2015阿里巴巴前端实习生在线笔试题

Summary 大公司开始招实习生了,我也变成过来人了,品味到之前的酸甜苦辣,除了加油好像也没法说那么多. 因为是你在奋斗,心态这件事是你们在掌握的.但是我们唯一能提供的是我们topview实验室新鲜出炉的面经和笔试. (其实我在想有没应届生春招 - -!) Where 2015阿里巴巴前端实习生在线笔试题

腾讯web前端开发工程师笔试题及答案

1. 如何实现事件委托? 首先要知道什么是事件委托. 考虑一个列表,在li的数量非常少的时候,为每一个li添加事件侦听当然不会存在太多性能方面的问题,但是当列表非常的长,长到上百上千甚至上万的时候(当然只是一个解释,实际工作中很少遇到这么多li的情况),为每个li添加事件侦听就会对页面性能产生很大的影响. 就像下面这段代码: <!DOCTYPE HTML><html><head><meta charset="utf-8" /><ti

(转)腾讯web前端开发的笔试题(记忆版)

面试职位的是web前端开发工程师.一小时的笔试题,一看全傻眼了.全都是网页设计和javascript的东西,悲剧了.做java的几百年不搞那东东了.现在凭记忆记录一些笔试题,本人亲面,拒绝网上的各种假题. 1.js中“5”+4=? 答案:54 2.js中void(0)=? 答案:undefined 3.js中NaN*4=? 答案:NaN 4.js中null*4.5=? 答案:0 5.js中alert(5*015===5.075)结果?原因? 6.js中13>>2=? -13>>2=

WEB前端面试的笔试题

html <!DOCTYPE>标签的定义与用法 <!DOCTYPE> 声明必须是 HTML 文档的第一行,位于 <html> 标签之前. <!DOCTYPE> 声明不是 HTML 标签:它是指示 web 浏览器关于页面使用哪个 HTML 版本进行编写的指令. <!DOCTYPE>是HTML5的声明,所有的浏览器都支持它,对大小写不敏感,没有结束标签. 块级元素和行内元素有哪些? 块级元素:<div> <d>l <dt

阿里巴巴2015实习生在线笔试题

1 #include <iostream> 2 3 using namespace std; 4 5 class animal 6 { 7 public: 8 virtual void print_age(void)=0; 9 protected: 10 int age; 11 }; 12 class dog: public animal 13 { 14 public: 15 dog(){this->age = 2;} 16 ~dog(){} 17 virtual void print_

前端试题-2016年阿里前端开发工程师笔试题6,7,8题的解法

2016年阿里前端开发工程师笔试题(只有题,没有答案): http://www.cnblogs.com/sdgf/archive/2015/08/18/4740698.html 第6题:请在____处填写答案,从而达到题目的要求 var arr = [1, 2, 3, 4, 5]; var result = arr.sort(_______________________________).join("+"); console.log(result); 解答:在排序当中,如果需要按照某

百度Web前端面试经历

今天面了百度的前端实习职位.一面.时间大概是50分钟.面试官是位很帅气的小伙子,非常友好的一个人.进门的时候他让我等一会,我瞄了一眼他的电脑屏幕,发现他在coding…… 9点50开始的面试. 面试官:自我介绍一下. 我:blablabla. 面试官:javascript的类型转换(比如"2"*1, "a"*1). 我:javascript会调用valueOf来转换为一个基本数据类型,在这种情况下,如果javascript不能通过valueOf转成一个number,

[转]关于Web前端开发,附:(百度web前端笔试面试题目)

关于Web前端及百度web前端笔试面试题目 随着各大互联网公司设立了Web前端开发工程师.设计工程师等职位,web前端越来越得到互联网企业的认可.而且其重视程度与地位也随着浏览器 端的富客户端的体现而日益提高. 眼前对HTML5的未来和走向,业内的预测是会和Flash.Silverlight等相结合,从而取代传统的客户端应用程序.而实现这个目标的客户端核 心工作是有Web前端工程师来完成的. 从另一个角度,对于web产品来说,交互和用户体验是产品的第一价值,这部分价值的体现就是在web前端.可以