网易笔试题目练习

  • 牛牛找工作(贪心)
  • 牛牛的(DFS/穷举+剪枝)
    • DFS解法
    • 剪枝解法

牛牛找工作(贪心)

原题目以及java解法
核心思想:用哈希表和排序降低时间复杂度

技巧在于:

  • 用哈希:使得输入某个伙伴能力值后可以立刻输出最优解
  • 用排序:实现贪心算法,避免二重循环,排序后O(n)一遍更新就可以得到所有最优解

数据结构:
D[i]数组(值≥\geq≥ 0),i=0,1,…,m+n-1, 先存入工作难度再存人能力值

hs_Pay hashmap(D[i]->P[i])

对D[i]排序(sort), D[i]->P[i]的最大值就是max(P[0],P[1],…,P[i])
如此将hs_Pay更新成目标所求(maxPay)

再用hs_Pay输出每个人的最大收入的工作(maxPay)即可

示例输入:
3 3
1 100
10 1000
1000000000 1001
9 10 1000000000
示例输出:
100
1000
1001
//官方题解的理解基础之上的C++版本
#include<bits/stdc++.h>
#include<unordered_map>
using namespace std;
typedef long long ll;int main()
{int N, M; cin >> N >> M;vector<int>  D(N + M);unordered_map<int, int>hsPay;int i;for (i = 0; i < N; i++)//输入(工作难度,收入){cin >> D[i];cin>>hsPay[D[i]];}vector<int>Capab;        //!易错点 别写成Capab(M)  否则后面别push_back,要改成直接赋值for (i = N; i < N + M; i++)//输入伙伴工作能力{cin >> D[i];Capab.push_back(D[i]);if (hsPay.find(D[i]) == hsPay.end())hsPay[D[i]] = 0;    //没有记录的能力值暂定收入为0,方便后续排序(贪心)}sort(D.begin(), D.end()); //算法库中的排序//更新hsPay为最优解int max = 0;for (i = 0; i < D.size(); i++){if (max < hsPay[D[i]])max = hsPay[D[i]];hsPay[D[i]] = max;}for (i = 0; i < M; i++)cout << hsPay[Capab[i]]<<endl;
}

易错点:
vector的使用(Define and Use):

  • 要么别开空间,直接push_back,就像python-list,
  • 要么开好空间,直接赋值,就像普通数组

1、 第一种情况

//定义
vector<int>List;
...
//使用中
List.push_back(xx);

2、第二种情况

//定义
vector<int>nums(n);
...
//使用中
nums[i]=xx;

不可混淆,避免在一串0之后push_back或者指针越界报错。

牛牛的(DFS/穷举+剪枝)

题目:
http://www.k6k4.com/blog/show/aaawcsdra1528985482372
牛牛准备参加学校组织的春游, 出发前牛牛准备往背包里装入一些零食, 牛牛的背包容量为w。

牛牛家里一共有n袋零食, 第i袋零食体积为v[i]。

牛牛想知道在总体积不超过背包容量的情况下,他一共有多少种零食放法(总体积为0也算一种放法)。

输入描述:

输入包括两行

第一行为两个正整数n和w(1 <= n <= 30, 1 <= w <= 2 * 10^9),表示零食的数量和背包的容量。

第二行n个正整数v[i](0 <= v[i] <= 10^9),表示每袋零食的体积。

DFS解法

DFS解法的规律
对解空间(零食列表 也就是vector<int>value),带着约束条件long sum)执行DFS,这个约束条件会出现在dfs()函数的参数中。

#include<bits/stdc++.h>
using namespace std;
long ans = 0;
int n;
long w;
vector<long>value;
void dfs(long sum, int loc);
int main()
{cin >> n >> w;long total = 0;for (int i = 0; i < n; ++i) {int b;cin >> b;value.push_back(b);total += value[i];}if (total <= w)ans = pow(2, n);else {sort(value.begin(), value.end());dfs(0, 0);}cout << ans << endl;return 0;
}
//带者当前已装载总体积sum进行DFS,保持sum<阈值w
void dfs(long sum, int loc)
{if (sum > w)return;if (sum <= w) {++ans;}for (int i = loc; i < n; ++i) {dfs(sum + value[i], i + 1);}
}

剪枝解法

未实践

记录解的个数用不到剪枝,而找符合某种限制条件的解(比如零食体积和要为定值),则常用DFS+剪枝的方法。

【网易实习准备】往年笔试题目练习相关推荐

  1. 2021.8.21 网易秋招开发笔试(题目 + java代码)

    2021.8.21 网易秋招开发笔试 一.题目: 二.程序 //采用的是深度优先搜索 import java.util.HashMap;public class wangyi {public stat ...

  2. 2015腾讯暑期实习笔试题目

    2015腾讯暑期实习笔试题目 2015腾讯暑期实习笔试题目 (1).层次遍历序列为ABCDEFG的二叉树,其中序遍历的序列是什么? (2).ABCABC为入栈的顺序,倘若出栈的顺序为ABCCBA,那么 ...

  3. 网易笔试 android,网易android笔试题目

    网易android笔试题目 网易android笔试题目(1) 1.什么是ANR,如何规避? 2.描述Activity 生命周期 3.描述android Handler 工作机制 4.android s ...

  4. 百度 腾讯 阿里 小米 笔试题目宝典

     九月十月百度人搜,阿里巴巴,腾讯华为小米搜狗笔试面试八十题 引言 自发表上一篇文章至今(事实上,上篇文章更新了近3个月之久),blog已经停了3个多月,而在那之前,自开博以来的21个月每月都不曾 ...

  5. 百度 阿里 腾讯 BAT笔试题目

     8月15日,百度2道面试题: 1.来自<编程之美>的概率题:一个桶里面有白球.黑球各100个,现在按下述规则取球:的     i .每次从通里面拿出来两个球:     ii.如果取出 ...

  6. 网易实习笔试题——炸弹人编程

    目录 网易实习笔试题--炸弹人编程 一.题目要求 二.实现逻辑 1.Enemy类 2.随机生成游戏布局 3.展示游戏布局 4.寻找炸弹人可达区域 5. 放炸弹炸死敌人 6.在可达区域放置两颗炸弹,并且 ...

  7. 2017网易实习前端面试题讨论

    欢迎来到2017网易前端开发实习题目的讨论组 今天下午14到16点网易进行了18届实习的第一次笔试,自我感觉心态有点小崩咧. 但是也并没有到完全不能做的地步,毕竟只是实习的笔试,也不会太过困难地,但感 ...

  8. 网易2017春招笔试真题编程题集合

    网易2017春招笔试真题编程题集合 题目来源:牛客网 https://www.nowcoder.com/profile/7952866/test/7811777/83061 1.双核处理 题目描述 一 ...

  9. 字节跳动今日头条笔试题目经历2018

    本人是 字节跳动2018年12月来学校宣讲会招实习生的时候参加笔试的.方向是后端开发.那时候还在学框架啊之类的还没开始刷算法,笔试的三道题目只做出了第一道的代码,其他两道都是只写出了分析过程.刚刚出结 ...

最新文章

  1. pb数据窗口显示图片_PowerPhotos帮助你再Mac系统上更好,更快的管理自己的图片...
  2. matlab全景图素材,matlab以simulink的方式建立一个vr模型
  3. Centos6.8 Mysql 设置自动备份与定期删除备份文件 自测部署安装
  4. qt动态添加窗口到垂直布局
  5. 条款05:了解C++默默编写并调用哪些函数
  6. raspberry pi_尝试8个有趣的Raspberry Pi项目
  7. python对数组缺失值进行填充
  8. MySQL 主从复制与读写分离概念及架构分析
  9. python socket 接口
  10. ❀❀ 名词解释(PM、PD、UE、UI、RD....)
  11. 34.了解那些算法要求使用排序的区间作为参数
  12. t580 thinkpad_ThinkPad T580性能如何?联想ThinkPad T580商务本详细评测
  13. pip的安装,卸载和换源
  14. python中ones的含义和用法
  15. 水星无线路由器设置虚拟服务器,水星无线路由器桥接设置桥接(图文详解)
  16. 相机变焦与对焦方法及原理
  17. 2022-2028年全球与中国全轮驱动(AWD)系统行业深度分析
  18. less 和 sass 配置
  19. Map 和 ForEach 的区别
  20. 解决CentOS7 Development Tools 包不存在问题

热门文章

  1. HB 7066机舱内部非金属材料毒性测定
  2. 微积分Z2 J2 典型函数
  3. 机器学习第四篇----MAB(多臂老虎机)一次失败的尝试
  4. 时钟抖动(Jitter)的基本概念
  5. python执行pip install 命令的时候报错 Filexxxx,line 1 pip install 的问题
  6. AI智能曲谱识别|乐谱识别识音SDK|人声数拍SDK|智能钢琴、MIDI音乐、打谱、曲谱乐谱播放识别SDK、音序器、合成器、播放器软件
  7. 常用SQL语句(一)
  8. 监控Kafka(kafka_exporter)
  9. Android中设置ListView内容刷新问题
  10. 15 python的文件操作