拼多多2018年校招真题

题目描述

给定一个无序数组,包含正数、负数和0,要求从中找出3个数的乘积,使得乘积最大,要求时间复杂度:O(n),空间复杂度:O(1)

输入描述:
无序整数数组A[n]

输出描述:
满足条件的最大乘积

示例1
输入
3 4 1 2
输出
24

//
// Created by nexta on 2019/2/22.
//#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;int main() {int temp;vector<long long> max;vector<long long> min;int n;cin >> n;while (n--) {cin >> temp;sort(max.begin(), max.end(), greater<long long>());sort(min.begin(), min.end());if (max.size() < 3)max.push_back(temp);else if (temp > max[2])max[2] = temp;if (min.size() < 2)min.push_back(temp);else if (temp < min[1])min[1] = temp;}sort(max.begin(), max.end(), greater<long long>());sort(min.begin(), min.end());long long a = max[0] * max[1] * max[2];long long b = max[0] * min[0] * min[1];cout << (a > b ? a : b) << endl;return 0;
}

题目描述

有两个用字符串表示的非常大的大整数,算出他们的乘积,也是用字符串表示。不能用系统自带的大整数类型。

输入描述:
空格分隔的两个字符串,代表输入的两个大整数

输出描述:
输入的乘积,用字符串表示

示例1
输入
72106547548473106236 982161082972751393

输出
70820244829634538040848656466105986748

import java.math.BigInteger;
import java.util.Scanner;/*** @Desc:java的大整数很好的解决了大整数的相关运算* @Date: 2019/2/20 18:25  better late than never. 认真思考,不要直接就动手写*/
public class Main {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);String input[] = scanner.nextLine().split(" ");BigInteger a = new BigInteger(input[0]);BigInteger b = new BigInteger(input[1]);BigInteger c = a.multiply(b);System.out.println(c);}
}

题目描述

六一儿童节,老师带了很多好吃的巧克力到幼儿园。每块巧克力j的重量为w[j],对于每个小朋友i,当他分到的巧克力大小达到h[i] (即w[j]>=h[i]),他才会上去表演节目。老师的目标是将巧克力分发给孩子们,使得最多的小孩上台表演。可以保证每个w[i]> 0且不能将多块巧克力分给一个孩子或将一块分给多个孩子。

输入描述:
第一行:n,表示h数组元素个数
第二行:n个h数组元素
第三行:m,表示w数组元素个数
第四行:m个w数组元素

输出描述:
上台表演学生人数

示例1
输入
3
2 2 3
2
3 1

输出
1

//
// Created by nexta on 2019/2/23.
//#include <iostream>
#include <algorithm>
using namespace std;int main() {int n, m, temp;cin >> n;int *h = new int[n];for (int i = 0; i < n; i++)cin >> h[i];cin >> m;int *w = new int[m];for (int i = 0; i < m; i++)cin >> w[i];sort(h, h + n);sort(w, w + m);int i = 0, j = 0, count = 0;while (i < n && j < m) {if (h[i] <= w[j]) {count++;i++;j++;} else j++;}cout << count << endl;
}

题目描述

假设一个探险家被困在了地底的迷宫之中,要从当前位置开始找到一条通往迷宫出口的路径。迷宫可以用一个二维矩阵组成,有的部分是墙,有的部分是路。迷宫之中有的路上还有门,每扇门都在迷宫的某个地方有与之匹配的钥匙,只有先拿到钥匙才能打开门。请设计一个算法,帮助探险家找到脱困的最短路径。如前所述,迷宫是通过一个二维矩阵表示的,每个元素的值的含义如下 0-墙,1-路,2-探险家的起始位置,3-迷宫的出口,大写字母-门,小写字母-对应大写字母所代表的门的钥匙

输入描述:
迷宫的地图,用二维矩阵表示。第一行是表示矩阵的行数和列数M和N
后面的M行是矩阵的数据,每一行对应与矩阵的一行(中间没有空格)。M和N都不超过100, 门不超过10扇。

输出描述:
路径的长度,是一个整数

示例1

输入
5 5
02111
01a0A
01003
01001
01111

输出
7

//抄的,真心不会
// Created by nexta on 2019/2/23.
//
#include <iostream>
#include <algorithm>
#include <cstring>
#include <vector>
#include <queue>
using namespace std;char G[104][104];
int book[104][104][1040], M, N;
int Next[4][2] = {0, 1, 0, -1, 1, 0, -1, 0};int bfs(int x, int y);struct node {int x, y, k, step;node(int x, int y, int k, int step) : x(x), y(y), k(k), step(step) {}
};int main() {int i, j;//freopen("D:/clion/start/input/pdd_D.txt", "r", stdin);//freopen("debug/out.txt","w",stdout); //输出重定向,输出数据将保存在out.txt文件中while (cin >> N >> M) {for (int i = 0; i < N; i++)cin >> G[i];memset(book, 0, sizeof(book));int flag = 0;for (int i = 0; i < N; i++) {if (flag == 1)break;for (int j = 0; j < M; j++) {if (G[i][j] == '2') {flag = 1;book[i][j][0] = 1;cout << bfs(i, j) << endl;break;}}}}return 0;
}int bfs(int startX, int startY) {queue<node> Q;Q.push(node(startX, startY, 0, 0));while (!Q.empty()) {node head = Q.front();Q.pop();if (G[head.x][head.y] == '3') return head.step;for (int i = 0; i < 4; i++) {int nx = head.x + Next[i][0], ny = head.y + Next[i][1];if (nx >= N || nx < 0 || ny >= M || ny < 0 || G[nx][ny] == '0') continue;int key = head.k;//记录钥匙if (G[nx][ny] >= 'a' && G[nx][ny] <= 'z') key = key | (1 << (G[nx][ny] - 'a'));//碰到门了去匹配钥匙if (G[nx][ny] >= 'A' && G[nx][ny] <= 'Z' && (key & (1 << (G[nx][ny] - 'A'))) == 0) continue;if (!book[nx][ny][key]) {book[nx][ny][key] = 1;Q.push(node(nx, ny, key, head.step + 1));}}}return 0;
}//这个总结也是抄的
//这题就是普通的bfs多了‘钥匙’这个状态
//所以book[x][y][key]的意义就是 横坐标为x,纵坐标为y,钥匙状态为key的点是否访问过
//钥匙的状态 就用二进制数表示 最多10 把钥匙 那就是1024
//比如我现在有第二把钥匙和第四把钥匙  那么我的钥匙状态就是 0101000000 也就是 320

拼多多2018年校招真题相关推荐

  1. 2018深信服拼多多秋招笔试真题

    网易互娱 处理条件1: 处理5: 处理3,4的同时处理2: 对最后两个字符处理2. 对第3.4个条件的处理: judgeDengcha(int a,b,c){//对第3个条件的处理: if a,b,c ...

  2. 2018拼多多内推校招编程题

    最大乘积 时间限制:1秒 空间限制:32768K 给定一个无序数组,包含正数.负数和0,要求从中找出3个数的乘积,使得乘积最大,要求时间复杂度: O(n),空间复杂度:O(1) 输入描述: 无序整数数 ...

  3. 网易2018年校招真题----堆棋子

    题目描述 小易将n个棋子摆放在一张无限大的棋盘上.第i个棋子放在第x[i]行y[i]列.同一个格子允许放置多个棋子.每一次操作小易可以把一个棋子拿起并将其移动到原格子的上.下.左.右的任意一个格子中. ...

  4. 牛客网 2018校招真题 美团点评 K的倍数

    Description 牛客网 2018校招真题 K的倍数 Solving Ideas sum[i + 1]: 表示序列p[0]...p[i]的和 从长度最大的子串开始判断,当剩余需要判断子串长度不可 ...

  5. 牛客网 2018校招真题 摩拜 排序次数

    Description 牛客网 2018校招真题 排序次数 Solving Ideas 将数组a的元素拷贝到数组b 对数组b进行排序 对比数组b,统计数组a中已排序的元素个数 如:a = [2, 11 ...

  6. 牛客网 2018校招真题 滴滴出行 寻找丑数

    Description 牛客网 2018校招真题 寻找丑数 Solving Ideas 参考<剑指offer>丑数 Time complexity : O(n)O(n)O(n) Space ...

  7. 牛客网 2018校招真题 爱奇艺 最后一位

    Description 牛客网 2018校招真题 最后一位 Solving Ideas 二分查找 Solution import java.io.BufferedReader; import java ...

  8. 牛客网 2018校招真题 京东 回文

    Description 牛客网 2018校招真题 回文 Solving Ideas 计算以str[str.length() - 1]为结尾的最大的回文长度,从而判断最少需要追加多少个字母才能使整个串成 ...

  9. 牛客网 2018校招真题 美团点评 关灯游戏

    Description 牛客网 2018校招真题 关灯游戏 Solving Ideas 只与最右边的数字有关,如果最右边的数字为1,则Alice赢,否则Bob赢 假设最右边的数字为1 因为Alice是 ...

最新文章

  1. 用于半监督语义分割的基于掩码的数据增强
  2. 20 年坚守,不忘初心!一封来自程序员的感谢信!
  3. python是一种面向对象、直译式的脚本编程语言_什么是python编程语言
  4. c++(和opencv)如何把局部变量变成全局变量的功能
  5. 【干货】原型设计的八大指导原则
  6. spring中的aop术语和细节
  7. [005] .NET 的执行模型
  8. 回顾经典,Netflix的推荐系统架构
  9. 混淆矩阵评价指标_机器学习:模型训练和评估——分类效果的评价
  10. 大数据可视化类型有哪些
  11. 将服务费用DIY到底----走出软件作坊:三五个人十来条枪 如何成为开发正规军(十)...
  12. unity入门——实现一个简单的跑酷游戏(准备工作)
  13. Vue关键词搜索高亮
  14. 移动端网页点击链接出现蓝色背景如何解决
  15. HiveSQL percentile和percentile_approx 函数计算千分数
  16. 中国首个超250米高“空中连廊”幕墙工程合拢 创多项世界之最
  17. 30、OAK摄像头使用官方的yolox进行初训练和测试
  18. 鼠标事件(事件类型)
  19. Django连接mysql数据库步骤非常详细
  20. 分享搭建脚手架的一些经验

热门文章

  1. 基于jsp+mysql+Spring+mybatis的ssm酒店管理系统
  2. nginx某条日志详解
  3. 零基础学C语言(第一天)
  4. 曾国藩:一勤天下无难事
  5. 2.3 数据库-深入理解
  6. 3.1 人生规划的秘密:一个人活成一支队伍
  7. 用计算机画漫画很难吗,怎么在电脑上画漫画,难不难
  8. 见猎心喜 浅尝辄止 偶有所得 不足为法
  9. web在线编辑word,excel,pdf插件-----WebOffice 文档控件API
  10. mysql 别名_MySQL 字段别名(列别名)