zoukankan      html  css  js  c++  java
  • 寻找数组中第二大或第二小的数值

    昨天晚上参加了360校园招聘的笔试,其中最后一道笔试题就是找数组中的第二大的数。

    可以看出今年360笔试的试题还是不难的,想起昨晚提前把试题做完后,提前把试卷给交了,就和旁边的北大的一哥们聊天,聊最近的各种笔试、面试以及被鄙视。快到公交站时,还讨论着明天的腾讯、百度,以及晚上的去哪儿网的笔试。找工作还确实是个体力活啊!到处赶场。

    2013年360校园招聘题:写一个函数找出一个整数数组中,第二大的数。

    从一个给定的、无序的数组中,找出第二大或者第二小的数值。

    #include <stdio.h>
    
    int FindSecondBiggest(int *v, int len)
    {
    	if (v == NULL || len < 2) {
    		return 0xfffffff;
    	}
    
    	int i, max = v[0], second = v[1];
    	if (max < second) {
    		max = v[1];
    		second = v[0];
    	}
    	for (i = 2; i < len; ++ i) {
    		if (v[i] > max) {
    			second = max;
    			max = v[i];			
    		} else if (v[i] > second) {
    			second = v[i];
    		}
    	}
    	return second;
    }
    
    int FindSecondLeast(int *v, int len) 
    {
    	if (v == NULL || len < 2) {
    		return 0xffffffff;
    	}
    
    	int i, min = v[0], second = v[1];
    	if (min > second) {
    		min = v[1];
    		second = v[0];
    	}
    	for (i = 2; i < len; ++ i) {
    		if (v[i] < min) {
    			second = min;
    			min = v[i];
    		} else if (v[i] < second) {
    			second = v[i];
    		}
    	}
    	return second;
    }
    
    int main()
    {
    	int v[] = {1,2,3};
    	int len = sizeof(v) / sizeof(v[0]);
    	printf("SecondBiggest = %d
    ", FindSecondBiggest(v, len));
    	printf("SecondLeast = %d
    ", FindSecondLeast(v, len));
    	return 0;
    }
    
  • 相关阅读:
    DOCK-SWARM
    springMVC上传和下载文件
    生成任意内容任意类型的文件
    配置监听(系统启动和关闭时运行的程序)
    配置过滤器
    读取文件内容(TXT之类的文件)
    读取properties文件中的内容
    时间戳转时间字符串和时间
    启动Service的时候报错unable to install breakpoint in
    java后台调用接口并获取返回值
  • 原文地址:https://www.cnblogs.com/heyonggang/p/3366794.html
Copyright © 2011-2022 走看看