关于毕业
来源:互联网 发布:中国工业实力知乎 编辑:程序博客网 时间:2024/04/28 13:32
过去的11月份毕业季提前校招,有幸受到两家企业的青睐。
递交简历,通过笔试,再面试,而后被告知录取。因为是统一笔试,没有对不同岗位进行分卷,挑选其中算法题写完就交卷了。
算法题如下
1、2 、5三个数字组成结果为100的组合,一共有几个组合。比如100个1是一个组合;19个5和5个1是一个组合。
第一反应是循环,三个循环解决。但是根据ACM刷题经验,这道题目会有更优化算法。没有直接动笔,在试卷右边举数对题目进行分析。
设三位数字分别为
先举例
书写过程中遗漏和重复次数较多,而且验证比较困难,斟酌之下没有继续推演。
写下如下代码
<?php$x=1;$y=2;$z=5;$j=100;$count=0;$mun=0;for($x=0;$x<=100;$x++){ for($y=0; $y<=(100-$x*$y)/2;$y++){ for($z=0;$z<=(100-$x-2*$y)/2;$z++){ if(($x+2*$y+5*$z)==100){ $mun++; } $count++; } }}echo "一共有".$mun."对<br>";echo "一共执行".$count."次";?>
交卷之后借助百度,获知正确答案。
举个例子,只要
反向一下,
问题难度降低,变为3个小问题。最后一个忽视,
所以
所以
所以
所以
结果为
中间发现一个规律,
写出伪算法
n = 100;z = 5;num = 0;for(int i = 0;i<=n/z;i++){ num += (i*z)/2+1;}print num;
总结
举数部分借助了答案,但整个推演过程却是自己得出的。算法其实还是看思维,哪怕一模一样的算法背后的思维是不同的。
优化算法的前提是得到基础算法,基础算法效率低下但是十分可靠,通过举数分析可得出优化算法。
阅读全文
0 0
- 关于毕业
- 关于毕业
- 关于毕业
- 关于毕业
- 关于毕业关于工作
- 关于毕业和放弃
- 关于毕业到工作
- 关于坤哥毕业欢送会
- 关于毕业的一些事情
- 记毕业一年,关于工作,关于感情
- “毕业”
- 毕业
- 毕业
- 毕业
- 毕业
- 毕业
- 毕业!
- 毕业
- 大数据环境下该如何优雅地设计数据分层
- hdu 3926
- 用nodeMailer实现自动发送一个简单的邮件
- OpenCV入门学习之边缘检测
- 一头扎进Maven3 (三)
- 关于毕业
- 抽象工厂模式
- 别让程序员停止在 35 岁,如何让我们走得更远
- 使用ssh完成分页
- 作业调度-johnson算法
- jquery.validate.js 缓存BUG解决办法
- 【NOIP2017】Day1代码
- 【java day3】函数、for、while
- Mysql备份与恢复