一堆选择加上三道算法,选择题忽略

1.给出四个数,判断能不能满足24点

暴力枚举所有情况就能通过

class Soltion{public boolean Game24Points (int[] arr) {// write code heredfs(0,arr,0);return flag;}boolean flag = false;public void dfs(int index,int[] arr,int num) {if (index > arr.length - 1 || flag) {if (num == 24) {flag = true;}return;}int r = arr[index];for (int i = 0; i < 4; i++) {if (i == 0) {dfs(index + 1,arr,num + r);} else if (i == 1) {dfs(index + 1,arr,num - r);} else if (i == 2) {dfs(index + 1,arr,num * r);} else if (i == 3 && r != 0) {dfs(index + 1,arr,num / r);}}}
}

2.判断括号是否满足条件,括号有三种:(){}[],不分优先级

经典栈应用

class Solution{//判断字符串是否有效,()[]{}public boolean IsValidExp (String s) {if (s == null || s.length() == 0) {return true;}// write code hereStack<Character> stack = new Stack<>();int i = 0;int l = s.length();while (i < l) {char c = s.charAt(i);char out;if (c == '(' || c == '[' || c == '{') {stack.push(c);} else {if (stack.isEmpty()) {return false;}if (c == ')') {out = stack.pop();if (out == '[' || out == '{') {return false;}} else if (c == ']') {out = stack.pop();if (out == '(' || out == '{') {return false;}} else if (c == '}') {out = stack.pop();if (out == '(' || out == '[') {return false;}}}i++;}return stack.isEmpty();}
}

3.找零问题,最少找多少硬币

解法1贪心:

class Solution{public int GetCoinCount (int N) {//dp// write code hereint sub = 1024 - N;int res = 0;res += sub/64;sub %= 64;res += sub/16;sub %= 16;res += sub/4;sub %= 4;res += sub/1;return res;
}
}

解法2动态规划:

class Solution{public int GetCoinCount (int N) {//dp// write code hereint sub = 1024 - N;if (sub == 0) {return 0;}int[] dp = new int[sub + 1];dp[1] = 1;if (sub >= 4) {dp[4] = 1;}if (sub >= 16) {dp[16] = 1;}if (sub >= 64) {dp[64] = 1;}for (int i = 2; i <= sub; i++) {if (i == 4 || i == 16 || i == 64) {continue;}if (i <= 1) {dp[i] = 1;} else if (i < 4) {dp[i] = dp[i - 1] + 1;} else if (i < 16) {dp[i] = Math.min(dp[i - 1],dp[i - 4]) + 1;} else if (i < 64) {dp[i] = Math.min(Math.min(dp[i - 1],dp[i - 4]),dp[i - 16]) + 1;} else {dp[i] = Math.min(Math.min(Math.min(dp[i - 1],dp[i - 4]),dp[i - 16]),dp[i - 64]) + 1;}}//System.out.println("====");//System.out.println(Arrays.toString(dp));//System.out.println("====");return dp[sub];
}
}

解法3,dfs加上备忘录:

class Solution{public int GetCoinCount (int N) {//dp// write code hereint sub = 1024 - N;coinDfs(sub,0);return min;}private HashMap<Integer,Integer> map = new HashMap<>(1024);private int min = 2000;public int coinDfs(int coin,int number) {if (coin < 0) {return 2001;}if (coin == 0) {min = Math.min(number,min);return min;}if (map.containsKey(coin)) {min = Math.min(min,number + map.get(coin));return min;}int t = coinDfs(coin - 64,number + 1);t = Math.min(t,coinDfs(coin - 16,number + 1));t = Math.min(t,coinDfs(coin - 4,number + 1));t = Math.min(t,coinDfs(coin - 1,number + 1));map.put(coin,t);return t;}
}

开始第一反应是dp,但是提交不对,后来用备忘录写了一遍,写一半,发现好像就是贪心,然后,贪心交了,就对了,再把备忘录写完交上去也对。然后我想不通为什么dp不对,一对比,发现当n=1024时候,dp[1]那里会越界,所以就出问题了。

2021届bilibili笔试2020-08-13场相关推荐

  1. 拼多多算法岗第一场笔试 2020.08.02

    过题情况 第一题 100% 第二题 100% 第三题 100% 第四题 20% 第一题: 小模拟 #include<bits/stdc++.h> using namespace std; ...

  2. 2021届BiliBili校招 数据分析/后端开发 笔试题记录

    文章目录 1. 背景 2. 题型 3. 选择题范围 3.1 数据结构 3.2 计算机网络 3.3 操作系统 3.4 计算机组成 3.5 其他 4. 算法题 4.1 第一题 4.2 第二题 4.3 第三 ...

  3. 美团后端笔试2022.08.13

    文章目录 1.魔法外卖 2.打扫房间 3.扑克牌游戏 4.三元组变形问题 附加题:树的分支最大值 昨天刚刚笔试结束,然后今天抽空给大家整理一下,然后简单说一下思路. 整场笔试下来,整体难度一般,只不过 ...

  4. 【华为2021秋招】【数字IC】【FPGA逻辑】【笔试解析】【独家】【2021届秋招】【FPGA探索者】【DengFengLai123】

    声明: /********************************************************* 文章首发于公众号,原创作者为 [公众号/知乎:FPGA探索者] [CSDN ...

  5. 2020年秋招回顾总结(2021届),目前已在上海入职工作,感恩亲人与朋友,未来,你好!

    一.前言 秋招结束拿到Offer后,已入职公司三个星期,一直想写一篇秋招总结给我的小伙伴们,但忙于刚来到这座陌生的城市,生活中有很多事情要进行初始化(init),例如租房子,租到房子之后买毛巾,买脸盆 ...

  6. 潇洒郎: 去哪儿2021届/2020年开发岗笔试题分享

    去哪儿2021届/2020年开发岗笔试题分享 1. 2020年,直播已经成为去哪儿网酒店预售的新武器, 去哪儿网CEO刚哥想从公司的m名员工中挑选n名参与自己的直播,已知m小于100请问一共有多少种选 ...

  7. 2021年东港二中高考成绩查询,辽宁省东港二中2021届英语高考模拟试卷1(新课改原创2020版,供2021年课改省份考生使用)...

    ID:12674887 资源大小:288KB 资料简介: 说明:新高考变化:2021届考生取消听力,4个阅读每个2.5分共37.5分,七选五阅读每个2.5分共12.5分,完形填空由20个变成15个每个 ...

  8. 河北师范大学计算机专业保研率,河北省内13所高校2021届保研率一览

    原标题:河北省内13所高校2021届保研率一览 河北省内具有保研资格的高校有13所,现已全部公布了2021届的保研情况,一起来看看吧. 注:部分院校数据为推算数据,可能与实际数据略有出入,仅供参考! ...

  9. 牛客网真题刷题经验一:浩鲸科技2020届java笔试

    1.浩鲸科技2020届java笔试 编写Java Application 程序,查找出字符串str中字符A,替换成字符B,并统计替换的次数.[注]不可以使用Java的内置函数,如index().rep ...

最新文章

  1. iOS开发能用mysql吗_iOS开发之数据库的简单使用
  2. wifi卡慢延迟高_健康生活好助手:华为智能体脂秤 WiFi 版 体验评测
  3. linux7 重新开始udev,Redhat Linux 7 创建UDEV设备(示例代码)
  4. 暴力优化解法+哈希解法——2016年第七届蓝桥杯省赛b组第八题 四平方和
  5. [Java基础]final和static修饰符
  6. 设计模式学习笔记一——开篇
  7. JAVA8的新特性之函数式接口
  8. 【英语学习】【English L06】U02 Food L4 Food around the world
  9. 基于matlab的gps信号仿真123,MATLABGPS信号仿真完整源代码.doc
  10. IOS 文件管理 2
  11. Pulseaudio之libsndfile for android(二十)
  12. Linux Shell脚本详细教程
  13. 初识Excel (Excel基础一)树形图
  14. 程序员叫啥名字_网友:什么是好程序员?程序员:用心给自己起个“配”自己的网名...
  15. 服务器的主板芯片组,关于P8系列服务器主板芯片组的一些事儿
  16. Hulu推荐:小众又新颖的综艺
  17. EVE模拟器关联CRT与Wireshark
  18. SpringEL 表达式语言(Spring Expression Language)
  19. ViewBinding和DataBinding的理解和区别
  20. Android 数据库知识回顾

热门文章

  1. QQ空间爬虫最新分享,一天 400 万条数据(附代码地址)
  2. 基于STM32和阿里云的矿道环境监测系统(温湿度DHT117,NRF2401(2.4G模块),气体传感器(MQ-3),0.96寸OLED屏,wifi模块)
  3. GitHub上收集的最全的前端资源汇总(包括前端学习、求职、开发资源)
  4. BZOJ 1266: [AHOI2006]上学路线route Floyd算法,网络最小割
  5. 是心跳影响情绪,还是情绪影响心跳?
  6. 澳大利亚最大的个贷公司Latitude遭攻击,两家服务提供商受影响
  7. SurfaceView、GLSurfaceView、SurfaceTexture、TextureView、SurfaceHolder、Surface
  8. JAVA编程:斐波那契数列(Fibonacci)
  9. rrd.so更新导致rrd_fetch返回值变更,与旧版不兼容
  10. 【观察】后疫情时代,如何实现远程办公确保业务连续性?