华为算法笔试题

#include <vector>
#include <iostream>
using namespace std;

int main()
{
    int k;
    cin>>k;
    vector<vector<int> > arr;
    vector<int> a;
    int tmp;
    while(cin>>tmp){
        int i=0;
        if(arr.size()<i+1) arr.push_back(a);
        arr[i].push_back(tmp);
        while(cin.get()!=‘\n‘){
            cin>>tmp;
            i++;
            if(arr.size()<i/k+1) arr.push_back(a);
            arr[i/k].push_back(tmp);

        }
    }
    for(int i=0;i<arr.size();i++){
        for(int j=0;j<arr[i].size();j++){
            if(i==arr.size()-1 && j==arr[i].size()-1){
                cout<<arr[i][j]<<endl;
            }else{
                cout<<arr[i][j]<<",";
            }
        }
    }
    return 0;

}
/*
3
1,2,3,4,5,6,7
8,9,5,6,7
*/

原文地址:https://www.cnblogs.com/joelwang/p/10651592.html

时间: 2024-07-31 11:25:06

华为算法笔试题的相关文章

UC算法笔试题

[QQ群: 189191838,对算法和C++感兴趣可以进来] 说实话,昨天UC的笔试题基本全是基础,但是太基础,直接导致很多都不能确定了.看来不管找工作还是找实习,一定要复习到位.好在我也一直是抱着打酱油的味道,实习与否不是特别在意,否则真心要鄙视死自己啦. 好的,言归正传,题目是一道经典的题目:在一个字符串中找到第一个只出现一次的字符.要求 1.必须用C/C++编写代码. 2.不能使用嵌套的for/while循环. 看到这道题时,我坑爹的看成不能使用for/while循环了.我当时想的是,要

华为 2015 笔试题练习

1.2015 华为 (1): #include <stdio.h> #include <string.h> #include <stdlib.h> #include <stddef.h> int cmp(const void *a, const void *b) { return *(int*)a - *(int*)b; } int main() { char strIn[4096] = {'\0'}; char strTemp[4096] = {'\0'}

算法笔试题

1.假定x=500,求下面函数的返回值__6_ . 1 2 3 4 5 6 7 8 9 10 int fun(int x) {     int countx = 0;     while (x)     {         countx++;         x = x & (x – 1);     }     return countx; } 解析:x&(x-1) 就是从右到左遇到的第一个1后面的(包括1)全都变成 0 ,更直观的:会导致x二进制中的1减少一个.本题答案:x二进制中有多少

2015年校招--华为上机笔试题--大数相乘

#include "stdafx.h" #include<string> #include<iostream> using namespace std; void add(string &sum,string temp) { int len1=sum.size(); int len2=temp.size(); int jw=0; int i,j; for(i=len1-1,j=len2-1;i>=0 && j>=0;i--,j

2015年校招--华为上机笔试题--去重复单词

#include "stdafx.h" #include<set> #include<string> #include<iostream> using namespace std; int main() { set<string> s; char buf[1000]={0}; gets(buf); char* p=buf; while(*p!=0) { if(*p==',' || *p=='.') { *p=' '; } p++; } p

传说中的华为Python笔试题——两等长整数序列互换元素,序列和的差值最小(修正)

有两个序列a,b,大小都为n,序列元素的值任意整形数,无序:要求:通过交换a,b中的元素,使[序列a元素的和]与[序列b元素的和]之间的差最小. 1. 将两序列合并为一个序列,并排序,得到sourceList2. 拿出最大元素Big,次大的元素Small3. 在余下的序列S[:-2]进行平分,得到序列max,min4. 将Small加到max序列,将Big加大min序列,重新计算新序列和,和大的为max,小的为min. 如下,提供递归版本和迭代版本的解体思路: #!/usr/bin/env py

算法笔试题2-Java

(1)翻转链表 链表节点定义: public class ListNode<T> { T val; ListNode next; } 翻转链表关键在于处理中间状态.中间状态是有一部分链表已翻转(用head表示),一部分链表未翻转(用next表示),将next指向的节点加入到head指向的节点,并且head移动到next的位置,next移动到next.next的位置,此时又回到中间状态.一直迭代直到next为null,此时链表全部已翻转,head指向的就是翻转链表的头. public ListN

华为往年笔试题【去重和排序】【vertor二维数组,迭代器】

题目:明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤1000),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号.然后再把这些数从小到大排序,按照排好的顺序去找同学做调查.请你协助明明完成“去重”与“排序”的工作(同一个测试用例里可能会有多组数据,希望大家能正确处理). Input Param n               输入随机数的个数 inputArray      n个随机整数组成的

华为往年笔试题【空瓶子换水喝】

题目:有这样一道智力题:“某商店规定:三个空汽水瓶可以换一瓶汽水.小张手上有十个空汽水瓶,她最多可以换多少瓶汽水喝?”答案是5瓶,方法如下:先用9个空瓶子换3瓶汽水,喝掉3瓶满的,喝完以后4个空瓶子,用3个再换一瓶,喝掉这瓶满的,这时候剩2个空瓶子.然后你让老板先借给你一瓶汽水,喝掉这瓶满的,喝完以后用3个空瓶子换一瓶满的还给老板.如果小张手上有n个空汽水瓶,最多可以换多少瓶汽水喝? 自己的笨解法: 1 #include<iostream> 2 #include<math.h> 3