笔试
HackingGate
这个作者很懒,什么都没留下…
展开
-
组合数计算
华为笔试题里出现了组合数计算的问题,在此记录一下解法:求的核心公式是这个公式可以从直观上很好地理解:从n个物品里选k个的方法数,等于 选第n个物品,在前n-1个物品里选k-1个的方法数 + 不选第n个物品,在前n-1个物品里选k个的方法数。也可以从杨辉三角中推出。那么求组合数的问题就变成了动态规划问题:这样计算可以有效避免求组合数时乘法溢出。如果只需要求固定n的,那么可以进一步优化空间到一维:,注意 j 要从右向左更新。 int cnk[MAXN] = {0}; .原创 2020-08-30 20:41:33 · 478 阅读 · 0 评论 -
OPPO C++软件开发笔试题 2020.8.29
三道编程题都是竞赛题,难度很大。1.第k大斜率https://www.luogu.com.cn/problem/P4479在平面直角坐标系上,有 n 个不同的点。任意两个不同的点确定了一条直线。请求出所有斜率存在的直线按斜率从大到小排序后,第 k 条直线的斜率为多少。为了避免精度误差,请输出斜率向下取整后的结果。输入格式:第一行,包含两个正整数 n 和 k 。接下来 n 行,每行包含两个整数 xi,yi,表示每个点的横纵坐标。输出格式:输出一行,包含一个整...原创 2020-08-30 15:09:12 · 1859 阅读 · 0 评论 -
大疆嵌入式软件笔试题2020.8.16
嵌入式软件岗,两道编程题都是动态规划。第一题:求出数组中两个不重叠的子数组的最大和。POJ 2479Maximum sumhttp://poj.org/problem?id=2479考试的时候没想出来。#include <vector>#include <cstdio>using namespace std;int helper(const vector<int>& v){ int n = v.size(); vect.原创 2020-08-17 14:51:55 · 2875 阅读 · 2 评论