简单问题大全

君,已阅读到文档的结尾了呢~~
简单问答题
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
简单问答题
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer--144.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口简单问题_土豆_高清视频在线观看4288人阅读
面试题(52)
“背包题目”的基本描述是:有一个背包,能盛放的物品总重量为S,设有N件物品,其重量分别为w1,w2,…,wn,希看从N件物品中选择若干物品,所选物品的重量之和恰能放进该背包,即所选物品的重量之和即是S。
递归代码:
#include &stdafx.h&
#include &iostream&
#include &stdlib.h&
const int N = 7;//物品数量
const int S = 20;//能盛放的物品总重量
int w[N+1] = {0, 1, 4, 3, 4, 5, 2, 7};
int knap(int s,
if(s == 0)
if(s&0 || (s&0&&n&1))
//第n个物品入选
if(knap(s-w[n], n-1))
cout && w[n] && & &;
//第n个物品没入选
return knap(s, n-1);
int main(int argc, char *argv[])
if(knap(S, N))
cout && endl && &OK& &&
cout && &NO& &&
system(&PAUSE&);
非递归代码:
// ---------------------------------------------------
注1: 一般要求一个解,此程序是得到所有解
注2: 由于32位unsigned int限制,最多32个物品
// ---------------------------------------------------
#include &stdafx.h&
#include &iostream&
// 物品总数
const int N_ITEM = 5;
// 背包能装的重量
const int BAG = 15;
// 初始化每个物品的重量
int item[N_ITEM] = {2, 3, 5, 7, 8};
// 标记数组
int flag[N_ITEM] = {0, 0, 0, 0, 0};
// 结果计数器
int resultCount = 0;
// 打印结果
void Print();
int main()
// 打印已知条件
cout && &BAG Weight:& && BAG &&
cout && &Item Number:& && N_ITEM &&
for (int i=0; i!=N_ITEM; i++)
cout && &Item.& && i+1 && & W=& && item[i] && &\t&;
unsigned int count = 0;
unsigned int all_count = 1;
for (int i=0; i!=N_ITEM; i++)
all_count *= 2;//all_count记录可能解的个数
// 模拟递归...列举所有flag数组可能
// 其实就这个for循环是关键
for (int i=0; i!=N_ITEM; i++)
if ( 0 == flag[i] )
flag[i] = 1;
flag[i] = 0;
// 本次重量,初始化0
int temp = 0;
// 按标记计算所有选中物品重量和
for (int i=0; i!=N_ITEM; i++)
if ( 1 == flag[i] )
temp += item[i];
// 满足背包重量就打印
if ( temp == BAG )
resultCount++;
// 如果遍历了所有情况就break掉while(1)循环
if (count == all_count)
void Print()
cout && &Result & && resultCount &&
for (int i=0; i!=N_ITEM; i++)
if ( 1 == flag[i] )
cout && &Item.& && i+1 && &
Weight:& && item[i] && &\t&;
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:379668次
积分:4357
积分:4357
排名:第5808名
原创:108篇
转载:31篇
评论:98条
燕大小硕,研究方向:XML关键字查询;关注数据结构,算法,C++,JAVA,Linux
(3)(1)(4)(17)(34)(45)(3)(1)(1)(4)(1)(9)(16)如何实现复杂的问题简单化 - 简书
如何实现复杂的问题简单化
文/余金秋01复杂带来的困扰不得不承认,我是一个喜欢把简单事情想复杂化的人。做事之前想很多后果,与人交往过于注重别人感受,表达混乱,所以,常常踌躇不前,徘徊不定。学习、工作、生活常亮红灯,困扰不断。通过写文章,我渐渐明白,即使几千字的东西,也可以按某种方式排列,变得简单,也渐渐发现:简单是一种美。把复杂问题简单化,能解决很多问题。年轻的时候常常喜欢复杂的东西,比如写文章,常常把一个简单问题写得很复杂,用很华丽的辞藻,很复杂的句式,好像别人不懂是别人肤浅,其实相反,因为很多问题本身就很复杂,很模糊,看不清楚,搞不明白,故弄玄虚罢了。后来读很多书,听很多讲座,碰很多壁,发现能把复杂的问题,用简单、朴实的话描述清楚,以致有清晰的行动,才是最大的本事。02为什么要简单化1乱花渐欲迷人眼我是一个有选择困难症的人,在家看电视从第一个台调到最后一个台,总找不到一个好看的,音乐播放器只好随机播放类似“轻音乐”或者“经典翻唱”的电台;如果你是一个女生,会不会每天早上上班前都会困扰于穿哪件衣服搭哪双鞋出门;中午如果没有食堂,吃一顿简单的饭也是一个问题。生活满是选择,小到听什么音乐看什么电视,晚饭吃什么,大到买哪儿的房子,怎么装修,什么时候结婚,与谁共度一生。2遥控器我每次调电视最多只用5个键,两个音量键,两个频道键盘,一个确认键,不知道一个大大的遥控器上设计那么多键干嘛,笨重,密密麻麻的键看上去很不舒服。我第一次拿到乐视遥控器时,简直惊呆了,那上面只有一个圆盘,中间可以按确认,就实现了我需要的所有功能,我喜欢这个产品。3.苹果手机/iPad我第一次把iPad拿回家,才2岁的侄儿看着上面划水果的游戏,点开就会用手在上面划。我当时就想,这是一家多么牛逼的公司啊,能让从未接触过的人0基础就会。2007年问世的初代iPhone在智能手机市场掀起了一场革命,并塑造了如今的手机产业。自那之后,苹果也在不断地对iPhone进行革新,很多产品颠覆了人们的观念,改变了人们的生活。
iPhone没有出来之前,手机几乎是这样的。
iPhone的出现以及无键盘智能手机的普及,使得诺基亚手机帝国几乎在很短的时间内奇迹般崩塌。手机行业再也回不去密密麻麻的键盘时代。例子很多,很多企业都秉持着一种理念:让复杂的世界简单化。比如Google搜索,长着一张骗人的脸,这张脸后面是极其复杂的全球数据,但是就是那么招人喜欢。我不喜欢复杂的东西,一是因为我脑袋不好使,二是因为我有选择困难症。我们所处的世界缤纷多彩,乱花渐欲迷人眼。在这个复杂的世界,如何实现我自己的简单化,过上舒适、怡然的生活,是我努力奋斗的目标。03如何实现简单化1一个理论:金字塔理论关于金字塔理论,冯唐有一篇讲得很清楚的文章《老聃的金字塔原则》,比我现在读到的这本《金字塔原理》清楚得多。冯唐说:“进了麦肯锡公司,我被训练的第一个玩意儿就是金字塔原则。后来证明,这也是之后诸多训练中,最宝贵最有用的玩意儿。”用一句话说,金字塔原则就是,任何事情都可以归纳出一个中心论点,而此中心论点可由三至七个论据支持,这些一级论据本身也可以是个论点,被二级的三至七个论据支持,如此延伸,状如金字塔。作为中国人,需要小心的是,我们传统上日常生活的交流,不是从金字塔尖尖到金字塔基地的,而是相反。比如我们通常这样对小王的妈妈说:小王吃喝嫖赌抽,抗蒙拐骗偷,打瞎子骂哑巴,挖绝户坟敲寡妇门,小王是个坏蛋。我们通常不这样对小王妈妈说:小王是个坏蛋。然后看看小王妈妈的反应,再进一步提供证据:小王吃喝嫖赌抽,抗蒙拐骗偷,打瞎子骂哑巴,挖绝户坟敲寡妇门。纯用金字塔原则交流,在中国,容易找抽。虽然中国人不喜欢太直接,不喜欢用金字塔的方式交流,但这种方法已经被无数公司证明是最有效的工作方法。对我来说目前最重要的作用有三个:一是写文章搜集素材,从塔底开始,逐级论证,最终得到一个中心论点,即倒金字塔;二是汇报交流,从塔尖开始,首先讲问题解决的成果,和后果影响,如果领导有兴趣,再讲支撑结论的方法和步骤;三是对付日常,想要什么结果,有几种选择,每一种选择下面分别的利弊,大到选哪家装修公司,小到晚饭吃什么。2一个工具:思维导图这篇文字,我画了一个图,如果你没时间读整篇文字或者不知道是不是有用,可以先看这个图,如果感兴趣,就继续读下去,如果没有可以立马关掉。思维导图其实就是金字塔,最中心就是问题的焦点,可以不像金字塔那样每一级都是支撑的论据,比如我写这篇文章,首先问题是:如何实现复杂问题简单化,解决这个问题首要是弄清楚复杂问题给我带来的困扰,复杂问题是什么(What),然后问为什么会产生这些问题(Why),最后阐述解决这些问题的方法。我写这篇文章时,是先画的这个图,知道每一步要表达什么,写些什么内容,就按部就班的展开,就像一棵树,先是树根,然后长出树干,再长出叶子,最后就枝繁叶茂,锦上添花了。思维导图是我实践了很久的一个工具,以前学编程就经常在纸上画气泡图,其实后来才知道,就是思维导图,高大上的名字,这工具确实能给我思考问题很大的帮助。3一个方法:简单法则
《简单法则》这本书介绍了十个走向简单化的法则,前四个法则分别是:化简、整理、省时、学习,总结起来其实就是两个,一是如何让空间简化,二是如何让时间简化。a让空间简化SHE方法:SHE是三个单词的缩写,即Shrink(压缩)、Hide(隐藏)和Embody(赋予)。S:我前面提到遥控板的例子,一个遥控上面密密麻麻的键,拿掉那些不影响主要应用的,剩下拿不掉的,然后把遥控做成乐视遥控的样子,就是压缩,也就能让空间简化了。科技就是一直在干这件事,30年前的电脑有一栋房子那么大,而现在我们手上拿的任何一部手机,功能都比那时强大,大小自然不可同日而语。H:当一个产品所有可移除的功能都已经被拿掉,还要实现没拿掉时的功能,就可以用到隐藏这个手段,把较少利用的功能隐藏起来,通过软件的方式实现即可。瑞士军刀是一个很好的例子,每次用只需要把要用到的那一把拿出来,其他的隐藏。小东西实现大功能,会让人肃然起敬。E:赋予其实就是一种意义,你看到这个东西时,不会因为被压缩和隐藏的功能小看它。也就是一种品质的体现。SHE可能在产品设计领域用得比较多,但是背后却是化繁为简的逻辑,是实现复杂问题简单化的方法。比如要实现压缩和隐藏,首先要整理,哪些东西可以归为一类,通过分类、标注、整合、排序,这些方法其实与金字塔原理息息相关,金字塔的每一级支撑论据都不能重复,又不能遗漏,力求准确且全面。b让时间简化让空间化简的方法一样适用于时间,节省时间的方法无非两种:一种是提高效率,压缩时间,以前需要一天假设8个小时做完的事,现在一小时能完成,节省了7小时,SHE方法、分类整理的方法提高了效率,自然会节省时间;还有一种就是赋予不能被压缩的时间意义,比如坐火车去北京,这段时间是不能被压缩的,最快的方式是坐飞机,最快也要3个小时,还不算候机时间,这中间你就傻傻坐着等,肯定会难以忍受,如果一路读书、听音乐、聊天、睡觉、看风景,就会觉得时间不知不觉过去,好像时间减少了。我最推崇的节省时间的方式,还有一种,就是通过学习,以前我写一篇作文要绞尽脑汁,像贾岛一般“佳句三年得,一吟泪双流。”通过不断学习,练习,可以很容易写出一篇文章来。这篇文字就是通过学习的结果,通过学习我知道以上理论和方法,还有适用的工具,让我的工作和生活有了很大的改观。不断学习,能够让一切变得简单。无论是方法理论,还是实用的工具,也只有不断实践和反思,才会有效果,实现复杂的问题简单化,值得用一生去学习,因为我们终其一生,不过是对思想自由、人身自由和生活自由的追求,这才是我理解意义的“简单”。参考书目:《金字塔原理》、《简单法则》
读书以明志,写作以修身。欢迎关注我的公众号jinqiu-manshiguang(漫时光),个人...}

我要回帖

更多关于 简单的日常问答题 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信