华为笔试4.29

今晚华为的三道笔试题本菜鸡居然都做出来了,开始膨胀
人生第一次啊
我是java写的哈。

我的题目是
获取字符串排列组合数量
删除字符 加密
还有约会城市道路硬币啥的

题目可能不一样,嗨呀

第一题思路:
map存每个字符出现数量。
然后字符数量的阶乘除以每个字符数量的阶乘
比如 aabbbcccc
答案:9!/2!/3!/4!
private static int getNum(char[] ch) {
		Map<Character,Integer> map=new HashMap<Character,Integer>(8);
		for(int i=0;i<ch.length;i++){
			if(map.containsKey(ch[i])){
				int value=map.get(ch[i]);
				map.put(ch[i], value+1);
			}else{
				map.put(ch[i], 1);
			}
		}
		int len=ch.length;
		int res=1;
		while(len!=1){
			res=res*len;
			len--;
		}
		for(Character c:map.keySet()){
			int value=map.get(c);
			while(value!=1){
				res=res/value;
				value--;
			}
			
		}
		return res;
	}


第二题思路:
循环k次删k个字母,
每次循环比较相邻两个,前一个大就删除前一个,比如bca,就删除c
如果某次没有删除 说明字母从小到大排列,比如aabbcc,那直接从后往前删就行了。
private static void getAnswer(String str, int k) {
		ArrayList<Character> list=new ArrayList<Character>();
		for(int i=0;i<str.length();i++){
			list.add(str.charAt(i));
		}
		int size=list.size();
		int nn=0;
		boolean flag=false;
		for(int i=0;i<k;i++){
			
			for(int j=0;j<list.size()-1;j++){
				if(list.get(j)>list.get(j+1)){
					list.remove(j);
					break;
				}
				
			}
			nn=i;
			if(list.size()==size-i){
				flag=true;
				break;
			}
		}
		if(flag){
			for(int i=nn;i<k;i++){
				list.remove(list.get(list.size()-1));
			}
		}
		for(int i=0;i<list.size();i++){
			System.out.print(list.get(i));
		}
		
		
	}


第三题思路:
遍历路径,找到源城市和当前(传入参数start)相同的道路,同时判断钱够不够用,够的就递归(硬币数量减少,道路长度增加,当前城市改变)
记录每次最小路径值,返回
/**
k硬币数量
n城市数量
r道路数量
arr数组
start当前城市
l当前路径
*/
private static int getAnswer(int k, int n, int r, int[][] arr, int start, int l) {
		if (start == n) {
			return l;
		}
		int min = Integer.MAX_VALUE;
		int temp = -1;
    
		for (int i = 0; i < r; i++) {
			if (arr[i][0] == start && arr[i][3] <= k) {
				temp = getAnswer(k - arr[i][3], n, r, arr, arr[i][1], l + arr[i][2]);
			}
			if (min >= temp && temp != -1) {
				min = temp;
			}
		}
		if (min != Integer.MAX_VALUE) {
			return min;
		}
		return -1;
	}        


也不知道有没有说明白,嗨呀我尽力了。。

我好像没碰到90的情况,捂脸,可能运气太好了

代码可以私信加微信发哈
#华为#
全部评论
- - 第三题 300分,什么dijkstra和floyed我全都忘了。。。 然后我写了半天最后只能灵机一动print(-1)  对了22.2%🤣
2
送花
回复
分享
发布于 2020-04-29 21:07
哈哈,同样的一套,0.8 1 1
2
送花
回复
分享
发布于 2020-04-29 22:59
秋招专场
校招火热招聘中
官网直投
老哥能分享以下代码吗。。第一题只过了90.找不到原因,头大
点赞
送花
回复
分享
发布于 2020-04-29 20:38
..带佬。我第二题没来及看....第一题为啥总是90%啊
点赞
送花
回复
分享
发布于 2020-04-29 21:00
大佬,分享下第二题的解题思路呗
点赞
送花
回复
分享
发布于 2020-04-29 21:02
作对前两题,第三题路径出来了没来得及处理路途那些...
点赞
送花
回复
分享
发布于 2020-04-29 21:03
我也是这套,但我0.9 0.2 1。第一题超时,第二题我不懂为什么呀
点赞
送花
回复
分享
发布于 2020-04-29 21:03
第三道题是不是两城市之间有多重路径?只a了60%
点赞
送花
回复
分享
发布于 2020-04-29 21:04
1&nbsp;2都是90%&nbsp;求问哪里有坑吗
点赞
送花
回复
分享
发布于 2020-04-29 21:08
为啥我的是三道斐波那契数列呢,你们是什么岗啊
点赞
送花
回复
分享
发布于 2020-04-29 21:08
我好像也是这套 1-0.9-1 第一题 用数学方法 第二题 贪心 第三题 暴力搜
点赞
送花
回复
分享
发布于 2020-04-29 21:08
第二题只有0.9,求大佬分享一下哪有坑呀
点赞
送花
回复
分享
发布于 2020-04-29 21:10
第一题无论是数学方法还是常规方法都是90....总的来说这三题还是挺简单的
点赞
送花
回复
分享
发布于 2020-04-29 21:11
第二题90%是因为啥呀??
点赞
送花
回复
分享
发布于 2020-04-29 21:13
第二题 直接取k后面的字符 过了40% 我惊呆了。。。 不过还是没啥用
点赞
送花
回复
分享
发布于 2020-04-29 21:20
求问第三题什么思路啊
点赞
送花
回复
分享
发布于 2020-04-29 21:22
大佬,解释一下第三题哦
点赞
送花
回复
分享
发布于 2020-04-29 21:25
两个90,第二个我用的栈
点赞
送花
回复
分享
发布于 2020-04-29 21:30
点赞
送花
回复
分享
发布于 2020-04-30 10:58
同卷子0.9 0.7 1第一题卡了好久都是0.9😂
点赞
送花
回复
分享
发布于 2020-04-30 13:38

相关推荐

1.基于区块链的这个项目遇到了哪些难点?是如何解决的?答:说了搭建fabric环境的难点。2.搭建的节点的集群多大规模?答:模拟了就3到4个组织,说了每个组织peer节点order节点的各自作用。3.为什么要用区块链,有什么好处?答:防篡改,数据对所有节点透明可见,可追溯,对防篡改进行了展开,hash函数不可逆,merkle树验证。分布式篡改需要篡改大部分组织区块链账本,可能性小。4.&nbsp;SpringSecurity&nbsp;和&nbsp;JWT&nbsp;双&nbsp;token&nbsp;刷新机制实现用户登录认证和授权,讲解一下这个实现流程?5.RabbitMQ在这里有什么用?6.hash函数常见的有哪些?MD5&nbsp;SHA1&nbsp;2&nbsp;3&nbsp;CRC&nbsp;BLAKE&nbsp;RIPMD7.对称加密算法常见的有哪些?非对称有哪些?8.点评项目中秒杀功能遇到的难题有哪些?答了一人一单。9.一人一单如何解决的?答:单体使用synchronized解决。10.为什么用到了redis分布式锁?答:分布式情况下synchronized不能保证一人一单。。。等等。11.BitMap实现用户签到讲一下?12.&nbsp;syncheonized、ReentrantLock使用的区别?13.讲一下IOC&nbsp;AOP?14.讲一下Bean的生命周期?15.用于高并发下的线程安全的关键字&nbsp;集合还有哪些?答:volatile&nbsp;concurrentHashMap&nbsp;CopyOnWrite….16.那你说一下CopyOnWrite..相关集合是如何实现线程安全的?答:不同的jdk版本实现不同,读操作不加锁,写操作有的加synchronized有的是CAS乐观锁。17.那你讲讲不同的jdk版本实现它有什么不同?记不得了。18.讲一讲SpringCloud各个组件的作用?没答好19.讲一讲HTTP和HTTPS的区别?20.HTTPS的具体的执行流程了解吗?没答出来算法题:动态规划题&nbsp;分割等和子集41621.实习经历&nbsp;这个远程在线监控管理平台&nbsp;的难点是什么?22.这个平台你做了哪些功能?整体下来,八股感觉答的不够深入。项目难点没有提前准备好。区块链基础知识需要捡起来。等主管面
查看22道真题和解析
点赞 评论 收藏
转发
14 39 评论
分享
牛客网
牛客企业服务