C笔试题(二)

/*
现在有一个数组 我们可以定义数组的子数组

如 数组 1 3 4 2 5 8 7
它的子数组可以是  1 3 4      3 4 2 5 等等

请写一个算法  找一个子数组  这个子数组递增不减少 并且是满足递增不减的最长子数组
*/
#include <iostream>
#include <cstdlib>
#include <ctime>

using namespace std;

template<typename T>
void init(T array[], int len)
{
    srand((unsigned int)(time(NULL)));

    for(int i=0; i<len; i++)
    {
        array[i] = rand() % 10 - 5;
    }
}

template<typename T>
void print_array(T array[], int len)
{
    for(int i=0; i<len; i++)
    {
        cout<<array[i]<<" ";
    }

    cout<<endl;
}

template<typename T>
void find_sub_array(T array[], int len)
{
    int ret = (len > 1);

    if( ret )
    {
        int sum = 1;
        int cur = 1;
        int index = 0;
        int ci = 0;
        T ele = array[0];

        for(int i=1; i<len; i++)
        {
            if( ele <= array[i] )
            {
                cur++;
            }
            else
            {
                cur = 1;
                ci = i;
            }

            if( cur > sum )
            {
                sum = cur;
                index = ci;
            }

            ele = array[i];
        }

        print_array(array + index, sum);
    }
}

int main()
{
    int array[10] = {0};
    int max_sum = 0;

    init(array, 10);

    print_array(array, 10);

    find_sub_array(array, 10);

    return 0;
}
时间: 2024-10-13 20:12:15

C笔试题(二)的相关文章

某支付公司笔试题二

题目:用java编写一段程序采用选择排序法对数组array = {25,15,42,16,12,36}进行由小到大排序. 1.选择排序法 该排序法的思想是每次从当前元素开始往后查找最小元素,将最小与当前元素进行位置互换.选择排序和冒泡排序相比优势在于交换次数减少. // 时间复杂度n(n-1)/2,即O(n^2) public static void selectSort(int[] array){ int k,tmp,len; len=array.length; for(int i=0;i<l

Java常见笔试题&lt;二&gt;

1.静态代码块.非静态代码块.构造函数的输出顺序 情况一:没有继承父类时 1 class HelloA { 2 3 public HelloA() { 4 System.out.println("I'm A class"); 5 } 6 7 static { 8 System.out.println("static A"); 9 } 10 11 { 12 System.out.println("A"); 13 } 14 15 public sta

Java笔试题二:读程序

1 public class SopResult { 2 3 public static void main(String[] args) { 4 5 int i = 4; 6 System.out.println("The result is: " + ((i > 4) ? 9.99 : 9)); 7 } 8 9 } 读程序,输出结果:The result is: 9.0 分析可知,本程序相当于: 1 public class SopResult { 2 3 public st

常见笔试题(二)

6.用obj-c写一个冒泡排序 -(void)mySort:(NSMutableArray *)mutArray { id tmpObj = nil; unsigned long flag = mutArray.count-1;//flag :最大脚标 while (flag > 0) { int k = flag; flag = 0; for (int j = 0 ; j < k ; j++) { int order = NSOrderedAscending;// 或 NSOrderedDe

android笔试题二

1.android系统架构: Linux内核--标准库--Framework层--应用层 Linux层包括:Android系统的核心服务,硬件驱动,进程管理,系统安全等等 2.UI界面框架图: 3.View的测量模式:EXACTLY,AT_MOST,UNSPECIFIED. 4.自定义View与ViewGroup的时候应该注意什么? 自定义ViewGroup的时候应该注意重写onLayout来控制子类显示的位置. 如果需要支持wrap_content还要重写onMeasure(). 自定义Vie

2016去哪网笔试题二

第二道题目的题意大概是给定三个无序数组A,B,C:这三个数组中各自的数字没有重复,但是可能存在同时在三个数组中的数字. 如果有请按从小到大的顺序输出,如果没有不输出. 1 #include <iostream> 2 #include <vector> 3 #include <stdio.h> 4 #include <stdlib.h> 5 //#include <cstdio.h> 6 #include <string> 7 #inc

数据结构笔试题二

1.C++编成求二叉树的深度: int binTreeDepth(link *head){   int depthl=0,depthr=0;   if(head==null)               return 0;   else{              if ((head->left)!=null)                     depthl = 1 + binTreeDepth(head->left);              if ((head->right)

Java工程师笔试题整理[校招篇]

隔着两个月即将开始校招了.你是不是也想借着这个机会崭露头角,拿到某些大厂的offer,赢取白富美.走上人生巅峰?当然如果你还没能打下Java基础,一定要先打好Java基础:如何一步一步的学Java - 学习编程 - 知乎专栏.然后再来看一下练习一下各大厂的面试笔试题目. 如果以下内容满足不了你,你还可以去看这篇: 2016校招编程题汇总 - 学习编程 - 知乎专栏 进入主要内容(主要内容整理来自牛客网:牛客网)(以下内容按照各大公司进行划分,对每一公司按照年份进行划分,如果想想下载以下内容,可以

【转】嵌入式软件工程师经典笔试题

嵌入式软件工程师经典笔试题 > 预处理器(Preprocessor) 1. 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题) #define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL 我在这想看到几件事情: 1). #define 语法的基本知识(例如:不能以分号结束,括号的使用,等等) 2). 懂得预处理器将为你计算常数表达式的值,因此,直接写出你是如何计算一年中 有多少秒而不是计算出实际的值,是更清晰而没有代价的. 3).

ThoughtWorks笔试题之Merchant&#39;s Guide To The Galaxy解析

一.背景 在某网站上看到ThoughtWorks在武汉招人,待遇在本地还算不错,就投递了简历.第二天HR就打开电话,基本了解了一下情况(工作环境不错,男人妹子比例:1:1,双休,六险一金,满一年年假15天,病假8天,月薪1W--2W).然后立马收到一封:Coding Assignment的笔试题目.网上搜索了一下,发现这个公司还是挺大的,公司面试流程是出了名的繁杂和苛刻.据说有8轮:电话面试=>笔试=>Homework=>结对编程(中午管饭)=>技术面试=>PM面试=>